From 802b9383a661fba226662ea95d75c61dbd7e34e5 Mon Sep 17 00:00:00 2001 From: Super Manito <68613938+SuperManito@users.noreply.github.com> Date: Mon, 22 Sep 2025 12:33:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.en-US.md | 2 +- README.md | 2 +- README.zh-Hant.md | 2 +- docs/assets/css/tdesign.min.css | 2 +- docs/assets/css/tdesign.min.css.map | 2 +- docs/assets/js/modules/tdesign.min.js | 8 ++++---- docs/assets/js/modules/tdesign.min.js.map | 2 +- docs/assets/js/modules/vue.global.prod.js | 18 +++++++++--------- docs/theme/partials/content.html | 2 +- docs/theme/partials/header.html | 5 +---- requirements.txt | 2 +- 11 files changed, 22 insertions(+), 25 deletions(-) diff --git a/README.en-US.md b/README.en-US.md index e41490b..c30c240 100644 --- a/README.en-US.md +++ b/README.en-US.md @@ -54,7 +54,7 @@ all -  Proxmox VE +  Proxmox VE all diff --git a/README.md b/README.md index 4f843bb..8ebbda5 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ all -  Proxmox VE +  Proxmox VE all diff --git a/README.zh-Hant.md b/README.zh-Hant.md index 8959e0a..f190d80 100644 --- a/README.zh-Hant.md +++ b/README.zh-Hant.md @@ -54,7 +54,7 @@ all -  Proxmox VE +  Proxmox VE all diff --git a/docs/assets/css/tdesign.min.css b/docs/assets/css/tdesign.min.css index 0ff790f..5602965 100644 --- a/docs/assets/css/tdesign.min.css +++ b/docs/assets/css/tdesign.min.css @@ -1,2 +1,2 @@ -:root{--td-screen-xs:320px;--td-screen-sm:768px;--td-screen-md:992px;--td-screen-lg:1200px;--td-screen-xl:1400px;--td-screen-xxl:1880px}@-moz-document url-prefix(){.narrow-scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.narrow-scrollbar::-webkit-scrollbar{height:8px;width:8px}.narrow-scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.narrow-scrollbar::-webkit-scrollbar-thumb:horizontal:hover,.narrow-scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-fake-arrow path{stroke:currentcolor;transition:d .2s}.t-fake-arrow--active path{d:path("M3.75 10.2002L7.99274 5.7998L12.2361 10.0425")}.t-slide-down-enter-active,.t-slide-down-leave-active{transition:height .2s cubic-bezier(.38,0,.24,1),max-height .2s cubic-bezier(.38,0,.24,1)}:root,:root[theme-mode=light]{--td-brand-color-1:#f2f3ff;--td-brand-color-2:#d9e1ff;--td-brand-color-3:#b5c7ff;--td-brand-color-4:#8eabff;--td-brand-color-5:#618dff;--td-brand-color-6:#366ef4;--td-brand-color-7:#0052d9;--td-brand-color-8:#003cab;--td-brand-color-9:#002a7c;--td-brand-color-10:#001a57;--td-warning-color-1:#fff1e9;--td-warning-color-2:#ffd9c2;--td-warning-color-3:#ffb98c;--td-warning-color-4:#fa9550;--td-warning-color-5:#e37318;--td-warning-color-6:#be5a00;--td-warning-color-7:#954500;--td-warning-color-8:#713300;--td-warning-color-9:#532300;--td-warning-color-10:#3b1700;--td-error-color-1:#fff0ed;--td-error-color-2:#ffd8d2;--td-error-color-3:#ffb9b0;--td-error-color-4:#ff9285;--td-error-color-5:#f6685d;--td-error-color-6:#d54941;--td-error-color-7:#ad352f;--td-error-color-8:#881f1c;--td-error-color-9:#68070a;--td-error-color-10:#490002;--td-success-color-1:#e3f9e9;--td-success-color-2:#c6f3d7;--td-success-color-3:#92dab2;--td-success-color-4:#56c08d;--td-success-color-5:#2ba471;--td-success-color-6:#008858;--td-success-color-7:#006c45;--td-success-color-8:#005334;--td-success-color-9:#003b23;--td-success-color-10:#002515;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:#fff;--td-font-white-2:hsla(0,0%,100%,.55);--td-font-white-3:hsla(0,0%,100%,.35);--td-font-white-4:hsla(0,0%,100%,.22);--td-font-gray-1:rgba(0,0,0,.9);--td-font-gray-2:rgba(0,0,0,.6);--td-font-gray-3:rgba(0,0,0,.4);--td-font-gray-4:rgba(0,0,0,.26);--td-brand-color:var(--td-brand-color-7);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-6);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-8);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:rgba(0,0,0,.6);--td-mask-disabled:hsla(0,0%,100%,.6);--td-mask-background:hsla(0,0%,100%,.96);--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-mask-background:rgba(36,36,36,.96);--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:18px;--td-font-size-title-extraLarge: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:26px;--td-line-height-title-extraLarge: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-title-extraLarge:600 var(--td-font-size-title-extraLarge) /var(--td-line-height-title-extraLarge) var(--td-font-family);--td-font-headline-small:600 var(--td-font-size-headline-small) /var(--td-line-height-headline-small) var(--td-font-family);--td-font-headline-medium:600 var(--td-font-size-headline-medium) /var(--td-line-height-headline-medium) var(--td-font-family);--td-font-headline-large:600 var(--td-font-size-headline-large) /var(--td-line-height-headline-large) var(--td-font-family);--td-font-display-medium:600 var(--td-font-size-display-medium) /var(--td-line-height-display-medium) var(--td-font-family);--td-font-display-large:600 var(--td-font-size-display-large) /var(--td-line-height-display-large) var(--td-font-family);--td-size-1:2px;--td-size-2:4px;--td-size-3:6px;--td-size-4:8px;--td-size-5:12px;--td-size-6:16px;--td-size-7:20px;--td-size-8:24px;--td-size-9:28px;--td-size-10:32px;--td-size-11:36px;--td-size-12:40px;--td-size-13:48px;--td-size-14:56px;--td-size-15:64px;--td-size-16:72px;--td-comp-size-xxxs:var(--td-size-6);--td-comp-size-xxs:var(--td-size-7);--td-comp-size-xs:var(--td-size-8);--td-comp-size-s:var(--td-size-9);--td-comp-size-m:var(--td-size-10);--td-comp-size-l:var(--td-size-11);--td-comp-size-xl:var(--td-size-12);--td-comp-size-xxl:var(--td-size-13);--td-comp-size-xxxl:var(--td-size-14);--td-comp-size-xxxxl:var(--td-size-15);--td-comp-size-xxxxxl:var(--td-size-16);--td-pop-padding-s:var(--td-size-2);--td-pop-padding-m:var(--td-size-3);--td-pop-padding-l:var(--td-size-4);--td-pop-padding-xl:var(--td-size-5);--td-pop-padding-xxl:var(--td-size-6);--td-comp-paddingLR-xxs:var(--td-size-1);--td-comp-paddingLR-xs:var(--td-size-2);--td-comp-paddingLR-s:var(--td-size-4);--td-comp-paddingLR-m:var(--td-size-5);--td-comp-paddingLR-l:var(--td-size-6);--td-comp-paddingLR-xl:var(--td-size-8);--td-comp-paddingLR-xxl:var(--td-size-10);--td-comp-paddingTB-xxs:var(--td-size-1);--td-comp-paddingTB-xs:var(--td-size-2);--td-comp-paddingTB-s:var(--td-size-4);--td-comp-paddingTB-m:var(--td-size-5);--td-comp-paddingTB-l:var(--td-size-6);--td-comp-paddingTB-xl:var(--td-size-8);--td-comp-paddingTB-xxl:var(--td-size-10);--td-comp-margin-xxs:var(--td-size-1);--td-comp-margin-xs:var(--td-size-2);--td-comp-margin-s:var(--td-size-4);--td-comp-margin-m:var(--td-size-5);--td-comp-margin-l:var(--td-size-6);--td-comp-margin-xl:var(--td-size-7);--td-comp-margin-xxl:var(--td-size-8);--td-comp-margin-xxxl:var(--td-size-10);--td-comp-margin-xxxxl:var(--td-size-12)}.t-loading{box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-brand-color);font:var(--td-font-body-medium);font-size:var(--td-comp-size-l);list-style:none;margin:0;padding:0;position:relative}.t-loading--lock{overflow:hidden}.t-loading.t-size-s{font-size:var(--td-comp-size-xxxs)}.t-loading.t-size-l{font-size:var(--td-comp-size-xxxl)}.t-loading__parent--relative{position:relative!important}.t-loading__fullscreen{height:100%;left:0;position:fixed;top:0;width:100%;z-index:3500}.t-loading--center{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__content{left:48%;position:absolute;top:20%}.t-loading--inherit-color{color:inherit}.t-loading__parent{position:relative}.t-loading__overlay{background-color:var(--td-mask-disabled)}.t-loading--full{height:100%;left:0;position:absolute;top:0;width:100%;z-index:3500}.t-loading--hidden{visibility:hidden}.t-loading--visible{visibility:visible}.t-loading__text{display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-xs);vertical-align:middle;width:auto}.t-loading__gradient{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__gradient-conic{background:conic-gradient(from 90deg at 50% 50%,#fff 0deg,currentcolor 1turn);border-radius:var(--td-radius-circle);height:100%;-webkit-mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);width:100%}.t-button{align-items:center;background-color:transparent;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);justify-content:center;list-style:none;margin:0;outline:none;overflow:hidden;padding:0;position:relative;text-decoration:none;touch-action:manipulation;transition:all .2s linear;vertical-align:middle;white-space:nowrap;z-index:0}.t-button .t-button__text,.t-button .t-icon{display:inline-flex;position:relative;z-index:1}.t-button .t-icon,.t-button .t-loading{font-size:var(--td-font-size-body-large)}.t-button .t-icon+.t-button__text:not(:empty),.t-button .t-loading+.t-button__text:not(:empty){margin-left:8px}.t-button .t-button__suffix:not(:empty){display:inline-flex;margin-left:8px}.t-button--variant-base{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);color:var(--td-text-color-anti);color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-base .t-icon,.t-button--variant-base .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{background-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{border-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{border-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{color:var(--td-text-color-primary)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-base.t-button--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{background-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-disabled,.t-button--variant-base.t-button--theme-primary.t-is-loading{background-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-disabled,.t-button--variant-base.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-success{background-color:var(--td-success-color);border-color:var(--td-success-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{background-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-disabled,.t-button--variant-base.t-button--theme-success.t-is-loading{background-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-disabled,.t-button--variant-base.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-warning{background-color:var(--td-warning-color);border-color:var(--td-warning-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{background-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-disabled,.t-button--variant-base.t-button--theme-warning.t-is-loading{background-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-disabled,.t-button--variant-base.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-danger{background-color:var(--td-error-color);border-color:var(--td-error-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{background-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-disabled,.t-button--variant-base.t-button--theme-danger.t-is-loading{background-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-disabled,.t-button--variant-base.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-loading,.t-button--variant-base.t-button--ghost:active{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-is-loading:not(.t-button--variant-base.t-button--ghost).t-button--theme-default,.t-button--variant-outline{color:var(--td-text-color-primary)}.t-button--variant-outline{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-outline .t-icon,.t-button--variant-outline .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-outline.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled,.t-button--variant-outline.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled,.t-button--variant-outline.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-disabled,.t-button--variant-outline.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-disabled,.t-button--variant-outline.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled,.t-button--variant-outline.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled,.t-button--variant-outline.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled,.t-button--variant-outline.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled,.t-button--variant-outline.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-loading,.t-button--variant-outline.t-button--ghost:active{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-primary{background-color:transparent;color:var(--td-brand-color)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-success{background-color:transparent;color:var(--td-success-color)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-warning{background-color:transparent;color:var(--td-warning-color)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-danger{background-color:transparent;color:var(--td-error-color)}.t-button--variant-dashed{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-style:dashed;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-dashed .t-icon,.t-button--variant-dashed .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-dashed.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled,.t-button--variant-dashed.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled,.t-button--variant-dashed.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled,.t-button--variant-dashed.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled,.t-button--variant-dashed.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled,.t-button--variant-dashed.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled,.t-button--variant-dashed.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled,.t-button--variant-dashed.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled,.t-button--variant-dashed.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-loading,.t-button--variant-dashed.t-button--ghost:active{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-primary{background-color:transparent;color:var(--td-brand-color)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-success{background-color:transparent;color:var(--td-success-color)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-warning{background-color:transparent;color:var(--td-warning-color)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-danger{background-color:transparent;color:var(--td-error-color)}.t-button--variant-text{background-color:transparent;border-color:transparent;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-text .t-icon,.t-button--variant-text .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{color:var(--td-text-color-primary)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{background-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{background-color:transparent}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{border-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{border-color:transparent}.t-button--variant-text.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--theme-primary.t-is-disabled,.t-button--variant-text.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-text.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--theme-success.t-is-disabled,.t-button--variant-text.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-text.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--theme-warning.t-is-disabled,.t-button--variant-text.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-text.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--theme-danger.t-is-disabled,.t-button--variant-text.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-text.t-button--ghost{background:none;color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost:focus-visible,.t-button--variant-text.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-danger{color:var(--td-error-color)}.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) 0}.t-descriptions__body.t-size-m>tbody>tr>td{padding:var(--td-comp-paddingTB-m) 0}.t-descriptions__body.t-size-s>tbody>tr>td{padding:var(--td-comp-paddingTB-s) 0}.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-size-l>tbody>tr>td{padding:var(--td-comp-paddingTB-l)}.t-descriptions__body--border.t-size-m>tbody>tr>td{padding:var(--td-comp-paddingLR-m) var(--td-comp-paddingLR-l)}.t-descriptions__body--border.t-size-s>tbody>tr>td{padding:var(--td-comp-paddingLR-s) var(--td-comp-paddingLR-l)}.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{box-sizing:border-box;color:var(--td-text-color-primary);display:grid;font:var(--td-font-body-medium);gap:2px;list-style:none;margin:0;padding: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);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:none;padding:0;padding:calc(var(--td-comp-paddingTB-xs) - 1px) var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.82,0,1,.9);user-select:none;white-space:nowrap}.t-dropdown__item-icon{color:currentcolor;display:flex;font-size:var(--td-font-size-body-large);margin-right:var(--td-comp-margin-s)}.t-dropdown__item:hover>div>div{display:flex}.t-dropdown__item--disabled{cursor:not-allowed}.t-dropdown__item-content{align-items:center;display:flex;flex:1;justify-content:space-between;max-width:100%}.t-dropdown__item-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-dropdown__item.t-dropdown__item--suffix .t-dropdown__item-sub-icon{color:currentcolor;flex-shrink:0;font-size:var(--td-font-size-body-large)}.t-dropdown__item--theme-default{color:var(--td-text-color-primary)}.t-dropdown__item--theme-default:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--active{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-dropdown__item--theme-default.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-default.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--suffix:hover{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-dropdown__item--theme-success{color:var(--td-success-color)}.t-dropdown__item--theme-success:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item--active{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-success.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item-disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-success.t-dropdown__item-disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--suffix:hover{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-error{color:var(--td-error-color)}.t-dropdown__item--theme-error:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--active{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-error.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-error.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--suffix:hover{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-warning{color:var(--td-warning-color)}.t-dropdown__item--theme-warning:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--active{background-color:var(--td-warning-color-light)}.t-dropdown__item--theme-warning.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--suffix:hover{background-color:var(--td-warning-color-light)}.t-tabs{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;overflow:hidden;padding:0}.t-tabs__header.t-is-left{float:left}.t-tabs__header.t-is-right{float:right}.t-tabs__header .t-icon{font-size:var(--td-font-size-body-large)}.t-tabs__nav{overflow:hidden;position:relative;user-select:none}.t-tabs__operations{background-color:var(--td-bg-color-container);border-bottom:1px solid var(--td-component-stroke);display:flex;flex-direction:row;position:absolute}.t-tabs__operations--left{left:0;z-index:2}.t-tabs__operations--right{right:0;z-index:2}.t-tabs__operations--right .t-tabs__btn:first-child{box-shadow:-10px 0 20px 5px rgba(0,0,0,.05)}.t-tabs__operations--right .t-tabs__nav-action{align-items:center;display:flex;flex:1;width:100%}.t-tabs__btn{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-left:1px solid var(--td-component-stroke);color:var(--td-text-color-secondary);cursor:pointer;display:flex;font:var(--td-font-body-large);height:100%;justify-content:center;opacity:1;transition:all .24s cubic-bezier(.38,0,.24,1);width:40px;z-index:1}.t-tabs__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__btn--left{border-right:1px solid var(--td-component-stroke);box-shadow:10px 0 20px 5px rgba(0,0,0,.05)}.t-tabs__btn--left.fade-enter,.t-tabs__btn--left.fade-enter-from,.t-tabs__btn--left.fade-leave-to{transform:translateX(-50px)}.t-tabs__btn--right.fade-enter,.t-tabs__btn--right.fade-enter-from,.t-tabs__btn--right.fade-leave-to{transform:translateX(50px)}.t-tabs__nav-container{position:relative}.t-tabs__nav-container.t-is-top:after{bottom:0;top:auto}.t-tabs__nav-container.t-is-bottom:after,.t-tabs__nav-container.t-is-top:after{background-color:var(--td-component-stroke);content:"";height:1px;left:0;position:absolute;right:auto;width:100%}.t-tabs__nav-container.t-is-bottom:after{bottom:auto;top:0}.t-tabs__nav-container.t-is-left:after{left:auto;right:0}.t-tabs__nav-container.t-is-left:after,.t-tabs__nav-container.t-is-right:after{background-color:var(--td-component-stroke);bottom:auto;content:"";height:100%;position:absolute;top:0;width:1px}.t-tabs__nav-container.t-is-right:after{left:0;right:auto}.t-tabs__nav-container.t-is-addable{margin-right:40px}.t-tabs__nav-container.t-tabs__nav--card:after{background-color:transparent;content:""}.t-tabs__scroll-btn{background-color:var(--td-bg-color-secondarycontainer);border-bottom:1px solid var(--td-component-stroke);color:var(--td-text-color-secondary);cursor:pointer;display:block;font:var(--td-font-body-large);height:100%;position:absolute;text-align:center;width:40px;z-index:1}.t-tabs__scroll-btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__scroll-btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-scroll{align-self:stretch;display:inline-block;display:flex;flex:auto;overflow:hidden;position:relative;transform:translate(0);white-space:nowrap;z-index:1}.t-tabs__nav-wrap{display:flex;font-size:0;position:relative}.t-tabs__nav-wrap.t-is-smooth{transition:transform .24s cubic-bezier(0,0,.15,1)}.t-tabs__nav-wrap.t-is-vertical{flex-direction:column}.t-tabs__bar{background-color:var(--td-brand-color);border-radius:var(--td-radius-small);position:absolute;transition:all .24s cubic-bezier(.38,0,.24,1);z-index:1}.t-tabs__bar.t-is-top{bottom:0;height:3px;left:0}.t-tabs__bar.t-is-bottom{height:3px;left:0;top:0}.t-tabs__bar.t-is-left{right:0;top:0;width:3px}.t-tabs__bar.t-is-right{left:0;top:0;width:3px}.t-tabs__nav-item{color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font:var(--td-font-body-medium);overflow:hidden;position:relative;z-index:0}.t-tabs__nav-item,.t-tabs__nav-item-wrapper{--ripple-color:var(--td-bg-color-container-active);align-items:center;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav-item-wrapper{border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-m);margin-left:var(--td-comp-margin-s);margin-right:var(--td-comp-margin-s);padding:0 var(--td-comp-paddingLR-s)}.t-tabs__nav-item.t-size-l{font:var(--td-font-body-large)}.t-tabs__nav-item.t-size-l .t-tabs__nav-item-wrapper{height:var(--td-comp-size-xxl);padding:0 var(--td-comp-paddingLR-m)}.t-tabs__nav-item-text-wrapper{align-items:center;display:flex;position:relative}.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover .t-tabs__nav-item-wrapper{background-color:var(--td-bg-color-container-hover)}.t-tabs__nav-item.t-is-left,.t-tabs__nav-item.t-is-right{align-items:center;display:flex}.t-tabs__nav-item.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__nav-item.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-item.t-is-active{color:var(--td-brand-color);text-shadow:0 0 .3px currentcolor}.t-tabs__nav-item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-tabs__nav-item>.remove-btn{margin-left:var(--td-comp-margin-s);transition:all .3s cubic-bezier(.645,.045,.355,1)}.t-tabs__nav--card{background-color:var(--td-bg-color-secondarycontainer)}.t-tabs__nav--card.t-tabs__nav-item{border-bottom:1px solid var(--td-component-stroke);padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-tabs__nav--card.t-tabs__nav-item:after{display:none}.t-tabs__nav--card.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__nav--card.t-tabs__nav-item:not(:first-of-type){border-left:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item:last-of-type{border-right:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item.t-is-active{background-color:var(--td-bg-color-container);border-bottom-color:var(--td-bg-color-container);color:var(--td-brand-color)}.t-tabs__nav--card.t-tabs__nav-item.t-size-l{padding-left:var(--td-comp-paddingLR-xl);padding-right:var(--td-comp-paddingLR-xl)}.t-tabs__nav--card .t-icon-close{color:var(--td-text-color-secondary);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav--card .t-icon-close:hover{color:var(--td-text-color-primary)}.t-tabs__content{overflow:hidden;position:relative}.t-tab-panel.t-is-hidden{display:none}a.t-menu__item{color:unset;text-decoration:none}a.t-menu__item:active,a.t-menu__item:hover{color:inherit}.t-menu__logo>*{margin-left:var(--td-comp-margin-xxl)}.t-head-menu{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:100%}.t-head-menu__inner{display:flex;height:var(--td-comp-size-xxxl)}.t-head-menu__inner li+li{margin-left:var(--td-comp-margin-s)}.t-head-menu__inner .t-menu:first-child{margin-left:var(--td-comp-margin-xxl)}.t-head-menu .t-menu__logo:not(:empty){height:100%;margin-right:var(--td-comp-margin-xxxl)}.t-head-menu .t-menu{align-items:center;display:flex;flex:1}.t-head-menu .t-menu__operations:not(:empty){align-items:center;display:flex;height:var(--td-comp-size-xxxl);line-height:64px;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;text-align:right}.t-head-menu .t-menu__operations-icon{box-sizing:border-box;height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:var(--td-comp-size-m)}.t-head-menu .t-submenu>.t-menu__item{overflow:unset}.t-head-menu .t-submenu>.t-menu__item:before{bottom:-20px;content:"";display:block;height:20px;left:0;position:absolute;right:0}.t-head-menu .t-menu__item{gap:var(--td-comp-margin-m);height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-l);transition:all .28s cubic-bezier(.645,.045,.355,1)}.t-head-menu__submenu{border-top:1px solid var(--td-component-stroke);padding-left:0}.t-default-menu{background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;transition:width .28s cubic-bezier(.645,.045,.355,1);white-space:nowrap;width:232px}.t-default-menu .t-menu__item{color:var(--td-text-color-secondary)}.t-default-menu.t-is-collapsed{width:64px}.t-default-menu.t-is-collapsed .t-menu__logo>*{margin-left:var(--td-comp-margin-l)}.t-default-menu.t-is-collapsed .t-menu .t-menu__item{justify-content:center;padding:0 14px}.t-default-menu.t-is-collapsed .t-menu .t-menu__item .t-menu__item-link{bottom:0;content:"";left:0;margin-left:0;opacity:0;position:absolute;right:0;top:0}.t-default-menu.t-is-collapsed .t-fake-arrow{display:none}.t-default-menu.t-is-collapsed .t-menu__item{text-overflow:clip}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-menu__item--plain:after{content:""}.t-default-menu.t-is-collapsed .t-menu__item span{display:none}.t-default-menu.t-is-collapsed .t-menu__item .t-icon{margin-right:0}.t-default-menu.t-is-collapsed .t-submenu-icon{display:none}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item{min-width:auto}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item:after{bottom:0;content:"";display:block;position:absolute;right:-20px;top:0;width:20px}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title{display:none}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title+*{margin-top:0}.t-default-menu.t-is-collapsed .t-menu-group__title{font-size:0;padding:0}.t-default-menu.t-is-collapsed .t-menu-group__title:after{background:var(--td-component-stroke);content:"";display:block;height:1px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:20px}.t-default-menu.t-is-collapsed .t-menu__operations{text-align:center}.t-default-menu.t-is-collapsed .t-menu__operations-icon{display:block}.t-default-menu.t-is-collapsed .t-menu__log>*{margin:0 auto}.t-default-menu__inner{display:flex;flex-direction:column;height:100%}.t-default-menu__inner .t-menu__logo:not(:empty){border-bottom:1px solid var(--td-component-stroke);box-sizing:border-box;height:var(--td-comp-size-xxxl);width:100%}.t-default-menu__inner .t-menu{flex:1;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-s);position:relative}.t-default-menu__inner .t-menu--scroll{overflow-x:hidden;overflow-y:auto}@-moz-document url-prefix(){.t-default-menu__inner .t-menu--scroll{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar{height:6px;width:6px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:horizontal:hover,.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-default-menu__inner .t-menu .t-menu-group>:not(:first-child),.t-default-menu__inner .t-menu .t-menu__sub>:not(:first-child),.t-default-menu__inner .t-menu .t-submenu>:not(:first-child),.t-default-menu__inner .t-menu>:not(.t-menu-group):not(:first-child){margin-top:var(--td-comp-margin-xs)}.t-default-menu__inner .t-menu-group__title{box-sizing:border-box;color:var(--td-text-color-placeholder);font-size:var(--td-font-body-small);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l);position:relative}.t-default-menu .t-submenu{position:relative}.t-default-menu .t-menu__operations:not(:empty){border-top:1px solid var(--td-component-stroke);box-sizing:border-box;left:0;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l);position:relative;text-align:left;top:0;width:100%}.t-default-menu .t-menu__operations-icon{box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;height:32px;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:32px}.t-default-menu .t-menu__item.t-is-opened{background-color:unset;color:var(--td-text-color-primary)}.t-default-menu .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-primary)}.t-default-menu .t-menu__sub{overflow:hidden;padding:0}.t-default-menu .t-menu__sub .t-menu__item{padding-left:var(--padding-left,32px)}.t-default-menu .t-slide-down-enter-active .t-menu__sub{height:100%}.t-default-menu .t-menu__item{border-bottom:0;border-radius:var(--td-radius-default);box-sizing:border-box;height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 10px 0 16px;position:relative;text-align:left;transition:background-color .28s cubic-bezier(.38,0,.24,1),padding .28s cubic-bezier(.38,0,.24,1)}.t-default-menu .t-menu__item .t-icon{flex-shrink:0;height:20px;margin-right:var(--td-comp-margin-s);width:20px}.t-default-menu .t-menu__item .t-fake-arrow{margin-left:auto;min-width:16px}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-brand-color)}.t-default-menu .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background:var(--td-bg-color-secondarycontainer-hover)}.t-default-menu.t-menu--dark{background:var(--td-gray-color-13)}.t-default-menu.t-menu--dark .t-menu__item{color:var(--td-font-white-2)}.t-default-menu.t-menu--dark .t-menu__logo:not(:empty){border-bottom-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__operations:not(:empty){border-top-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-opened.t-is-active{background-color:transparent}.t-default-menu.t-menu--dark .t-menu-group__title{color:var(--td-font-white-3)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu-group__title:after{background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu{color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-menu--dark{color:var(--td-font-white-2)}.t-menu__logo:not(:empty){align-items:center;display:flex}.t-menu .t-submenu{position:relative}.t-menu .t-submenu.t-is-active>.t-menu__item,.t-menu .t-submenu.t-is-active>.t-menu__item .t-icon{color:var(--td-gray-color-13)}.t-menu .t-submenu .t-submenu-icon{height:16px;width:16px}.t-menu .t-submenu.t-is-opened .t-submenu-icon{transform:scaleY(-1)}.t-menu__spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__spacer--left:before{bottom:0;left:-16px;top:0;width:16px}.t-menu__spacer--top:before{height:20px;left:0;right:0;top:-20px}.t-menu__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;display:flex;height:40px;line-height:40px;position:relative;text-align:center;text-overflow:ellipsis}.t-menu__item ::selection{background:transparent}.t-menu__item-spacer{overflow:unset}.t-menu__item-spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__item-spacer--right:before{bottom:0;right:-16px;top:0;width:16px}.t-menu__item-spacer--bottom:before{bottom:-20px;height:20px;left:0;right:0}.t-menu__item a{color:unset;text-decoration:none}.t-menu__item a.t-menu__item-link{color:unset;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-menu__item a.t-menu__item-link:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.t-menu__item.t-is-active{background-color:var(--td-brand-color-light)}.t-menu__item.t-is-active,.t-menu__item.t-is-opened{color:var(--td-brand-color)}.t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-bg-color-container-hover)}.t-menu__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-menu__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-menu--dark.t-head-menu{background-color:var(--td-gray-color-13)}.t-menu--dark .t-menu__item{--ripple-color:var(--td-gray-color-11);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-opened,.t-menu--dark .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-disabled{color:var(--td-font-white-4)}.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-menu--dark .t-menu__popup{background:var(--td-gray-color-13);border:.5px solid var(--td-gray-color-10)}.t-menu--dark .t-menu__popup .t-menu__item{border-radius:var(--td-radius-default);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-gray-color-10)}.t-menu--dark .t-head-menu__submenu{border-top:1px solid transparent}.t-menu--dark .t-menu__operations-icon{color:var(--td-bg-color-container)}.t-menu--dark .t-menu__operations-icon:hover{background-color:var(--td-brand-color)}.t-menu__popup{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);list-style:none;margin:0;opacity:0;overflow:hidden;padding:0;z-index:1000}.t-menu__popup.t-popup__content{position:absolute}.t-menu__popup-wrapper{height:100%;list-style:none;margin:0;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-menu__popup-wrapper{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-menu__popup-wrapper::-webkit-scrollbar{height:8px;width:8px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb:horizontal:hover,.t-menu__popup-wrapper::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-menu__popup .t-fake-arrow{margin-left:auto}.t-menu__popup .t-menu__item{padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-menu__popup.t-is-vertical{min-width:var(--popup-width,160px)}.t-menu__popup.t-is-horizontal .t-menu__item{white-space:nowrap}.t-menu__popup.t-is-horizontal li+li{margin-top:var(--td-comp-margin-xs)}.t-menu__popup.t-is-opened{box-shadow:0 5px 5px -3px rgba(0,0,0,.1),0 8px 10px 1px rgba(0,0,0,.06),0 3px 14px 6px rgba(0,0,0,.05);opacity:1;overflow:visible}.t-menu__popup .t-menu__item{color:var(--td-text-color-primary);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s)}.t-menu__popup .t-menu__item+.t-menu__item{margin-left:0}.t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-bg-color-container-hover)}.t-menu__popup .t-is-disabled{color:var(--td-text-color-disabled)}.t-menu__operations-icon{border-radius:var(--td-radius-default);color:var(--td-text-color-primary);margin-right:var(--td-comp-margin-l);transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-menu__operations-icon:hover{background-color:var(--td-brand-color-light)}.t-opacity-transition{transition:opacity .28s cubic-bezier(.55,0,.1,1)}.horizontal-collapse-transition .t-submenu__title .t-submenu__icon-arrow{opacity:0;transition:.2s}.t-menu__popup{left:calc(100% - var(--td-pop-padding-m));top:0}.t-menu__popup .t-menu__item:not(:first-child),.t-menu__popup .t-submenu:not(:first-child){margin-top:var(--td-comp-margin-xxs)}.t-is-head-menu .t-menu__popup{margin-top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-m))/2)!important}.t-menu-is-nested .t-menu__popup{margin-top:calc(0px - var(--td-pop-padding-m))!important}.input-readonly.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.input-readonly.t-is-readonly .t-input__inner{cursor:pointer}.input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.input-disabled.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.input-disabled.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled>.t-input__prefix .t-icon,.input-disabled.t-is-disabled>.t-input__prefix .t-icon:hover,.input-disabled.t-is-disabled>.t-input__suffix .t-icon,.input-disabled.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-tips{font-size:var(--td-font-size-body-small)}.t-tips.t-is-default{color:var(--td-text-color-placeholder)}.t-tips.t-is-error{color:var(--td-error-color)}.t-tips.t-is-warning{color:var(--td-warning-color)}.t-tips.t-is-success{color:var(--td-success-color)}.t-input{align-items:center;background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-m);list-style:none;margin:0;outline:none;overflow:hidden;padding:0;padding:0 var(--td-comp-paddingLR-s);position:relative;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);width:100%}.t-input:focus,.t-input:hover{border-color:var(--td-brand-color)}.t-input:focus{box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input--borderless:not(.t-input--focused){border-color:transparent;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1)}.t-input--borderless:not(.t-input--focused):hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);cursor:pointer}.t-input--borderless:not(.t-input--focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-input--focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input :focus-visible{outline:none}.t-input__inner{word-wrap:normal;background-color:transparent;border:none;box-sizing:border-box;color:var(--td-text-color-primary);flex:1;font:inherit;max-width:100%;min-width:0;outline:none;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.t-input__inner::placeholder{color:var(--td-text-color-placeholder)}.t-input__inner:placeholder-shown{text-overflow:ellipsis;width:100%}.t-input__inner[type=password]::-ms-reveal{display:none}.t-input__inner[type=search]::-webkit-search-cancel-button,.t-input__inner[type=search]::-webkit-search-decoration,.t-input__inner[type=search]::-webkit-search-results-button,.t-input__inner[type=search]::-webkit-search-results-decoration{appearance:none}.t-input__inner.t-input--soft-hidden{width:0}.t-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-input__status{position:absolute;right:-24px;top:0}.t-input.t-input--suffix>span.t-input__clear{opacity:0;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-input.t-input--suffix:hover>span.t-input__clear{opacity:1;visibility:visible}.t-input.t-is-success{border-color:var(--td-success-color)}.t-input.t-is-success.t-input--focused,.t-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-input.t-is-success>.t-input__extra{color:var(--td-success-color)}.t-input.t-is-warning{border-color:var(--td-warning-color)}.t-input.t-is-warning.t-input--focused,.t-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-input.t-is-warning>.t-input__extra{color:var(--td-warning-color)}.t-input.t-is-error{border-color:var(--td-error-color)}.t-input.t-is-error.t-input--focused,.t-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-input.t-is-error>.t-input__extra{color:var(--td-error-color)}.t-input.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.t-input.t-is-readonly .t-input__inner{cursor:pointer}.t-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.t-input.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-input.t-is-disabled>.t-input__prefix .t-icon,.t-input.t-is-disabled>.t-input__prefix .t-icon:hover,.t-input.t-is-disabled>.t-input__suffix .t-icon,.t-input.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-input.t-input--prefix>.t-input__prefix{align-items:center;display:flex;height:100%;text-align:center;z-index:2}.t-input.t-input--prefix>.t-input__prefix-icon{font-size:var(--td-font-size-body-large)}.t-input.t-input--prefix.t-size-s .t-input__prefix-icon{font-size:var(--td-font-size-body-medium)}.t-input.t-input--prefix.t-size-l .t-input__prefix-icon{font-size:var(--td-font-size-title-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.t-size-s .t-input__suffix-icon{font-size:var(--td-font-size-body-medium)}.t-input.t-input--suffix.t-size-l .t-input__suffix-icon{font-size:var(--td-font-size-title-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)}.t-input .t-input__prefix:not(:empty){margin-right:var(--td-comp-margin-s)}.t-input .t-input__suffix>.t-icon{color:var(--td-text-color-placeholder);transition:all .2s linear}.t-input .t-input__suffix>.t-icon:hover{color:var(--td-text-color-secondary);transition:all .2s linear}.t-input .t-input__suffix:not(:empty){margin-left:var(--td-comp-margin-s)}.t-input.t-is-focused .t-input__prefix>.t-icon,.t-input.t-is-focused .t-input__suffix .t-icon-calendar,.t-input.t-is-focused .t-input__suffix>.t-icon-time{color:var(--td-brand-color)}.t-input-group{align-items:stretch;display:inline-flex;position:relative}.t-input-group .t-input__wrap{border-radius:0}.t-input-group .t-input__wrap:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button,.t-input-group .t-select{border-radius:0}.t-input-group .t-button:not(:first-child),.t-input-group .t-input__wrap:not(:first-child) .t-input,.t-input-group .t-select:not(:first-child){margin-left:-1px}.t-input-group .t-input__wrap:first-child .t-input{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child .t-input{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button:first-child,.t-input-group .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-button:last-child,.t-input-group .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap+.t-input__wrap{margin-left:var(--td-comp-margin-xxxl)}.t-input-group--separate .t-button,.t-input-group--separate .t-select{border-radius:var(--td-radius-default)}.t-input-group--separate .t-button:first-child,.t-input-group--separate .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group--separate .t-button:last-child,.t-input-group--separate .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap .t-input,.t-input-group--separate .t-input__wrap .t-input:first-child,.t-input-group--separate .t-input__wrap .t-input:last-child{border-radius:var(--td-radius-default)}.t-input-group .t-button,.t-input-group .t-input__inner,.t-input-group .t-select{position:relative;z-index:0}.t-input-group .t-button:active,.t-input-group .t-button:focus,.t-input-group .t-button:hover,.t-input-group .t-input__inner:active,.t-input-group .t-input__inner:focus,.t-input-group .t-input__inner:hover,.t-input-group .t-select:active,.t-input-group .t-select:focus,.t-input-group .t-select:hover{z-index:1}.t-input__wrap{width:100%}.t-input__tips{font:var(--td-font-body-small);height:auto;min-height:var(--td-line-height-body-small);position:absolute}.t-input__tips--default{color:var(--td-text-color-placeholder)}.t-input__tips--success{color:var(--td-success-color)}.t-input__tips--warning{color:var(--td-warning-color)}.t-input__tips--error{color:var(--td-error-color)}.t-align-center>.t-input__inner{text-align:center}.t-align-right>.t-input__inner{text-align:right}.t-input__input-pre{display:block;position:absolute;visibility:hidden;white-space:pre}.t-input--auto-width{min-width:60px;width:fit-content}.t-input__limit-number{background:var(--td-bg-color-specialcomponent);color:var(--td-text-color-placeholder);font:var(--td-font-body-medium)}.t-input__limit-number.t-is-disabled{background:var(--td-bg-color-component-disabled)}.t-input-number{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-size-m);position:relative;user-select:none;width:144px}.t-input-number:not(.t-input-number--column)>.t-input-number__decrease+.t-input__wrap{margin-left:var(--td-comp-margin-xs)}.t-input-number input::-webkit-inner-spin-button,.t-input-number input::-webkit-outer-spin-button{appearance:none}.t-input-number input[type=number]{appearance:textfield}.t-input-number>.t-input__tips{left:0;position:absolute}.t-input-number input+.t-input__suffix{margin-left:var(--td-comp-paddingLR-s)}.t-input-number .t-input__prefix{margin-right:var(--td-comp-paddingLR-s)}.t-input-number .t-input{color:var(--td-text-color-primary)}.t-input-number.t-input-number--auto-width{width:auto}.t-input-number.t-input-number--auto-width.t-is-controls-right{min-width:auto;width:auto}.t-input-number.t-input-number--auto-width .t-input__inner{min-width:42px}.t-input-number .t-input-number__decrease,.t-input-number .t-input-number__increase{align-items:center;background-color:transparent;border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:flex;height:var(--td-comp-size-m);justify-content:center;position:absolute;top:0;transition:all .2s cubic-bezier(.38,0,.24,1);width:var(--td-comp-size-m);z-index:1}.t-input-number .t-input-number__decrease:hover,.t-input-number .t-input-number__increase:hover{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:hover .t-icon,.t-input-number .t-input-number__increase:hover .t-icon{color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:active,.t-input-number .t-input-number__increase:active{background-color:var(--td-bg-color-container-hover);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease .t-icon,.t-input-number .t-input-number__increase .t-icon{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-large);position:relative;z-index:1}.t-input-number .t-input-number__decrease.t-is-disabled,.t-input-number .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled:hover,.t-input-number .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease{left:0}.t-input-number .t-input-number__increase{right:-8px}.t-input-number.t-is-disabled .t-input{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input:active,.t-input-number.t-is-disabled .t-input:focus,.t-input-number.t-is-disabled .t-input:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-disabled .t-input-number__decrease,.t-input-number.t-is-disabled .t-input-number__increase{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input-number__decrease .t-icon,.t-input-number.t-is-disabled .t-input-number__increase .t-icon{color:var(--td-text-color-secondary)}.t-input-number.t-size-s{padding:0 var(--td-comp-size-xs);width:120px}.t-input-number.t-size-s .t-input{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs)}.t-input-number.t-size-s .t-input-number__decrease,.t-input-number.t-size-s .t-input-number__increase{font-size:var(--td-font-size-body-medium);height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-input-number.t-size-l{padding:0 var(--td-comp-size-xl);width:168px}.t-input-number.t-size-l .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input-number__decrease,.t-input-number.t-size-l .t-input-number__increase{font-size:18px;height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-input-number.t-size-l.t-is-controls-right .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl);padding-right:calc(var(--td-comp-size-xl) + var(--td-comp-paddingLR-s))}.t-input-number.t-size-l.t-is-controls-right .t-input-number__decrease,.t-input-number.t-size-l.t-is-controls-right .t-input-number__increase{font-size:var(--td-font-size-body-large);width:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input--prefix{font:var(--td-font-body-large);padding:0 var(--td-comp-paddingLR-m)}.t-input-number.t-input-number--normal{border-radius:var(--td-radius-default);padding:0}.t-input-number.t-input-number--normal.t-is-disabled{color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-input-number--normal.t-is-disabled:hover .t-input{border-color:var(--td-border-level-2-color)}.t-input-number.t-input-number--normal.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-input-number--normal.t-is-disabled .t-input:focus{box-shadow:none}.t-input-number.t-is-controls-right{padding:0;width:96px}.t-input-number.t-is-controls-right:hover .t-input-number__decrease,.t-input-number.t-is-controls-right:hover .t-input-number__increase{opacity:1;visibility:visible}.t-input-number.t-is-controls-right .t-input{border-radius:var(--td-radius-default);box-sizing:border-box;margin:0;padding-right:calc(var(--td-comp-size-m) + var(--td-comp-paddingLR-s));width:100%}.t-input-number.t-is-controls-right .t-input-number__decrease,.t-input-number.t-is-controls-right .t-input-number__increase{background:var(--td-bg-color-secondarycontainer);border:0;border-radius:0;height:calc(var(--td-comp-size-m)/2 - 2px);left:auto;opacity:0;right:1px;top:auto;visibility:hidden;width:var(--td-comp-size-m);z-index:2}.t-input-number.t-is-controls-right .t-input-number__decrease .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase .t-icon{font-size:var(--td-font-size-body-small)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover,.t-input-number.t-is-controls-right .t-input-number__increase:hover{background:var(--td-bg-color-component-hover)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase:hover .t-icon{color:var(--td-text-color-primary)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__increase{border-top-right-radius:calc(var(--td-radius-default) - 1px);top:1px}.t-input-number.t-is-controls-right .t-input-number__decrease{border-bottom-right-radius:calc(var(--td-radius-default) - 1px);top:calc(var(--td-comp-size-m)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-l{width:120px}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-l .t-input-number__increase{height:calc(var(--td-comp-size-xl)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease{top:calc(var(--td-comp-size-xl)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-s{width:88px}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-s .t-input-number__increase{height:calc(var(--td-comp-size-xs)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease{top:calc(var(--td-comp-size-xs)/2 + 1px)}.t-input-number--row .t-input__wrap{margin-right:var(--td-comp-margin-xs);width:auto}.t-input-number--row .t-input-number__increase{right:0}.t-tag{align-items:center;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-anti);display:inline-flex;flex-direction:row;font:var(--td-font-body-medium);font:var(--td-font-body-small);height:var(--td-comp-size-xs);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-tag .t-icon{flex-shrink:0;height:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-xs);width:calc(var(--td-font-size-body-medium) + 2px)}.t-tag .t-tag__icon-close{cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);margin-right:0;transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tag--default{background-color:var(--td-bg-color-component);color:var(--td-text-color-primary)}.t-tag--default .t-tag__icon-close{color:var(--td-text-color-placeholder)}.t-tag--default .t-tag__icon-close:hover{color:var(--td-text-color-primary)}.t-tag--default:active{cursor:default}.t-tag--default.t-tag--disabled{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled);cursor:not-allowed}.t-tag--default.t-tag--disabled:hover{cursor:not-allowed}.t-tag--default.t-tag--disabled .t-icon:hover{cursor:pointer}.t-tag--default.t-tag--outline{border-color:var(--td-component-border)}.t-tag--default.t-tag--light,.t-tag--default.t-tag--light-outline{background-color:var(--td-bg-color-secondarycontainer)}.t-tag--default.t-tag--light-outline{border-color:var(--td-component-border)}.t-tag--primary{background-color:var(--td-brand-color)}.t-tag--primary.t-tag--outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline{background-color:var(--td-brand-color-light)}.t-tag--primary.t-tag--light-outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline,.t-tag--primary.t-tag--outline{color:var(--td-brand-color)}.t-tag--primary.t-tag--light .t-tag__icon-close:hover,.t-tag--primary.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--primary.t-tag--outline .t-tag__icon-close:hover{color:var(--td-brand-color-hover)}.t-tag--success{background-color:var(--td-success-color)}.t-tag--success.t-tag--outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline{background-color:var(--td-success-color-light)}.t-tag--success.t-tag--light-outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline,.t-tag--success.t-tag--outline{color:var(--td-success-color)}.t-tag--success.t-tag--light .t-tag__icon-close:hover,.t-tag--success.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--success.t-tag--outline .t-tag__icon-close:hover{color:var(--td-success-color-hover)}.t-tag--warning{background-color:var(--td-warning-color)}.t-tag--warning.t-tag--outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline{background-color:var(--td-warning-color-light)}.t-tag--warning.t-tag--light-outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline,.t-tag--warning.t-tag--outline{color:var(--td-warning-color)}.t-tag--warning.t-tag--light .t-tag__icon-close:hover,.t-tag--warning.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--warning.t-tag--outline .t-tag__icon-close:hover{color:var(--td-warning-color-hover)}.t-tag--danger{background-color:var(--td-error-color)}.t-tag--danger.t-tag--outline{border-color:var(--td-error-color)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline{background-color:var(--td-error-color-light)}.t-tag--danger.t-tag--light-outline{border-color:var(--td-error-color)}.t-tag--danger .t-tag__icon-close{fill:var(--td-error-color)}.t-tag--danger .t-tag__icon-close:hover{fill:var(--td-error-color-hover)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline,.t-tag--danger.t-tag--outline{color:var(--td-error-color)}.t-tag--danger.t-tag--light .t-tag__icon-close:hover,.t-tag--danger.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--danger.t-tag--outline .t-tag__icon-close:hover{color:var(--td-error-color-hover)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close{color:var(--td-font-white-2)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close:hover{color:var(--td-font-white-1)}.t-tag.t-tag--outline{background:transparent}.t-tag.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-xs)}.t-tag.t-size-s .t-icon{font-size:var(--td-font-body-small)}.t-tag.t-size-l{height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-tag.t-size-l,.t-tag.t-size-l .t-icon{font:var(--td-font-body-medium)}.t-tag.t-tag--round{border-radius:var(--td-radius-extraLarge)}.t-tag.t-tag--mark{border-radius:0 var(--td-radius-extraLarge) var(--td-radius-extraLarge) 0}.t-tag.t-tag--ellipsis .t-tag--text{word-wrap:normal;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-tag.t-tag--check:not(.t-tag--disabled){cursor:pointer;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--dark:not(.t-tag--checked):hover{background-color:var(--td-bg-color-component-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--primary.t-tag--dark.t-tag--checked:hover{background-color:var(--td-brand-color-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--outline:not(.t-tag--checked):hover{color:var(--td-brand-color-hover)}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--dark{background-color:var(--td-brand-color-disabled);cursor:not-allowed}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--outline{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-text-color-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-check-tag-group .t-tag:not(:last-child){margin-right:var(--td-comp-margin-s)}a .t-tag{cursor:pointer;transition:all .2s linear}a .t-tag:hover{background-color:var(--td-bg-color-component-hover);color:var(--td-brand-color)}a .t-tag:active{background-color:var(--td-bg-color-component-active);color:var(--td-brand-color-active)}@keyframes t-fade-in{0%{opacity:0}to{opacity:1}}@keyframes t-fade-out{0%{opacity:1}to{opacity:0}}@keyframes t-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.t-icon-loading{animation:t-spin 1s linear infinite}@keyframes t-zoom-out{0%{transform:scale(.2)}to{transform:scale(1)}}.t-tag-input{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-tag-input .t-tag{animation:t-fade-in .2s ease-in-out;margin:3px var(--td-comp-margin-xs) 3px 0;vertical-align:middle}.t-tag-input .t-tag-input__drag_wrapper+.t-tag-input__drag_wrapper{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input{height:fit-content;min-height:var(--td-comp-size-m);overflow:hidden;padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input .t-input__suffix-icon{right:var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-s{min-height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input.t-size-s .t-tag{margin:1px var(--td-comp-margin-xs) 1px 0}.t-tag-input .t-input.t-size-l{min-height:var(--td-comp-size-xl);padding:0 var(--td-comp-paddingLR-m) 0 var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-l .t-input__suffix-icon{right:var(--td-comp-margin-m)}.t-tag-input.t-is-empty .t-input__inner{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input--focused .t-input__inner:not(.t-input--soft-hidden),.t-tag-input:hover .t-input__inner:not(.t-input--soft-hidden){min-width:20px}.t-tag-input .t-tag-input__prefix{line-height:1;margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-tag-input__prefix>.t-icon{color:var(--td-text-color-placeholder)}.t-tag-input .t-input .t-input__prefix:not(:empty){margin-right:0}.t-tag-input.t-input--auto-width .t-input.t-input--focused{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input.t-input--auto-width .t-input__prefix{white-space:nowrap}.t-tag-input .t-input__prefix--scrollable{overflow-x:auto;overflow-y:hidden}@-moz-document url-prefix(){.t-tag-input .t-input__prefix--scrollable{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar{height:6px;width:6px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:horizontal:hover,.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-tag-input__suffix-clear{cursor:pointer}.t-tag-input--drag-sort .t-input__prefix .t-tag{cursor:move}.t-tag-input--break-line:not(.t-is-empty) .t-input{display:block}.t-tag-input--break-line:not(.t-is-empty) .t-input.t-input--prefix>.t-input__prefix{display:inline;text-align:left}.t-tag-input--break-line:not(.t-is-empty) .t-input .t-input__suffix-icon{bottom:0;position:absolute}.t-tag-input--break-line:not(.t-is-empty) .t-tag-input__prefix{vertical-align:middle}.t-tag-input__prefix{display:inline-block;margin-right:var(--td-comp-margin-s);width:max-content}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-input,.t-tag-input.t-input--auto-width:hover .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-size-l .t-input,.t-tag-input.t-input--auto-width:hover .t-size-l .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xs))}.t-tag-input.t-input--auto-width .t-input{padding-right:0}.t-tag-input--max-rows .t-input{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-m) - 2px));overflow-y:scroll}.t-tag-input--max-rows .t-input.t-size-s{max-height:calc(var(--max-rows, 1)*var(--td-comp-size-xs))}.t-tag-input--max-rows .t-input.t-size-l{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-xl) - 2px))}.t-select-input{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;vertical-align:middle;width:100%}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input{padding-right:var(--td-comp-paddingLR-xl)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input.t-size-l{padding-right:calc(var(--td-comp-paddingLR-xl) + var(--td-comp-paddingLR-s))}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input{padding-right:var(--td-comp-paddingLR-s)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input.t-size-l{padding-right:var(--td-comp-paddingLR-m)}.t-select-input--borderless .t-input{background:transparent;border:1px solid transparent;box-shadow:none;transition:all .2s linear}.t-select-input--borderless .t-input:hover:not(.t-input--focused){background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);border-radius:var(--td-radius-default)}.t-select-input--borderless .t-input--focused{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible input{display:inline-block}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible .t-input{background-color:var(--td-bg-color-container-hover)}.t-select-input--borderless.t-tag-input{background:transparent;border:0;box-shadow:none;transition:background-color .2s linear}.t-select-input--borderless.t-tag-input:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-default)}.t-checkbox-group{flex-wrap:wrap;gap:16px}.t-checkbox,.t-checkbox-group{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-checkbox{align-items:center;cursor:pointer;position:relative}.t-checkbox+.t-checkbox{margin-left:inherit}.t-checkbox__former{clip:rect(0 0 0 0);appearance:none;border:0;height:1px;margin:-1px;outline:0;overflow:hidden;padding:0;position:absolute;width:1px}.t-checkbox__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;display:inline-block;flex-shrink:0;height:16px;position:relative;vertical-align:middle;width:16px}.t-checkbox__input:after{box-sizing:border-box;content:"";opacity:0;position:absolute}.t-checkbox__label{display:inline-block;font:var(--td-font-body-medium);margin-left:8px;vertical-align:middle}.t-checkbox:hover .t-checkbox__input{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-checkbox.t-is-checked .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-checked .t-checkbox__input:after{background:transparent;border:2px solid var(--td-text-color-anti);border-left:0;border-radius:0 0 1px;border-top:0;height:9px;left:3px;opacity:1;top:6px;transform:rotate(45deg) scale(1) translate(-50%,-50%);width:5px}.t-checkbox.t-is-indeterminate .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-font-white-1);border:unset;height:4px;left:-1px;opacity:1;right:0;top:5px;transform:scale(.5);width:16px}.t-checkbox.t-is-disabled{cursor:not-allowed}.t-checkbox.t-is-disabled .t-checkbox__label{color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled .t-checkbox__input{background-color:var(--td-bg-color-component-disabled)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input,.t-checkbox.t-is-disabled:hover .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input:after{border-color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-text-color-disabled)}.t-checkbox:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-select__wrap{width:100%}.t-select__dropdown .t-popup__content{box-shadow:var(--td-shadow-2);margin:var(--td-comp-paddingTB-s) 0;max-height:300px;overflow-y:auto;overscroll-behavior:contain;padding:0}@-moz-document url-prefix(){.t-select__dropdown .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-select__dropdown .t-popup__content::-webkit-scrollbar{height:8px;width:8px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover,.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-select__dropdown-inner{min-height:var(--td-comp-size-m)}.t-select__dropdown-inner .t-select__list .t-select__list{padding:0}.t-select__dropdown-inner .t-select__list,.t-select__dropdown-inner .t-tree{padding:var(--td-pop-padding-m)}.t-select__dropdown-inner--size-s{min-height:var(--td-comp-size-xs)}.t-select__dropdown-inner--size-s .t-select__list,.t-select__dropdown-inner--size-s .t-tree{padding:var(--td-pop-padding-s)}.t-select__dropdown-inner--size-l{min-height:var(--td-comp-size-xl)}.t-select__dropdown-inner--size-l .t-select__list,.t-select__dropdown-inner--size-l .t-tree{padding:var(--td-pop-padding-l)}.t-select__list{list-style:none;margin:0;padding:0}.t-select__dropdown.t-popup{padding:0}.t-select__empty.t-size-s{line-height:var(--td-comp-size-xs)}.t-select__empty{color:var(--td-text-color-disabled);line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-s);text-align:center}.t-select__empty.t-size-l{line-height:var(--td-comp-size-xl)}.t-select__loading-tips.t-size-s{line-height:var(--td-comp-size-xs);min-height:var(--td-comp-size-xs)}.t-select__loading-tips{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);bottom:var(--td-comp-paddingTB-s);color:var(--td-text-color-disabled);display:flex;justify-content:center;left:0;line-height:var(--td-comp-size-m);min-height:var(--td-comp-size-m);position:fixed;right:0;top:var(--td-comp-paddingTB-s);z-index:1000}.t-select__loading-tips.t-size-l{line-height:var(--td-comp-size-xl);min-height:var(--td-comp-size-xl)}.t-select-option-group+.t-select-option-group{margin-top:var(--td-comp-margin-xs);padding-top:var(--td-comp-margin-xs)}.t-select-option-group__divider+.t-select-option-group__divider{position:relative}.t-select-option-group__divider+.t-select-option-group__divider:before{background-clip:content-box;background-color:var(--td-border-level-1-color);box-sizing:border-box;content:"";height:1px;left:0;padding:0 var(--td-comp-paddingLR-s);position:absolute;top:0;width:100%}.t-select-option-group__header,ul.t-select-option-group__header{word-wrap:normal;box-sizing:border-box;color:var(--td-text-color-placeholder);display:block;height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);overflow:hidden;padding:0 var(--td-comp-paddingLR-s);text-overflow:ellipsis;white-space:nowrap}.t-select-option-group__header.t-size-l{height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option-group__header.t-size-s{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);padding:0 var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-select-option span{word-wrap:normal;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover{background-color:var(--td-bg-color-container-hover)}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__label{color:inherit}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option .t-checkbox__label{word-wrap:normal;color:var(--td-text-color-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-select-option .t-checkbox{width:100%}.t-select-option.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-select-option.t-is-disabled,.t-select-option.t-is-disabled :active,.t-select-option.t-is-disabled:hover{background:var(--td-bg-color-specialcomponent)}.t-select-option.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option.t-size-m{font:var(--td-font-body-medium)}.t-select-option.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option.t-is-selected:not(.t-is-disabled){background-color:var(--td-brand-color-light);color:var(--td-brand-color);transition:all .2s linear}.t-select-option.t-is-selected:not(.t-is-disabled) .t-checkbox__label{color:var(--td-brand-color)}.t-select-option.t-is-selected:not(.t-is-disabled):hover{background-color:var(--td-brand-color-light)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected){background-color:var(--td-bg-color-container-hover)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option.t-select-option--hover .t-checkbox__label,.t-select-option.t-select-option__hover .t-checkbox__label{color:inherit}.t-select-option+.t-select-option{margin-top:var(--td-comp-paddingTB-xxs)}.t-select.t-select-input--borderless .t-select__right-icon{margin:0;position:relative}.t-select .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-select .t-fake-arrow--active{color:var(--td-brand-color)}.t-is-selected.t-select-option__hover{background-color:var(--td-brand-color-light-hover)}.t-is-selected.t-select-option__hover .t-checkbox__label{color:var(--td-brand-color)}.t-input-adornment{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-input-adornment__append .t-input,.t-input-adornment__append .t-textarea__inner,.t-input-adornment__prepend .t-input,.t-input-adornment__prepend .t-textarea__inner{background-color:transparent}.t-input-adornment__prepend{margin-right:-1px}.t-input-adornment__append,.t-input-adornment__prepend{background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-primary);word-break:keep-all}.t-input-adornment__append{margin-left:-1px}.t-input-adornment__text{align-items:center;border:1px solid var(--td-border-level-2-color);box-sizing:border-box;display:inline-flex;height:100%;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-input-adornment>:first-child,.t-input-adornment>:first-child .t-input,.t-input-adornment>:first-child .t-input-adornment__text,.t-input-adornment>:first-child .t-textarea__inner{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-adornment>:last-child,.t-input-adornment>:last-child .t-input,.t-input-adornment>:last-child .t-input-adornment__text,.t-input-adornment>:last-child .t-textarea__inner{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-adornment>:not(:last-child):hover{z-index:2}.t-input-adornment>:not(:first-child):not(:last-child) .t-input,.t-input-adornment>:not(:first-child):not(:last-child) .t-textarea__inner{border-radius:0}.t-pagination-mini{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-pagination-mini--outline .t-pagination-mini__prev{border-bottom-right-radius:0;border-top-right-radius:0;position:relative;z-index:1}.t-pagination-mini--outline .t-pagination-mini__current{border-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__current:hover{z-index:1}.t-pagination-mini--outline .t-pagination-mini__next{border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__next:hover{z-index:1}.t-pagination{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-medium);justify-content:flex-end;list-style:none;margin:0;padding:0;user-select:none;white-space:nowrap;width:100%}.t-pagination.t-is-disabled{color:var(--td-text-color-disabled)}.t-pagination__total{flex:1;font:var(--td-font-body-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-pagination .t-select__wrap{width:auto}.t-pagination__select{font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-l)}.t-pagination__btn,.t-pagination__select{color:var(--td-text-color-secondary);flex-shrink:0;height:var(--td-comp-size-m)}.t-pagination__btn{align-items:center;border-radius:var(--td-radius-default);cursor:pointer;display:inline-flex;font:var(--td-font-body-large);justify-content:center;line-height:var(--td-comp-size-m);width:var(--td-comp-size-m)}.t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination__btn.t-is-disabled,.t-pagination__btn.t-is-disabled:active,.t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination__btn.t-is-disabled{cursor:not-allowed}.t-pagination__btn-prev{margin-right:var(--td-comp-margin-s)}.t-pagination__btn-next{margin-left:var(--td-comp-margin-s)}.t-pagination__btn+.t-pagination__select{margin-right:0}.t-pagination__pager{display:inline-flex;flex-shrink:0;list-style:none;margin:0;padding:0;vertical-align:middle}.t-pagination__pager li:not(:last-child){margin-right:var(--td-comp-margin-s)}.t-pagination__number{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:inline-block;font-size:var(--td-font-body-medium);height:var(--td-comp-size-m);line-height:calc(var(--td-comp-size-m) - 2px);min-width:var(--td-comp-size-m);padding-left:var(--td-comp-paddingLR-xs);padding-right:var(--td-comp-paddingLR-xs);text-align:center}.t-pagination__number:hover{border-color:var(--td-brand-color-hover);color:var(--td-brand-color-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number.t-is-current,.t-pagination__number:active{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-pagination__number.t-is-current.t-is-disabled,.t-pagination__number.t-is-current.t-is-disabled:active,.t-pagination__number.t-is-current.t-is-disabled:hover{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination__number.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:auto}.t-pagination__number.t-is-disabled:active,.t-pagination__number.t-is-disabled:hover{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled)}.t-pagination__number--more{border:0;padding:0}.t-pagination__number--more:hover{background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number--more:active{background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination__number--more.t-is-disabled,.t-pagination__number--more.t-is-disabled:active,.t-pagination__number--more.t-is-disabled:hover{background:none}.t-pagination__number--more .t-icon-more{color:var(--td-text-color-disabled);transform:rotate(90deg)}.t-pagination__jump{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:inline-flex;flex-shrink:0;font-size:var(--td-font-body-medium);gap:var(--td-comp-margin-s);height:var(--td-comp-size-m);margin-left:var(--td-comp-margin-s);padding-left:var(--td-comp-margin-s)}.t-pagination .t-input-adornment__append{background-color:transparent;border:none;color:var(--td-text-color-secondary);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-adornment__append .t-input-adornment__text{border:none}.t-pagination .t-input-number{width:56px}.t-pagination .t-input-number .t-input{border-radius:var(--td-radius-default);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-number .t-input__inner{text-align:center}.t-pagination.t-size-s{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__jump{height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-input-adornment__append{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-input-number{width:48px}.t-pagination.t-size-s .t-input-number .t-input{height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-pagination__total{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__select{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__number{border:0;font-size:var(--td-font-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);min-width:var(--td-comp-size-xs);padding-left:var(--td-comp-paddingLR-xxs);padding-right:var(--td-comp-paddingLR-xxs)}.t-pagination.t-size-s .t-pagination__number:hover:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__number:active:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination.t-size-s .t-pagination__number.t-is-disabled{background:none;color:var(--td-text-color-disabled)}.t-pagination.t-size-s .t-pagination__number.t-is-current.t-is-disabled{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination.t-size-s .t-pagination__btn{background:none;border:0;height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination.t-size-s .t-pagination__btn.t-is-disabled,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:active,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination-ie .t-select .t-input__inner{min-width:54px}.default-step-icon{align-items:center;border-radius:var(--td-radius-circle);display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;width:100%}.t-steps .t-steps-item{display:flex;flex:1;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;vertical-align:top}.t-steps .t-steps-item:last-child{flex:none}.t-steps .t-steps-item__inner{display:flex;position:relative;width:fit-content}.t-steps .t-steps-item__inner.t-steps-item--clickable{cursor:pointer}.t-steps .t-steps-item--finish .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__icon--number{border-color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__title{color:var(--td-text-color-primary);font-weight:400}.t-steps .t-steps-item--finish .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--process .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--process .t-steps-item__icon--number{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__title{color:var(--td-brand-color);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--error .t-steps-item__icon .t-icon{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__icon--number{border-color:var(--td-error-color);color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__title{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item__icon{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-s);vertical-align:top}.t-steps .t-steps-item__icon--number{border:1px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);color:var(--td-text-color-placeholder)}.t-steps .t-steps-item__icon--finish,.t-steps .t-steps-item__icon--number{align-items:center;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon--finish{border:1px solid var(--td-brand-color);border-radius:var(--td-radius-circle)}.t-steps .t-steps-item__icon--error{align-items:center;border:1px solid var(--td-error-color);border-radius:var(--td-radius-circle);color:#000;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps .t-steps-item__title{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-large);line-height:24px;padding-right:var(--td-comp-margin-s);position:relative}.t-steps .t-steps-item__description{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);line-height:22px;margin-bottom:var(--td-comp-margin-xs)}.t-steps--line-separator .t-steps-item:after,.t-steps--line-separator .t-steps-item:before,.t-steps--line-separator .t-steps-item__title:after{border-style:solid}.t-steps--dashed-separator .t-steps-item:after,.t-steps--dashed-separator .t-steps-item:before,.t-steps--dashed-separator .t-steps-item__title:after{border-style:dashed}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);width:fit-content}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon__number{height:22px;width:22px}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item--finish:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child) .t-steps-item__title:after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--process:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item{overflow:visible}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);padding-right:0}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__inner{align-items:center;display:flex;flex-direction:column}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;width:8px}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__content{text-align:center;width:140px}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--process:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--vertical{flex-direction:column;width:fit-content}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--positive .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--positive .t-steps-item:not(:last-child):before{border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;border-top:0;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--default-anchor .t-steps-item__content{margin-left:0}.t-steps--vertical.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;top:8px;width:8px}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{margin-top:var(--td-comp-margin-xs);transform:rotate(0)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--reverse .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--reverse .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:last-child:before{display:none}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-sticky-tool{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);box-shadow:var(--td-shadow-3);box-sizing:border-box;opacity:1;position:fixed}.t-sticky-tool-popup-content{box-shadow:var(--td-shadow-3)}.t-sticky-tool .t-sticky-item,.t-sticky-tool-popup-content{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-small)}.t-sticky-tool .t-sticky-item{margin:var(--td-comp-margin-xs);opacity:1;position:relative;text-align:center;transition:background-color .2s linear}.t-sticky-tool .t-sticky-item:hover{background-color:var(--td-bg-color-container-hover);cursor:pointer}.t-sticky-tool .t-sticky-item--normal{height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-sticky-tool .t-sticky-item--normal .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s) var(--td-comp-margin-l) 0 var(--td-comp-margin-l);width:24px}.t-sticky-tool .t-sticky-item--compact{height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-sticky-tool .t-sticky-item--compact .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s);width:24px}.t-sticky-tool .t-sticky-item--square{border-radius:var(--td-radius-default)}.t-sticky-tool .t-sticky-item--round{border-radius:var(--td-radius-circle)}.t-sticky-tool .t-sticky-item .t-sticky-item__label{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);margin-top:var(--td-comp-margin-xxs);text-align:center;width:100%}.t-sticky-tool--square{border-radius:var(--td-radius-medium)}.t-sticky-tool--round{border-radius:var(--td-radius-round)}.t-back-top{align-items:center;background-color:transparent;border:.5px solid transparent;box-shadow:var(--td-shadow-3);color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;flex-direction:column;justify-content:center;opacity:0;outline:none;overflow:hidden;position:fixed;touch-action:manipulation;transition:background .2s linear,border .2s linear,color .2s linear,opacity .2s linear,visibility .2s linear;vertical-align:middle;visibility:hidden;white-space:nowrap;z-index:300}.t-back-top__text{font:var(--td-font-body-small);margin-top:var(--td-comp-margin-xxs);text-align:center}.t-back-top__icon{font-size:var(--td-font-headline-small)}.t-back-top.t-size-m .t-back-top__icon{margin-top:2px}.t-back-top--show{opacity:1;visibility:visible}.t-back-top--theme-light{background-color:var(--td-bg-color-container);border-color:var(--td-component-border)}.t-back-top--theme-light:hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover)}.t-back-top--theme-light .t-back-top__text{color:var(--td-text-color-secondary)}.t-back-top--theme-light .t-back-top__icon{color:var(--td-text-color-primary)}.t-back-top--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-back-top--theme-primary:hover{background-color:var(--td-brand-color-hover);border-color:var(--td-brand-color-hover)}.t-back-top--theme-primary .t-back-top__icon,.t-back-top--theme-primary .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top--theme-dark{background-color:rgba(0,0,0,.9);border-color:rgba(0,0,0,.9)}.t-back-top--theme-dark:hover{background-color:rgba(0,0,0,.6);border-color:rgba(0,0,0,.6)}.t-back-top--theme-dark .t-back-top__icon,.t-back-top--theme-dark .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top.t-size-s{height:var(--td-comp-size-xxl);width:var(--td-comp-size-xxl)}.t-back-top.t-size-s .t-back-top__text{display:none}.t-back-top.t-size-m{height:var(--td-comp-size-xxxxl);width:var(--td-comp-size-xxxxl)}.t-back-top.t-size-m .t-back-top__text{display:block}.t-back-top--circle{border-radius:var(--td-radius-circle)}.t-back-top--square{border-radius:var(--td-radius-medium)}.t-select-option__highlight-item .t-is-highlight{color:var(--td-brand-color)}.t-auto-complete{width:100%}.t-auto-complete .t-input__suffix-clear{display:none}.t-auto-complete:hover .t-input__suffix-clear{display:inline-block}.t-auto-complete__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);text-align:center}.t-cascader .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-cascader .t-fake-arrow--active{color:var(--td-brand-color)}.t-cascader__popup .t-popup__content{border:.5px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2);overflow:hidden;padding:0}.t-cascader__panel{display:flex;height:100%}.t-cascader__panel.t-cascader--normal{height:200px}.t-cascader__panel.t-cascader--multiple{height:280px}.t-cascader__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);margin:var(--td-pop-padding-m);padding-left:0;text-align:center;width:100%}.t-cascader__panel--empty:hover{background:none;cursor:default}.t-cascader__menu{background:var(--td-bg-color-container);box-sizing:content-box;margin:0;overflow:auto;padding:var(--td-pop-padding-m);width:148px}.t-cascader__menu.t-size-l{padding:var(--td-pop-padding-l)}.t-cascader__menu.t-size-s{padding:var(--td-pop-padding-s)}.t-cascader__menu--segment{border-right:1px solid var(--td-component-stroke)}.t-cascader__menu--filter{min-width:148px;width:auto}.t-cascader__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);list-style:none;margin-top:var(--td-comp-margin-xxs);padding:0 var(--td-comp-paddingLR-s);position:relative;transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-cascader__item.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s)}.t-cascader__item.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-cascader__item.t-is-disabled{background-color:transparent;color:var(--td-text-color-disabled);cursor:not-allowed}.t-cascader__item-icon.t-icon{background:transparent;color:var(--td-text-color-placeholder);font-size:16px;height:100%;margin:0 8px;position:absolute;right:0;top:0}.t-cascader__item-icon.t-loading{color:var(--td-text-color-brand);display:flex}.t-cascader__item.t-is-expanded{background:var(--td-brand-color-light)}.t-cascader__item.t-is-expanded,.t-cascader__item.t-is-expanded .t-icon-chevron-right{color:var(--td-text-color-brand)}.t-cascader__item.t-is-expanded:hover{cursor:pointer}.t-cascader__item:first-child{margin-top:0}.t-cascader__item .t-checkbox{max-width:100%}.t-cascader__item .t-checkbox .t-checkbox__input{flex-shrink:0}.t-cascader__item .t-checkbox .t-checkbox__label{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item .t-checkbox .t-checkbox__label .t-cascader__item__label--filter{color:var(--td-text-color-brand)}.t-cascader__item--with-icon .t-cascader__item-label,.t-cascader__item--with-icon .t-checkbox__label{margin-right:16px}.t-cascader__item--leaf .t-checkbox{width:100%}.t-cascader__item-label{display:block;padding:0;position:relative;white-space:nowrap}.t-cascader__item-label--ellipsis{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item-label--filter{color:var(--td-text-color-brand)}.t-cascader__item:hover:not(.t-is-expanded):not(.t-is-disabled){background:var(--td-bg-color-container-hover);cursor:pointer}.t-cascader__item.t-is-selected{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-cascader__item.t-is-selected .t-checkbox__label{color:var(--td-brand-color)}.range-input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.range-input-disabled.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.range-input-disabled.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled>.t-range-input__prefix .t-icon,.range-input-disabled.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-direction:column;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);gap:4px;height:var(--td-comp-size-m);list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:relative;transition:all .2s cubic-bezier(.38,0,.24,1);width:100%}.t-range-input:hover{border-color:var(--td-brand-color)}.t-range-input--borderless:not(.t-is-focused){border-color:transparent;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-range-input--borderless:not(.t-is-focused):hover{border-color:var(--td-component-border);cursor:pointer}.t-range-input--borderless:not(.t-is-focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-range-input.t-is-focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-range-input.t-is-success{border-color:var(--td-success-color)}.t-range-input.t-is-success.t-range-input--focused,.t-range-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-range-input.t-is-success>.t-range-input__extra{color:var(--td-success-color)}.t-range-input.t-is-success>.t-range-input__tips{color:var(--td-success-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-warning{border-color:var(--td-warning-color)}.t-range-input.t-is-warning.t-range-input--focused,.t-range-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-range-input.t-is-warning>.t-range-input__extra{color:var(--td-warning-color)}.t-range-input.t-is-warning>.t-range-input__tips{color:var(--td-warning-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-error{border-color:var(--td-error-color)}.t-range-input.t-is-error.t-range-input--focused,.t-range-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-range-input.t-is-error>.t-range-input__extra{color:var(--td-error-color)}.t-range-input.t-is-error>.t-range-input__tips{color:var(--td-error-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-range-input.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.t-range-input.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled>.t-range-input__prefix .t-icon,.t-range-input.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input.t-range-input--prefix .t-range-input__prefix,.t-range-input.t-range-input--suffix .t-range-input__suffix{align-items:center;display:flex;font-size:var(--td-font-size-body-medium);height:100%;text-align:center}.t-range-input.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding-bottom:var(--td-comp-paddingTB-xs);padding-top:var(--td-comp-paddingTB-xs)}.t-range-input.t-size-l .t-input{padding:0 var(--td-comp-margin-s)}.t-range-input.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-margin-xs)}.t-range-input__inner{align-items:center;display:flex;gap:var(--td-comp-margin-s);height:100%}.t-range-input__inner .t-input__wrap{border-radius:var(--td-radius-small);height:100%}.t-range-input__inner>.t-range-input__prefix{flex-shrink:0}.t-range-input__inner .t-input{border:0;border-radius:var(--td-radius-small);box-shadow:none;font-size:inherit;height:100%;padding:0 var(--td-comp-paddingLR-xs)}.t-range-input__inner .t-input:hover{background-color:var(--td-bg-color-container-hover)}.t-range-input__inner .t-input__inner{height:100%;line-height:1;width:100%}.t-range-input__inner .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-range-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-range-input__status{position:absolute;right:calc(0px - var(--td-comp-margin-xxxl));top:0}.t-range-input.t-range-input--suffix .t-input__clear{opacity:0;transition:all .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-range-input.t-range-input--suffix:hover .t-input__clear{opacity:1;visibility:visible}.t-range-input .t-range-input__suffix-clear{cursor:pointer}.t-range-input__prefix>.t-icon,.t-range-input__suffix>.t-icon{color:var(--td-text-color-placeholder);flex-shrink:0;font-size:16px;transition:color .2s linear}.t-range-input-popup{width:100%}.t-range-input-popup--visible .t-range-input{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-range-input-popup--visible .t-range-input .t-icon-calendar,.t-range-input-popup--visible .t-range-input .t-icon-time{color:var(--td-brand-color)}.t-range-input-popup--visible .t-range-input .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-date-picker,.t-date-range-picker{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-date-picker__header-controller-month-popup>.t-popup__content,.t-date-picker__header-controller-year-popup>.t-popup__content{max-height:160px}.t-date-picker__panel-container>.t-popup__content,.t-date-range-picker__panel-container>.t-popup__content{min-width:280px;padding:0}.t-date-picker__panel,.t-date-range-picker__panel{display:flex;flex-direction:column}.t-date-picker__panel--direction-row,.t-date-range-picker__panel--direction-row{flex-direction:row}.t-date-picker__panel .t-time-picker__panel,.t-date-range-picker__panel .t-time-picker__panel{width:216px}.t-date-picker__panel .t-time-picker__panel-section-body,.t-date-range-picker__panel .t-time-picker__panel-section-body{padding:0}.t-date-picker__panel .t-time-picker__panel-body,.t-date-range-picker__panel .t-time-picker__panel-body{margin:0}.t-date-picker__panel-content,.t-date-range-picker__panel-content,.t-date-range-picker__panel-content-wrapper{display:flex}.t-date-picker__header{align-items:center;display:flex;gap:var(--td-comp-margin-m);justify-content:space-between;width:100%}.t-date-picker__header-controller{display:inline-flex;gap:var(--td-comp-margin-s)}.t-date-picker__header-controller .t-date-picker__header-controller-month{display:flex;width:80px}.t-date-picker__header-controller .t-date-picker__header-controller-year{display:flex;width:78px}.t-date-picker__table table{border-collapse:collapse;width:100%}.t-date-picker__table table th{color:var(--td-text-color-secondary);font-weight:400;text-align:center}.t-date-picker__table table td.t-date-picker__cell{font-weight:500;text-align:center}.t-date-picker__table table td.t-date-picker__cell,.t-date-picker__table table th,.t-date-picker__table table th.t-date-picker__table-header-cell{border:0;line-height:var(--td-line-height-body-medium);padding:0}.t-date-picker__table table thead:after,.t-date-picker__table table thead:before{color:transparent;content:"-";display:block;line-height:var(--td-comp-margin-xs)}.t-date-picker__table-week-row{cursor:pointer;position:sticky}.t-date-picker__table-week-row .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__table-week-row .t-date-picker__cell:hover .t-date-picker__cell-inner{background:none;box-shadow:none}.t-date-picker__table-week-row:after{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:var(--td-comp-margin-xxxl);pointer-events:none;position:absolute;right:0;top:calc(var(--td-comp-margin-xs) - 1px);transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;z-index:10}.t-date-picker__table-week-row:hover .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row:hover:after{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__table-week-row--active:after{background-color:var(--td-brand-color);opacity:1;z-index:0}.t-date-picker__table-week-row--active .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row--active .t-date-picker__cell .t-date-picker__cell-inner{background:transparent;color:var(--td-text-color-anti)}.t-date-picker__table-week-row--range:after{background-color:var(--td-brand-color-light);opacity:1;z-index:0}.t-date-picker__table-week-row--range .t-date-picker__cell .t-date-picker__cell-inner{background:transparent}.t-date-picker__footer{align-items:flex-start;display:flex;gap:var(--td-comp-margin-s);justify-content:space-between;padding:var(--td-pop-padding-xl)}.t-date-picker__footer--bottom{border-top:1px solid var(--td-component-stroke)}.t-date-picker__footer--top{border-bottom:1px solid var(--td-component-stroke)}.t-date-picker__footer--left{border-right:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--left .t-date-picker__presets{flex-direction:column}.t-date-picker__footer--right{border-left:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--right .t-date-picker__presets{flex-direction:column}.t-date-picker__presets{display:flex;gap:var(--td-comp-margin-s);min-width:var(--td-comp-size-xl);white-space:nowrap}.t-date-picker__presets .t-button{cursor:pointer}.t-date-picker__presets a{color:var(--td-brand-color)}.t-date-picker__presets a:hover{color:var(--td-brand-color-hover)}.t-date-picker__panel-time,.t-date-range-picker__panel-time{border-left:1px solid var(--td-component-stroke);display:flex;flex-direction:column;gap:calc(var(--td-comp-margin-m)/2);padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs))}.t-date-picker__panel-time-viewer,.t-date-range-picker__panel-time-viewer{align-items:center;color:var(--td-text-color-primary);display:flex;height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-line-height-body-medium)}.t-date-picker__panel-time .t-time-picker__panel-body,.t-date-range-picker__panel-time .t-time-picker__panel-body{margin:0}.t-date-picker__panel-date,.t-date-picker__panel-month,.t-date-picker__panel-quarter,.t-date-picker__panel-week,.t-date-picker__panel-year{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--td-comp-margin-m);padding:var(--td-pop-padding-xl);width:280px}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1;z-index:5}.t-date-picker__panel-month .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before,.t-date-picker__panel-year .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl))}.t-date-picker__panel-month .t-date-picker__header-controller-year,.t-date-picker__panel-quarter .t-date-picker__header-controller-year,.t-date-picker__panel-year .t-date-picker__header-controller-year{display:flex;width:130px}.t-date-picker__panel-month .t-date-picker__table table tbody,.t-date-picker__panel-quarter .t-date-picker__table table tbody,.t-date-picker__panel-year .t-date-picker__table table tbody{display:flex;flex-direction:column;gap:var(--td-comp-margin-m);width:100%}.t-date-picker__panel-month .t-date-picker__table table tbody tr,.t-date-picker__panel-quarter .t-date-picker__table table tbody tr,.t-date-picker__panel-year .t-date-picker__table table tbody tr{display:flex;justify-content:space-between}.t-date-picker__panel-month .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-quarter .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-year .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{left:calc(0px - var(--td-comp-size-xxxl))}.t-date-picker__panel-month .t-date-picker__cell:first-child,.t-date-picker__panel-quarter .t-date-picker__cell:first-child,.t-date-picker__panel-year .t-date-picker__cell:first-child{text-align:left}.t-date-picker__panel-month .t-date-picker__cell:nth-child(3),.t-date-picker__panel-quarter .t-date-picker__cell:nth-child(3),.t-date-picker__panel-year .t-date-picker__cell:nth-child(3){text-align:right}.t-date-picker__panel-month .t-date-picker__cell-inner,.t-date-picker__panel-quarter .t-date-picker__cell-inner,.t-date-picker__panel-year .t-date-picker__cell-inner{width:var(--td-comp-size-xxl)}.t-date-picker__cell{cursor:pointer;padding:0;position:relative}.t-date-picker__cell:after,.t-date-picker__cell:before{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:-5%;opacity:0;position:absolute;right:-5%;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);z-index:1}.t-date-picker__cell:hover .t-date-picker__cell-inner{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__cell-inner{align-items:center;border-radius:var(--td-radius-default);display:inline-flex;height:var(--td-comp-size-xs);justify-content:center;margin:calc(var(--td-comp-margin-xs) - 1px);position:relative;transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;width:var(--td-comp-size-xs);z-index:5}.t-date-picker__cell--now .t-date-picker__cell-inner{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-date-picker__cell--highlight:before,.t-date-picker__cell--hover-highlight:after{background-color:var(--td-brand-color-light);opacity:1}.t-date-picker__cell--highlight.t-date-picker__cell--hover-highlight:after{background-color:rgba(0,0,0,.06);opacity:1}.t-date-picker__cell--additional:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover);box-shadow:none}.t-date-picker__cell--additional .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__cell--active .t-date-picker__cell-inner{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-date-picker__cell--active-start:before{border-bottom-left-radius:var(--td-radius-default);border-top-left-radius:var(--td-radius-default);left:calc(var(--td-comp-margin-xs)*2 - 2px);opacity:1}.t-date-picker__cell--active-start:hover:before{left:-5%}.t-date-picker__cell--active-end:before{border-bottom-right-radius:var(--td-radius-default);border-top-right-radius:var(--td-radius-default);opacity:1;right:calc(var(--td-comp-margin-xs)*2 - 2px)}.t-date-picker__cell--active-end:hover:before{right:-5%}.t-date-picker__cell--disabled:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);box-shadow:none}.t-date-picker__cell--disabled .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{background-color:var(--td-bg-color-component-disabled);border-radius:var(--td-radius-default);left:calc(0px - var(--td-comp-size-l));opacity:1}.t-date-picker__input--placeholder input{color:var(--td-text-color-placeholder)}.t-form{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;padding:0}.t-form,.t-form:not(.t-form-inline) .t-form__item:last-of-type{margin:0}.t-form__item{margin-bottom:var(--td-comp-margin-xxl)}.t-form__item.t-form__item-with-help{margin-bottom:var(--td-comp-margin-xs)}.t-form__item.t-form__item-with-extra{margin-bottom:var(--td-comp-margin-xxl)}.t-form__label{box-sizing:border-box;color:var(--td-text-color-primary);float:left;line-height:var(--td-comp-margin-xxxl);padding-right:var(--td-comp-paddingLR-xl);vertical-align:middle;white-space:nowrap}.t-form__label--top{float:none;min-height:var(--td-comp-margin-xxxl)}.t-form__label--left{text-align:left}.t-form__label--right{text-align:right}.t-form__label--required:not(.t-form__label--required-right) label:before{color:var(--td-error-color);content:"*";display:inline-block;line-height:var(--td-line-height-body-medium);margin-right:var(--td-comp-margin-xs)}.t-form__label--required-right label:after{color:var(--td-error-color);content:"*";display:inline-block;line-height:var(--td-line-height-body-medium);margin-left:var(--td-comp-margin-xs)}.t-form__label--colon label:after{content:":";margin:0 var(--td-comp-margin-xxs);position:relative}.t-form__controls{display:flow-root;min-height:var(--td-comp-margin-xxxl);position:relative}.t-form__controls-content{align-items:center;display:flex;min-height:var(--td-comp-margin-xxxl)}.t-form__controls .t-form__item{margin-bottom:0;margin-right:var(--td-comp-margin-xxl)}.t-form__controls.t-form--success-border.t-is-success .t-input__extra,.t-form__controls.t-is-success .t-form__status .t-icon,.t-form__controls.t-is-success .t-input__extra{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner{border-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-form__status .t-icon{color:var(--td-success-color)}.t-form__status{display:flex;margin:0 var(--td-comp-margin-s)}.t-form__status>.t-icon{font-size:var(--td-comp-size-xxxs)}.t-form__status-without-icon{height:25px;width:25px}.t-form__status button{width:var(--td-comp-size-m)}.t-form__status button+button{margin-left:var(--td-comp-margin-s)}.t-form-inline{display:flex;flex-wrap:wrap;row-gap:var(--td-comp-margin-l)}.t-form-inline .t-form__item{display:inline-block;margin:0;margin-right:var(--td-comp-margin-xxl);min-width:200px}.t-input__extra,.t-input__help{color:var(--td-text-color-placeholder);font:var(--td-font-body-small);height:auto;margin:0;min-height:var(--td-line-height-body-small);width:100%}.t-input__extra{bottom:calc(0px - var(--td-line-height-body-small));max-width:100%;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap}.t-is-warning .t-input__extra{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader,.t-is-warning .t-form__controls-content .t-input,.t-is-warning .t-form__controls-content .t-radio-button,.t-is-warning .t-form__controls-content .t-range-input,.t-is-warning .t-form__controls-content .t-select,.t-is-warning .t-form__controls-content .t-textarea__inner{border-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader--focused,.t-is-warning .t-form__controls-content .t-input--focused,.t-is-warning .t-form__controls-content .t-radio-button--focused,.t-is-warning .t-form__controls-content .t-range-input--focused,.t-is-warning .t-form__controls-content .t-select--focused,.t-is-warning .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-warning .t-form__controls-content .t-cascader .t-icon,.t-is-warning .t-form__controls-content .t-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-input .t-icon,.t-is-warning .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-warning .t-form__controls-content .t-radio-button .t-icon,.t-is-warning .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-range-input .t-icon,.t-is-warning .t-form__controls-content .t-select .t-fake-arrow,.t-is-warning .t-form__controls-content .t-select .t-icon,.t-is-warning .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-warning .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-warning .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader.t-is-active,.t-is-warning .t-form__controls-content .t-select.t-is-active,.t-is-warning .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-form__status .t-icon{color:var(--td-warning-color)}.t-is-error .t-input__extra{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader,.t-is-error .t-form__controls-content .t-input,.t-is-error .t-form__controls-content .t-radio-button,.t-is-error .t-form__controls-content .t-range-input,.t-is-error .t-form__controls-content .t-select,.t-is-error .t-form__controls-content .t-textarea__inner{border-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader--focused,.t-is-error .t-form__controls-content .t-input--focused,.t-is-error .t-form__controls-content .t-radio-button--focused,.t-is-error .t-form__controls-content .t-range-input--focused,.t-is-error .t-form__controls-content .t-select--focused,.t-is-error .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-error .t-form__controls-content .t-cascader .t-icon,.t-is-error .t-form__controls-content .t-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-input .t-icon,.t-is-error .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-error .t-form__controls-content .t-radio-button .t-icon,.t-is-error .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-range-input .t-icon,.t-is-error .t-form__controls-content .t-select .t-fake-arrow,.t-is-error .t-form__controls-content .t-select .t-icon,.t-is-error .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-error .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-error .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader.t-is-active,.t-is-error .t-form__controls-content .t-select.t-is-active,.t-is-error .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-form__status .t-icon{color:var(--td-error-color)}.t-radio-group{align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-wrap:wrap;font:var(--td-font-body-medium);list-style:none;margin:0;max-width:100%;padding:0;width:fit-content}@-moz-document url-prefix(){.t-radio-group{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-radio-group::-webkit-scrollbar{height:4px;width:4px}.t-radio-group::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:7px}.t-radio-group::-webkit-scrollbar-thumb:horizontal:hover,.t-radio-group::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-radio-group .t-radio{margin-right:var(--td-comp-margin-xxl)}.t-radio-group.t-radio-group__outline{flex-wrap:wrap;row-gap:var(--td-comp-margin-xs)}.t-radio-group.t-radio-group__outline.t-size-s .t-radio-button{height:var(--td-comp-size-xs)}.t-radio-group.t-radio-group__outline.t-size-m .t-radio-button{height:var(--td-comp-size-m)}.t-radio-group.t-radio-group__outline.t-size-l .t-radio-button{height:var(--td-comp-size-xl)}.t-radio-group.t-radio-group__outline .t-radio-button:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-radio-group.t-radio-group__outline .t-radio-button:only-child{border-radius:var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-checked{color:var(--td-brand-color)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-disabled.t-is-checked{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color-disabled);color:var(--td-brand-color-disabled)}.t-radio-group.t-radio-group--filled{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);border-radius:var(--td-radius-default);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);position:relative}.t-radio-group.t-radio-group--filled .t-radio-group__bg-block{background-color:var(--td-bg-color-container-select);border-radius:var(--td-radius-small);height:calc(100% - 4px);left:2px;position:absolute;top:2px;transition:all .2s cubic-bezier(.38,0,.24,1);width:0}.t-radio-group.t-radio-group--filled .t-radio-button{background-color:transparent;border:0;color:var(--td-text-color-secondary)}.t-radio-group.t-radio-group--filled .t-radio-button:hover{color:var(--td-text-color-primary)}.t-radio-group.t-radio-group--filled .t-radio-button:before{background-color:var(--td-component-border);content:"";height:calc(100% - 16px);left:0;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);width:1px}.t-radio-group.t-radio-group--filled .t-radio-button:first-child:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked{border:0;color:var(--td-text-color-primary);position:relative;transition:color .2s linear;z-index:1}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked+label:before,.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled{background-color:transparent}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-bg-color-component-disabled)}.t-radio-group.t-radio-group--primary-filled .t-radio-group__bg-block{background-color:var(--td-brand-color)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-checked,.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-anti)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-brand-color-disabled)}.t-radio-group.t-size-s .t-radio-button{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - var(--td-comp-paddingTB-xxs)*2);padding:0 var(--td-comp-paddingLR-s)}.t-radio-group.t-size-s .t-radio-button:before{height:calc(100% - 16px)}.t-radio-group.t-size-m .t-radio-button{font:var(--td-font-body-medium);height:calc(var(--td-comp-size-m) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l)}.t-radio-group.t-size-m .t-radio-button:before{height:calc(100% - 20px)}.t-radio-group.t-size-l .t-radio-button{font:var(--td-font-body-large);height:calc(var(--td-comp-size-xl) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xl)}.t-radio-group.t-size-l .t-radio-button:before{height:calc(100% - 24px)}.t-radio-group .t-radio-button{align-items:center;border:1px solid;border-color:var(--td-border-level-2-color);border-right:0;box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;position:relative;transition:color .2s cubic-bezier(0,0,.15,1);white-space:nowrap}.t-radio-group .t-radio-button:first-child{border-radius:var(--td-radius-small) 0 0 var(--td-radius-small)}.t-radio-group .t-radio-button:last-child{border-radius:0 var(--td-radius-small) var(--td-radius-small) 0;border-right:1px solid;border-right-color:var(--td-border-level-2-color)}.t-radio-group .t-radio-button__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:0;list-style:none;margin:0;opacity:0;padding:0;width:0}.t-radio-group .t-radio-button:hover{color:var(--td-brand-color)}.t-radio-group .t-radio-button.t-is-checked{border-right:1px solid;border-color:var(--td-brand-color);transition:border-color .2s cubic-bezier(0,0,.15,1)}.t-radio-group .t-radio-button.t-is-checked+.t-radio-button{border-left:0}.t-radio-group .t-radio-button.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-radio-group .t-radio-button.t-is-disabled:hover{border-color:var(--td-border-level-2-color);color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled:hover:after{width:0}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked:after{width:0}.t-radio{cursor:pointer;display:inline-block;position:relative}.t-radio,.t-radio__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-radio__former{opacity:0;position:absolute}.t-radio__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-circle);display:inline-block;height:16px;position:relative;transition:border .2s cubic-bezier(0,0,.15,1);vertical-align:middle;width:16px}.t-radio__input:after{background-color:var(--td-brand-color);border-radius:var(--td-radius-circle);content:"";height:16px;left:50%;margin-left:-8px;margin-top:-8px;opacity:0;position:absolute;top:50%;transform:scale(.5);transition:all .2s cubic-bezier(0,0,.15,1);width:16px}.t-radio__label{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);vertical-align:middle;white-space:nowrap}.t-radio.t-is-checked .t-radio__input,.t-radio:hover .t-radio__input{border-color:var(--td-brand-color)}.t-radio.t-is-checked .t-radio__input:after{opacity:1}.t-radio.t-is-disabled{cursor:not-allowed}.t-radio.t-is-disabled .t-radio__label{color:var(--td-text-color-disabled)}.t-radio.t-is-disabled .t-radio__input{background-color:var(--td-bg-color-component-disabled)}.t-radio.t-is-disabled.t-is-checked .t-radio__input,.t-radio.t-is-disabled:hover .t-radio__input{border-color:var(--td-border-level-2-color)}.t-radio.t-is-disabled.t-is-checked .t-radio__input:after{background-color:var(--td-text-color-disabled)}.t-radio:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-slider__input-container{align-items:center;display:flex;margin-left:var(--td-comp-margin-xxl)}.t-slider__input-container.is-vertical{margin-left:0;padding-top:var(--td-comp-paddingTB-l)}.t-slider__input-container .t-slider__center-line{background:rgba(0,0,0,.9);height:1px;margin:0 var(--td-comp-margin-s);width:var(--td-size-4)}.t-slider{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:calc(var(--td-comp-paddingTB-xs)*2 + var(--td-size-2));list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) 0;position:relative;width:100%}.t-slider__container{align-items:center;display:flex;justify-content:center;width:100%}.t-slider__container.is-vertical{flex-direction:column;height:100%}.t-slider__rail{background-color:var(--td-bg-color-secondarycomponent);border-radius:var(--td-radius-round);height:var(--td-size-2);position:absolute;transition:.2s linear;width:100%}.t-slider__rail:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-slider__track{background-color:var(--td-brand-color);border-radius:var(--td-radius-round);right:auto}.t-slider__step,.t-slider__track{height:var(--td-size-2);position:absolute}.t-slider__step{cursor:pointer;width:100%}.t-slider__button{background-color:#fff;border:2px solid var(--td-brand-color);border-radius:var(--td-radius-circle);box-shadow:var(--td-shadow-1);box-sizing:border-box;height:var(--td-comp-size-xxxs);transition:.2s;user-select:none;width:var(--td-comp-size-xxxs)}.t-slider__button--dragging{box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-slider__button:hover{background-color:var(--td-gray-color-1)}.t-slider__button-wrapper{align-items:center;background-color:transparent;cursor:pointer;display:flex;line-height:normal;outline:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);user-select:none;z-index:2}.t-slider__stop{background-color:var(--td-bg-color-secondarycomponent);height:var(--td-size-2);position:absolute;top:4px;width:1px}.t-slider__mark{left:0;position:absolute;top:2px;width:100%}.t-slider__mark-text{color:var(--td-text-color-primary);cursor:pointer;display:inline-block;font:var(--td-font-body-small);position:absolute;top:calc(var(--td-size-2) + var(--td-comp-paddingTB-xs) + 2px);transform:translateX(-50%);white-space:nowrap}.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}@-moz-document url-prefix(){.t-textarea__inner{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-textarea__inner::-webkit-scrollbar{height:6px;width:6px}.t-textarea__inner::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-textarea__inner::-webkit-scrollbar-thumb:horizontal:hover,.t-textarea__inner::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.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;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;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{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.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);cursor:pointer;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 th:not(:last-child){border-right: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-qrcode{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-sizing:border-box;display:flex;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);position:relative}.t-qrcode>canvas{align-self:stretch;flex:auto;min-width:0}.t-qrcode.t-borderless{border-color:transparent}.t-qrcode .t-mask{align-items:center;background-color:var(--td-mask-background);border-radius:var(--td-radius-medium);color:var(--td-text-color-primary);display:flex;flex-direction:column;height:100%;inset-block-start:0;inset-inline-start:0;justify-content:center;line-height:var(--td-line-height-body-medium);position:absolute;text-align:center;width:100%;z-index:300}.t-qrcode .t-expired__text{color:var(--td-text-color-primary);font-weight:600}.t-qrcode .t-expired__button{align-items:center;box-shadow:none;color:var(--td-brand-color);column-gap:var(--td-comp-margin-s);cursor:pointer;display:flex;height:var(--td-comp-size-m);transition:all .2s cubic-bezier(.215,.61,.355,1)}.t-qrcode .t-expired__button:hover{color:var(--td-brand-color-hover)}.t-qrcode .t-scanned{align-items:center;column-gap:var(--td-comp-margin-s);display:flex}.t-qrcode .t-scanned__icon{color:var(--td-success-color)}.t-qrcode-svg{align-items:center;justify-content:center}.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{pointer-events:none;position:fixed;z-index:6000}.t-message__list .t-message{margin-bottom:var(--td-comp-margin-s);pointer-events:auto;word-break:break-all}.t-notification{background-color:var(--td-bg-color-container);border:0;border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:0;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);width:360px}.t-notification__icon{margin-right:var(--td-comp-margin-s);text-align:center;width:calc(var(--td-font-size-body-large) + 8px)}.t-notification__icon .t-icon{font-size:calc(var(--td-font-size-body-large) + 8px)}.t-notification .t-icon.t-is-info{color:var(--td-brand-color)}.t-notification .t-icon.t-is-success{color:var(--td-success-color)}.t-notification .t-icon.t-is-warning{color:var(--td-warning-color)}.t-notification .t-icon.t-is-error{color:var(--td-error-color-6)}.t-notification__main{flex:1}.t-notification__title__wrap{display:flex;justify-content:space-between}.t-notification__title{color:var(--td-text-color-primary);font:var(--td-font-title-medium)}.t-notification .t-icon-close{border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;font-size:var(--td-font-size-body-large)}.t-notification .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-notification .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-notification__content{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--td-text-color-secondary);display:-webkit-box;font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-s);max-height:66px;overflow:hidden;text-overflow:ellipsis;word-break:break-all}.t-notification__detail{font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-l);text-align:right}.t-notification__detail-item{cursor:pointer}.t-notification__detail-item:hover{background:var(--td-bg-color-container-hover);color:inherit}.t-notification__detail-item:active{background:var(--td-bg-color-container-active);color:inherit}.t-notification__detail-item+.t-notification__detail-item{margin-left:var(--td-comp-margin-s)}.t-notification__detail-item.t-is-active{color:var(--td-brand-color)}.t-notification__show--top-left{left:0;position:fixed;top:0}.t-notification__show--top-left>.t-notification{animation-duration:.3s;animation-name:slidein-top-left}@keyframes slidein-top-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--top-right{position:fixed;right:0;top:0}.t-notification__show--top-right>.t-notification{animation-duration:.3s;animation-name:slidein-top-right}@keyframes slidein-top-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-left{bottom:0;display:flex;flex-direction:column-reverse;left:0;position:fixed}.t-notification__show--bottom-left>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-left}@keyframes slidein-bottom-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-right{bottom:0;display:flex;flex-direction:column-reverse;position:fixed;right:0}.t-notification__show--bottom-right>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-right}@keyframes slidein-bottom-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification-list__show{position:fixed}.t-popconfirm{border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;min-width:160px;padding:0}.t-popconfirm .t-popup__content{padding:0}.t-popconfirm.t-popup[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-popconfirm__content{border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);position:relative}.t-popconfirm__body{align-items:flex-start;display:flex;text-align:left}.t-popconfirm__body>.t-icon{display:inline-block;font-size:calc(var(--td-font-size-body-medium) + 6px);margin-right:var(--td-comp-margin-s);padding:calc(var(--td-line-height-body-medium)/2 - var(--td-font-size-body-medium)/2 - 3px) 0}.t-popconfirm__confirm{margin-left:var(--td-comp-margin-s)}.t-popconfirm__inner{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);max-width:320px;vertical-align:top}.t-popconfirm__icon--warning{color:var(--td-warning-color)}.t-popconfirm__icon--danger{color:var(--td-error-color)}.t-popconfirm__icon--default{color:var(--td-brand-color)}.t-popconfirm__buttons{margin-top:var(--td-comp-margin-l);text-align:right}.t-popconfirm__buttons>span:last-child{margin-right:0}.t-upload{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-upload .t-is-bordered{border:1px solid var(--td-component-border)}.t-upload .t-upload__trigger{display:inline-block}.t-upload .t-icon{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload .t-icon-check-circle-filled{color:var(--td-success-color)}.t-upload .t-icon-error-circle-filled{color:var(--td-error-color)}.t-upload .t-icon-time-filled{color:var(--td-text-color-placeholder)}.t-upload .t-icon-add{color:var(--td-text-color-primary)}.t-upload__list-file{align-items:center;display:flex;height:100px;justify-content:center;margin-right:var(--td-comp-margin-m);overflow:hidden;width:100px}.t-upload__list-file .t-icon{color:var(--td-brand-color);font-size:var(--td-comp-size-xl)}.t-upload__list-item{align-items:center;border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);display:flex;font:var(--td-font-body-medium);height:124px;justify-content:space-between;margin-top:var(--td-comp-margin-m);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);width:496px}.t-upload__list-item.t-is--error .t-upload__list-file .t-icon,.t-upload__list-item.t-is--error .t-upload__list-name{color:var(--td-error-color)}.t-upload__list-content{align-items:center;display:flex}.t-upload-list__control{cursor:pointer}.t-upload-list__control:hover{color:var(--td-error-color)}.t-upload__list-img{cursor:pointer;max-height:100%;max-width:100%;object-fit:cover}.t-upload__list-name{word-wrap:normal;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload--highlight{color:var(--td-text-color-brand)}.t-upload__single-name{margin-right:var(--td-comp-margin-s)}.t-upload__card{display:flex;flex-wrap:wrap;font:var(--td-font-body-small);gap:var(--td-comp-margin-s);margin:0;overflow:hidden;padding:0;width:100%}.t-upload__card .t-is-disabled :hover{cursor:not-allowed}.t-upload__card-item{box-sizing:border-box;cursor:pointer;list-style:none}.t-upload__card-item:after{content:"";display:block}.t-upload__card-item:hover .t-upload__card-mask{opacity:1;transition:opacity .2s linear}.t-upload__card-item.t-is--error .t-icon-warning_fill{color:var(--td-error-color);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-item.t-is--error .t-upload__card-status{color:var(--td-error-color)}.t-upload__card-item.t-is-background{transition:border-color .2s linear}.t-upload__card .t-icon-loading{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-name{word-wrap:normal;margin-top:var(--td-comp-margin-s);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__card-content{overflow:hidden;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s)}.t-upload__card-container,.t-upload__card-content{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border:1px dashed var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;display:flex;height:110px;justify-content:center;position:relative;width:110px}.t-upload__card-container{flex-direction:column;transition:border .2s linear}.t-upload__card-container:hover:not(.t-is-disabled){border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__card-container>.t-icon{color:var(--td-text-color-placeholder)}.t-upload__card-container .t-loading,.t-upload__card-container>.t-icon{font-size:var(--td-comp-size-xs);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-container .t-upload__add-text,.t-upload__card-container>p{color:var(--td-text-color-placeholder);margin:0}.t-upload__card-status-wrap{text-align:center}.t-upload__card-status-wrap>svg{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-status-wrap .t-icon,.t-upload__card-status-wrap .t-loading{font-size:var(--td-comp-size-xs)}.t-upload__card-image{height:100%;max-height:100%;max-width:100%;width:100%}.t-upload__card-status{color:var(--td-text-color-disabled);font:var(--td-font-body-small)}.t-upload__card-mask{align-items:center;background-color:var(--td-mask-active);bottom:0;color:var(--td-text-color-anti);display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s linear;will-change:transform;z-index:2}.t-upload__card-mask-item-divider{border-left:1px solid var(--td-text-color-anti);height:var(--td-comp-size-xxxs);margin:0 var(--td-comp-margin-l)}.t-upload__card-mask-item>.t-icon{cursor:pointer;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dialog .t-dialog{max-width:80%}.t-upload__dialog .t-dialog--default{padding:32px}.t-upload__dialog .t-dialog-body{padding-bottom:0}.t-upload__dialog .t-dialog-body-img-box img{display:block;max-height:100%;max-width:100%}.t-upload__dragger{border:1px dashed var(--td-component-border);border-radius:var(--td-radius-small);box-sizing:border-box;color:var(--td-text-color-secondary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:144px;overflow:auto;padding:var(--td-comp-margin-l);position:relative;transition:border-color .2s linear;width:336px}.t-upload__dragger.t-is--active{background-color:var(--td-bg-color-container-active)}.t-upload__dragger.t-is--active,.t-upload__dragger:hover{border-color:var(--td-brand-color)}.t-upload__dragger-btns{bottom:var(--td-comp-margin-l);position:absolute}.t-upload__dragger .t-size-s{display:block}.t-upload__dragger-center{align-items:center;justify-content:center}.t-upload__dragger-error,.t-upload__dragger-error:hover{border-color:var(--td-error-color)}.t-upload__dragger-text{align-items:center;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);margin-bottom:var(--td-comp-margin-s);max-width:calc(336px - var(--td-comp-margin-l)*2)}.t-upload__dragger-text .t-upload__single-name{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__tips{color:var(--td-text-color-placeholder);display:block;font:var(--td-font-body-small);margin-top:var(--td-comp-margin-s)}.t-upload__tips.t-upload__tips-error{color:var(--td-error-color)}.t-upload__tips.t-upload__tips-warn{color:var(--td-warning-color)}.t-upload__placeholder{color:var(--td-text-color-placeholder)}.t-upload__display-text--margin{margin-top:var(--td-comp-margin-s)}.t-upload__single-display-text{align-items:center;color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-small)}.t-upload__single-display-text .t-upload__flow-status .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-icon-clear-circle-filled{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xxs);transition:color .2s linear}.t-icon-clear-circle-filled:hover{color:var(--td-text-color-secondary);cursor:pointer;transition:color .2s linear}.t-upload__single-percent{margin-left:var(--td-comp-margin-xs)}.t-upload__single-progress{align-items:center;color:var(--td-brand-color);display:flex}.t-upload__single-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__single-input-delete{color:var(--td-brand-color);cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-l)}.t-upload__single-input-preview{display:flex;flex:1;justify-content:space-between}.t-upload__single-input-text{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__single-file-input{align-items:center;display:flex}.t-upload__single-file-input .t-upload__trigger{margin-left:var(--td-comp-margin-l)}.t-upload__single-file-input .t-upload__single-progress{white-space:nowrap}.t-upload__single-file-input .t-input__inner{align-items:center;display:flex;justify-content:space-between}.t-upload__dragger-progress{display:flex;width:100%}.t-upload__dragger-progress .t-icon,.t-upload__dragger-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dragger-img-wrap{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:flex;flex-shrink:0;height:110px;justify-content:center;width:110px}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square{width:100%}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square .t-space-item{text-align:center}.t-upload__dragger-img-wrap>img{max-height:100%;max-width:100%}.t-upload__dragger-img-wrap+.t-upload__dragger-progress-info{margin-left:var(--td-comp-margin-l);max-width:calc(226px - var(--td-comp-margin-l)*2 - var(--td-comp-margin-l))}.t-upload__dragger-progress-info{flex:1}.t-upload__dragger-progress-info .t-upload__single-display-text{margin-bottom:var(--td-comp-margin-s)}.t-upload__dragger-progress-info .t-button:hover{background-color:transparent}.t-upload__dragger-progress-cancel,.t-upload__dragger-progress-reupload{margin-right:var(--td-comp-margin-l)}.t-upload__dragger-delete-btn:hover,.t-upload__dragger-progress-cancel:hover,.t-upload__dragger-progress-reupload:hover,.t-upload__dragger-upload-btn:hover{border-color:transparent}.t-upload__flow-image-flow{width:498px}.t-upload__flow{max-width:960px;min-width:498px}.t-upload__flow-placeholder{display:inline-block;margin-left:var(--td-comp-margin-l)}.t-upload__flow-op{align-items:center;display:flex}.t-upload__flow-bottom{display:flex;justify-content:flex-end;margin-top:var(--td-comp-margin-xxl)}.t-upload__flow-bottom .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-upload__flow-empty{align-items:center;color:var(--td-text-color-placeholder);display:flex;height:184px;justify-content:center;width:100%}.t-upload__flow-table{border:1px dashed var(--td-component-border);border-collapse:collapse;margin-top:var(--td-comp-margin-xxl);width:100%}.t-upload__flow-table>tbody>tr,.t-upload__flow-table>tfoot>tr,.t-upload__flow-table>thead>tr,.t-upload__flow-table>tr{border-top:1px solid var(--td-component-border)}.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>th{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);color:var(--td-text-color-placeholder);font-weight:400;text-align:left}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>tr>td{color:var(--td-text-color-primary)}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>td,.t-upload__flow-table>tr>th{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-upload__flow-table__batch-row{border-left:1px solid var(--td-component-border)}.t-upload__flow-button{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__flow-button:hover{color:var(--td-text-color-secondary)}.t-upload__flow-status{align-items:center;display:flex}.t-upload__flow-status .t-icon,.t-upload__flow-status .t-loading{font-size:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-s)}.t-upload__flow-card-area{border:1px dashed var(--td-component-border);margin-top:var(--td-comp-margin-xxl);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);transition:border .2s linear}.t-upload__flow-card-area:hover{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__icon-delete,.t-upload__single-input-clear{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__icon-delete:hover,.t-upload__single-input-clear:hover{color:var(--td-text-color-secondary);transition:color .2s linear}.t-icon.t-upload__single-input-clear{display:none}.t-upload__single-input-preview:hover .t-upload__single-input-clear{display:initial}.t-upload__single-input-preview:hover .t-upload__status-icon{display:none}.t-upload .t-upload__single-name{color:var(--td-text-color-secondary)}.t-upload .t-upload__file-thumbnail{align-items:center;cursor:pointer;display:flex;height:var(--td-comp-size-xxl);justify-content:center;margin-right:var(--td-comp-paddingLR-s);width:var(--td-comp-size-xxl)}.t-upload .t-upload__file-thumbnail>svg{color:var(--td-text-color-placeholder);font-size:var(--td-comp-size-s)}.t-upload__card-name{margin-top:8px}.t-upload--theme-file-input{width:100%}.t-upload__dragger-btns>.t-button{padding:0}.t-upload__file-info{align-items:center;display:flex}.t-upload__card-container.t-is-disabled{cursor:not-allowed}.t-upload__card-container.t-is-disabled .t-icon,.t-upload__card-container.t-is-disabled .t-upload__add-text{color:var(--td-text-color-disabled)} +:root{--td-screen-xs:320px;--td-screen-sm:768px;--td-screen-md:992px;--td-screen-lg:1200px;--td-screen-xl:1400px;--td-screen-xxl:1880px}@-moz-document url-prefix(){.narrow-scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.narrow-scrollbar::-webkit-scrollbar{height:8px;width:8px}.narrow-scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.narrow-scrollbar::-webkit-scrollbar-thumb:horizontal:hover,.narrow-scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-fake-arrow path{stroke:currentcolor;transition:d .2s}.t-fake-arrow--active path{d:path("M3.75 10.2002L7.99274 5.7998L12.2361 10.0425")}.t-slide-down-enter-active,.t-slide-down-leave-active{transition:height .2s cubic-bezier(.38,0,.24,1),max-height .2s cubic-bezier(.38,0,.24,1)}:root,:root[theme-mode=light]{--td-brand-color-1:#f2f3ff;--td-brand-color-2:#d9e1ff;--td-brand-color-3:#b5c7ff;--td-brand-color-4:#8eabff;--td-brand-color-5:#618dff;--td-brand-color-6:#366ef4;--td-brand-color-7:#0052d9;--td-brand-color-8:#003cab;--td-brand-color-9:#002a7c;--td-brand-color-10:#001a57;--td-warning-color-1:#fff1e9;--td-warning-color-2:#ffd9c2;--td-warning-color-3:#ffb98c;--td-warning-color-4:#fa9550;--td-warning-color-5:#e37318;--td-warning-color-6:#be5a00;--td-warning-color-7:#954500;--td-warning-color-8:#713300;--td-warning-color-9:#532300;--td-warning-color-10:#3b1700;--td-error-color-1:#fff0ed;--td-error-color-2:#ffd8d2;--td-error-color-3:#ffb9b0;--td-error-color-4:#ff9285;--td-error-color-5:#f6685d;--td-error-color-6:#d54941;--td-error-color-7:#ad352f;--td-error-color-8:#881f1c;--td-error-color-9:#68070a;--td-error-color-10:#490002;--td-success-color-1:#e3f9e9;--td-success-color-2:#c6f3d7;--td-success-color-3:#92dab2;--td-success-color-4:#56c08d;--td-success-color-5:#2ba471;--td-success-color-6:#008858;--td-success-color-7:#006c45;--td-success-color-8:#005334;--td-success-color-9:#003b23;--td-success-color-10:#002515;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:#fff;--td-font-white-2:hsla(0,0%,100%,.55);--td-font-white-3:hsla(0,0%,100%,.35);--td-font-white-4:hsla(0,0%,100%,.22);--td-font-gray-1:rgba(0,0,0,.9);--td-font-gray-2:rgba(0,0,0,.6);--td-font-gray-3:rgba(0,0,0,.4);--td-font-gray-4:rgba(0,0,0,.26);--td-brand-color:var(--td-brand-color-7);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-6);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-8);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:rgba(0,0,0,.6);--td-mask-disabled:hsla(0,0%,100%,.6);--td-mask-background:hsla(0,0%,100%,.96);--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-text-color-watermark:rgba(0,0,0,.1);--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-mask-background:rgba(36,36,36,.96);--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-text-color-watermark:hsla(0,0%,100%,.1);--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:18px;--td-font-size-title-extraLarge: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:26px;--td-line-height-title-extraLarge: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-title-extraLarge:600 var(--td-font-size-title-extraLarge) /var(--td-line-height-title-extraLarge) var(--td-font-family);--td-font-headline-small:600 var(--td-font-size-headline-small) /var(--td-line-height-headline-small) var(--td-font-family);--td-font-headline-medium:600 var(--td-font-size-headline-medium) /var(--td-line-height-headline-medium) var(--td-font-family);--td-font-headline-large:600 var(--td-font-size-headline-large) /var(--td-line-height-headline-large) var(--td-font-family);--td-font-display-medium:600 var(--td-font-size-display-medium) /var(--td-line-height-display-medium) var(--td-font-family);--td-font-display-large:600 var(--td-font-size-display-large) /var(--td-line-height-display-large) var(--td-font-family);--td-size-1:2px;--td-size-2:4px;--td-size-3:6px;--td-size-4:8px;--td-size-5:12px;--td-size-6:16px;--td-size-7:20px;--td-size-8:24px;--td-size-9:28px;--td-size-10:32px;--td-size-11:36px;--td-size-12:40px;--td-size-13:48px;--td-size-14:56px;--td-size-15:64px;--td-size-16:72px;--td-comp-size-xxxs:var(--td-size-6);--td-comp-size-xxs:var(--td-size-7);--td-comp-size-xs:var(--td-size-8);--td-comp-size-s:var(--td-size-9);--td-comp-size-m:var(--td-size-10);--td-comp-size-l:var(--td-size-11);--td-comp-size-xl:var(--td-size-12);--td-comp-size-xxl:var(--td-size-13);--td-comp-size-xxxl:var(--td-size-14);--td-comp-size-xxxxl:var(--td-size-15);--td-comp-size-xxxxxl:var(--td-size-16);--td-pop-padding-s:var(--td-size-2);--td-pop-padding-m:var(--td-size-3);--td-pop-padding-l:var(--td-size-4);--td-pop-padding-xl:var(--td-size-5);--td-pop-padding-xxl:var(--td-size-6);--td-comp-paddingLR-xxs:var(--td-size-1);--td-comp-paddingLR-xs:var(--td-size-2);--td-comp-paddingLR-s:var(--td-size-4);--td-comp-paddingLR-m:var(--td-size-5);--td-comp-paddingLR-l:var(--td-size-6);--td-comp-paddingLR-xl:var(--td-size-8);--td-comp-paddingLR-xxl:var(--td-size-10);--td-comp-paddingTB-xxs:var(--td-size-1);--td-comp-paddingTB-xs:var(--td-size-2);--td-comp-paddingTB-s:var(--td-size-4);--td-comp-paddingTB-m:var(--td-size-5);--td-comp-paddingTB-l:var(--td-size-6);--td-comp-paddingTB-xl:var(--td-size-8);--td-comp-paddingTB-xxl:var(--td-size-10);--td-comp-margin-xxs:var(--td-size-1);--td-comp-margin-xs:var(--td-size-2);--td-comp-margin-s:var(--td-size-4);--td-comp-margin-m:var(--td-size-5);--td-comp-margin-l:var(--td-size-6);--td-comp-margin-xl:var(--td-size-7);--td-comp-margin-xxl:var(--td-size-8);--td-comp-margin-xxxl:var(--td-size-10);--td-comp-margin-xxxxl:var(--td-size-12)}.t-loading{box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-brand-color);font:var(--td-font-body-medium);font-size:var(--td-comp-size-l);list-style:none;margin:0;padding:0;position:relative}.t-loading--lock{overflow:hidden}.t-loading.t-size-s{font-size:var(--td-comp-size-xxxs)}.t-loading.t-size-l{font-size:var(--td-comp-size-xxxl)}.t-loading__parent--relative{position:relative!important}.t-loading__fullscreen{height:100%;left:0;position:fixed;top:0;width:100%;z-index:3500}.t-loading--center{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__content{left:48%;position:absolute;top:20%}.t-loading--inherit-color{color:inherit}.t-loading__parent{position:relative}.t-loading__overlay{background-color:var(--td-mask-disabled)}.t-loading--full{height:100%;left:0;position:absolute;top:0;width:100%;z-index:3500}.t-loading--hidden{visibility:hidden}.t-loading--visible{visibility:visible}.t-loading__text{display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-xs);vertical-align:middle;width:auto}.t-loading__gradient{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__gradient-conic{background:conic-gradient(from 90deg at 50% 50%,#fff 0deg,currentcolor 1turn);border-radius:var(--td-radius-circle);height:100%;-webkit-mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);width:100%}.t-button{align-items:center;background-color:transparent;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);justify-content:center;list-style:none;margin:0;outline:none;overflow:hidden;padding:0;position:relative;text-decoration:none;touch-action:manipulation;transition:all .2s linear;vertical-align:middle;white-space:nowrap;z-index:0}.t-button .t-button__text,.t-button .t-icon{display:inline-flex;position:relative;z-index:1}.t-button .t-icon,.t-button .t-loading{font-size:var(--td-font-size-body-large)}.t-button .t-icon+.t-button__text:not(:empty),.t-button .t-loading+.t-button__text:not(:empty){margin-left:8px}.t-button .t-button__suffix:not(:empty){display:inline-flex;margin-left:8px}.t-button--variant-base{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);color:var(--td-text-color-anti);color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-base .t-icon,.t-button--variant-base .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{background-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{border-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{border-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{color:var(--td-text-color-primary)}.t-button--variant-base.t-is-disabled,.t-button--variant-base.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-base.t-button--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{background-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-disabled,.t-button--variant-base.t-button--theme-primary.t-is-loading{background-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-disabled,.t-button--variant-base.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-success{background-color:var(--td-success-color);border-color:var(--td-success-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{background-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-disabled,.t-button--variant-base.t-button--theme-success.t-is-loading{background-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-disabled,.t-button--variant-base.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-warning{background-color:var(--td-warning-color);border-color:var(--td-warning-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{background-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-disabled,.t-button--variant-base.t-button--theme-warning.t-is-loading{background-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-disabled,.t-button--variant-base.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-danger{background-color:var(--td-error-color);border-color:var(--td-error-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{background-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-disabled,.t-button--variant-base.t-button--theme-danger.t-is-loading{background-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-disabled,.t-button--variant-base.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-loading,.t-button--variant-base.t-button--ghost:active{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-is-loading:not(.t-button--variant-base.t-button--ghost).t-button--theme-default,.t-button--variant-outline{color:var(--td-text-color-primary)}.t-button--variant-outline{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-outline .t-icon,.t-button--variant-outline .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-outline.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled,.t-button--variant-outline.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled,.t-button--variant-outline.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-disabled,.t-button--variant-outline.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-disabled,.t-button--variant-outline.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled,.t-button--variant-outline.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled,.t-button--variant-outline.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled,.t-button--variant-outline.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled,.t-button--variant-outline.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-loading,.t-button--variant-outline.t-button--ghost:active{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-primary{background-color:transparent;color:var(--td-brand-color)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-success{background-color:transparent;color:var(--td-success-color)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-warning{background-color:transparent;color:var(--td-warning-color)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-danger{background-color:transparent;color:var(--td-error-color)}.t-button--variant-dashed{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-style:dashed;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-dashed .t-icon,.t-button--variant-dashed .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-dashed.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled,.t-button--variant-dashed.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled,.t-button--variant-dashed.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled,.t-button--variant-dashed.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled,.t-button--variant-dashed.t-button--theme-success.t-is-loading{border-color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled,.t-button--variant-dashed.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled,.t-button--variant-dashed.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled,.t-button--variant-dashed.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled,.t-button--variant-dashed.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-loading,.t-button--variant-dashed.t-button--ghost:active{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-primary{background-color:transparent;color:var(--td-brand-color)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-success{background-color:transparent;color:var(--td-success-color)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-warning{background-color:transparent;color:var(--td-warning-color)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-danger{background-color:transparent;color:var(--td-error-color)}.t-button--variant-text{background-color:transparent;border-color:transparent;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-text .t-icon,.t-button--variant-text .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{color:var(--td-text-color-primary)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{color:var(--td-text-color-disabled)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{background-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{background-color:transparent}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{border-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{border-color:transparent}.t-button--variant-text.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--theme-primary.t-is-disabled,.t-button--variant-text.t-button--theme-primary.t-is-loading{color:var(--td-brand-color-disabled)}.t-button--variant-text.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--theme-success.t-is-disabled,.t-button--variant-text.t-button--theme-success.t-is-loading{color:var(--td-success-color-disabled)}.t-button--variant-text.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--theme-warning.t-is-disabled,.t-button--variant-text.t-button--theme-warning.t-is-loading{color:var(--td-warning-color-disabled)}.t-button--variant-text.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--theme-danger.t-is-disabled,.t-button--variant-text.t-button--theme-danger.t-is-loading{color:var(--td-error-color-disabled)}.t-button--variant-text.t-button--ghost{background:none;color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost:focus-visible,.t-button--variant-text.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-danger{color:var(--td-error-color)}.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) 0}.t-descriptions__body.t-size-m>tbody>tr>td{padding:var(--td-comp-paddingTB-m) 0}.t-descriptions__body.t-size-s>tbody>tr>td{padding:var(--td-comp-paddingTB-s) 0}.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-size-l>tbody>tr>td{padding:var(--td-comp-paddingTB-l)}.t-descriptions__body--border.t-size-m>tbody>tr>td{padding:var(--td-comp-paddingLR-m) var(--td-comp-paddingLR-l)}.t-descriptions__body--border.t-size-s>tbody>tr>td{padding:var(--td-comp-paddingLR-s) var(--td-comp-paddingLR-l)}.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{box-sizing:border-box;color:var(--td-text-color-primary);display:grid;font:var(--td-font-body-medium);gap:2px;list-style:none;margin:0;padding: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);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:none;padding:0;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{display:flex;margin-left:var(--td-comp-margin-s);transition:all .3s cubic-bezier(.645,.045,.355,1)}.t-tabs__nav--card{background-color:var(--td-bg-color-secondarycontainer)}.t-tabs__nav--card.t-tabs__nav-item{border-bottom:1px solid var(--td-component-stroke);padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-tabs__nav--card.t-tabs__nav-item:after{display:none}.t-tabs__nav--card.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__nav--card.t-tabs__nav-item:not(:first-of-type){border-left:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item:last-of-type{border-right:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item.t-is-active{background-color:var(--td-bg-color-container);border-bottom-color:var(--td-bg-color-container);color:var(--td-brand-color)}.t-tabs__nav--card.t-tabs__nav-item.t-size-l{padding-left:var(--td-comp-paddingLR-xl);padding-right:var(--td-comp-paddingLR-xl)}.t-tabs__nav--card .t-icon-close{color:var(--td-text-color-secondary);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav--card .t-icon-close:hover{color:var(--td-text-color-primary)}.t-tabs__content{overflow:hidden;position:relative}.t-tab-panel.t-is-hidden{display:none}a.t-menu__item{color:unset;text-decoration:none}a.t-menu__item:active,a.t-menu__item:hover{color:inherit}.t-menu__logo>*{margin-left:var(--td-comp-margin-xxl)}.t-head-menu{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:100%}.t-head-menu__inner{display:flex;height:var(--td-comp-size-xxxl)}.t-head-menu__inner li+li{margin-left:var(--td-comp-margin-s)}.t-head-menu__inner .t-menu:first-child{margin-left:var(--td-comp-margin-xxl)}.t-head-menu .t-menu__logo:not(:empty){height:100%;margin-right:var(--td-comp-margin-xxxl)}.t-head-menu .t-menu{align-items:center;display:flex;flex:1}.t-head-menu .t-menu__operations:not(:empty){align-items:center;display:flex;height:var(--td-comp-size-xxxl);line-height:64px;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;text-align:right}.t-head-menu .t-menu__operations-icon{box-sizing:border-box;height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:var(--td-comp-size-m)}.t-head-menu .t-submenu>.t-menu__item{overflow:unset}.t-head-menu .t-submenu>.t-menu__item:before{bottom:-20px;content:"";display:block;height:20px;left:0;position:absolute;right:0}.t-head-menu .t-menu__item{gap:var(--td-comp-margin-m);height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-l);transition:all .28s cubic-bezier(.645,.045,.355,1)}.t-head-menu__submenu{border-top:1px solid var(--td-component-stroke);padding-left:0}.t-default-menu{background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;transition:width .28s cubic-bezier(.645,.045,.355,1);white-space:nowrap;width:232px}.t-default-menu .t-menu__item{color:var(--td-text-color-secondary)}.t-default-menu.t-is-collapsed{width:64px}.t-default-menu.t-is-collapsed .t-menu__logo>*{margin-left:var(--td-comp-margin-l)}.t-default-menu.t-is-collapsed .t-menu .t-menu__item{justify-content:center;padding:0 14px}.t-default-menu.t-is-collapsed .t-menu .t-menu__item .t-menu__item-link{bottom:0;content:"";left:0;margin-left:0;opacity:0;position:absolute;right:0;top:0}.t-default-menu.t-is-collapsed .t-fake-arrow{display:none}.t-default-menu.t-is-collapsed .t-menu__item{text-overflow:clip}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-menu__item--plain:after{content:""}.t-default-menu.t-is-collapsed .t-menu__item span{display:none}.t-default-menu.t-is-collapsed .t-menu__item .t-icon{margin-right:0}.t-default-menu.t-is-collapsed .t-submenu-icon{display:none}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item{min-width:auto}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item:after{bottom:0;content:"";display:block;position:absolute;right:-20px;top:0;width:20px}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title{display:none}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title+*{margin-top:0}.t-default-menu.t-is-collapsed .t-menu-group__title{font-size:0;padding:0}.t-default-menu.t-is-collapsed .t-menu-group__title:after{background:var(--td-component-stroke);content:"";display:block;height:1px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:20px}.t-default-menu.t-is-collapsed .t-menu__operations{text-align:center}.t-default-menu.t-is-collapsed .t-menu__operations-icon{display:block}.t-default-menu.t-is-collapsed .t-menu__log>*{margin:0 auto}.t-default-menu__inner{display:flex;flex-direction:column;height:100%}.t-default-menu__inner .t-menu__logo:not(:empty){border-bottom:1px solid var(--td-component-stroke);box-sizing:border-box;height:var(--td-comp-size-xxxl);width:100%}.t-default-menu__inner .t-menu{flex:1;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-s);position:relative}.t-default-menu__inner .t-menu--scroll{overflow-x:hidden;overflow-y:auto}@-moz-document url-prefix(){.t-default-menu__inner .t-menu--scroll{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar{height:6px;width:6px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:horizontal:hover,.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-default-menu__inner .t-menu .t-menu-group>:not(:first-child),.t-default-menu__inner .t-menu .t-menu__sub>:not(:first-child),.t-default-menu__inner .t-menu .t-submenu>:not(:first-child),.t-default-menu__inner .t-menu>:not(.t-menu-group):not(:first-child){margin-top:var(--td-comp-margin-xs)}.t-default-menu__inner .t-menu-group__title{box-sizing:border-box;color:var(--td-text-color-placeholder);font-size:var(--td-font-body-small);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l);position:relative}.t-default-menu .t-submenu{position:relative}.t-default-menu .t-menu__operations:not(:empty){border-top:1px solid var(--td-component-stroke);box-sizing:border-box;left:0;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l);position:relative;text-align:left;top:0;width:100%}.t-default-menu .t-menu__operations-icon{box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;height:32px;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:32px}.t-default-menu .t-menu__item.t-is-opened{background-color:unset;color:var(--td-text-color-primary)}.t-default-menu .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-primary)}.t-default-menu .t-menu__sub{overflow:hidden;padding:0}.t-default-menu .t-menu__sub .t-menu__item{padding-left:var(--padding-left,32px)}.t-default-menu .t-slide-down-enter-active .t-menu__sub{height:100%}.t-default-menu .t-menu__item{border-bottom:0;border-radius:var(--td-radius-default);box-sizing:border-box;height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 10px 0 16px;position:relative;text-align:left;transition:background-color .28s cubic-bezier(.38,0,.24,1),padding .28s cubic-bezier(.38,0,.24,1)}.t-default-menu .t-menu__item .t-icon{flex-shrink:0;height:20px;margin-right:var(--td-comp-margin-s);width:20px}.t-default-menu .t-menu__item .t-fake-arrow{margin-left:auto;min-width:16px}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-brand-color)}.t-default-menu .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background:var(--td-bg-color-secondarycontainer-hover)}.t-default-menu.t-menu--dark{background:var(--td-gray-color-13)}.t-default-menu.t-menu--dark .t-menu__item{color:var(--td-font-white-2)}.t-default-menu.t-menu--dark .t-menu__logo:not(:empty){border-bottom-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__operations:not(:empty){border-top-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-opened.t-is-active{background-color:transparent}.t-default-menu.t-menu--dark .t-menu-group__title{color:var(--td-font-white-3)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu-group__title:after{background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu{color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-menu--dark{color:var(--td-font-white-2)}.t-menu__logo:not(:empty){align-items:center;display:flex}.t-menu .t-submenu{position:relative}.t-menu .t-submenu.t-is-active>.t-menu__item,.t-menu .t-submenu.t-is-active>.t-menu__item .t-icon{color:var(--td-gray-color-13)}.t-menu .t-submenu .t-submenu-icon{height:16px;width:16px}.t-menu .t-submenu.t-is-opened .t-submenu-icon{transform:scaleY(-1)}.t-menu__spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__spacer--left:before{bottom:0;left:-16px;top:0;width:16px}.t-menu__spacer--top:before{height:20px;left:0;right:0;top:-20px}.t-menu__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;display:flex;height:40px;line-height:40px;position:relative;text-align:center;text-overflow:ellipsis}.t-menu__item ::selection{background:transparent}.t-menu__item-spacer{overflow:unset}.t-menu__item-spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__item-spacer--right:before{bottom:0;right:-16px;top:0;width:16px}.t-menu__item-spacer--bottom:before{bottom:-20px;height:20px;left:0;right:0}.t-menu__item a{color:unset;text-decoration:none}.t-menu__item a.t-menu__item-link{color:unset;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-menu__item a.t-menu__item-link:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.t-menu__item.t-is-active{background-color:var(--td-brand-color-light)}.t-menu__item.t-is-active,.t-menu__item.t-is-opened{color:var(--td-brand-color)}.t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-bg-color-container-hover)}.t-menu__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-menu__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-menu--dark.t-head-menu{background-color:var(--td-gray-color-13)}.t-menu--dark .t-menu__item{--ripple-color:var(--td-gray-color-11);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-opened,.t-menu--dark .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-disabled{color:var(--td-font-white-4)}.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-menu--dark .t-menu__popup{background:var(--td-gray-color-13);border:.5px solid var(--td-gray-color-10)}.t-menu--dark .t-menu__popup .t-menu__item{border-radius:var(--td-radius-default);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-gray-color-10)}.t-menu--dark .t-head-menu__submenu{border-top:1px solid transparent}.t-menu--dark .t-menu__operations-icon{color:var(--td-bg-color-container)}.t-menu--dark .t-menu__operations-icon:hover{background-color:var(--td-brand-color)}.t-menu__popup{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);list-style:none;margin:0;opacity:0;overflow:hidden;padding:0;z-index:1000}.t-menu__popup.t-popup__content{position:absolute}.t-menu__popup-wrapper{height:100%;list-style:none;margin:0;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-menu__popup-wrapper{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-menu__popup-wrapper::-webkit-scrollbar{height:8px;width:8px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb:horizontal:hover,.t-menu__popup-wrapper::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-menu__popup .t-fake-arrow{margin-left:auto}.t-menu__popup .t-menu__item{padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-menu__popup.t-is-vertical{min-width:var(--popup-width,160px)}.t-menu__popup.t-is-horizontal .t-menu__item{white-space:nowrap}.t-menu__popup.t-is-horizontal li+li{margin-top:var(--td-comp-margin-xs)}.t-menu__popup.t-is-opened{box-shadow:0 5px 5px -3px rgba(0,0,0,.1),0 8px 10px 1px rgba(0,0,0,.06),0 3px 14px 6px rgba(0,0,0,.05);opacity:1;overflow:visible}.t-menu__popup .t-menu__item{color:var(--td-text-color-primary);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s)}.t-menu__popup .t-menu__item+.t-menu__item{margin-left:0}.t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-bg-color-container-hover)}.t-menu__popup .t-is-disabled{color:var(--td-text-color-disabled)}.t-menu__operations-icon{border-radius:var(--td-radius-default);color:var(--td-text-color-primary);margin-right:var(--td-comp-margin-l);transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-menu__operations-icon:hover{background-color:var(--td-brand-color-light)}.t-opacity-transition{transition:opacity .28s cubic-bezier(.55,0,.1,1)}.horizontal-collapse-transition .t-submenu__title .t-submenu__icon-arrow{opacity:0;transition:.2s}.t-menu__popup{left:calc(100% - var(--td-pop-padding-m));top:0}.t-menu__popup .t-menu__item:not(:first-child),.t-menu__popup .t-submenu:not(:first-child){margin-top:var(--td-comp-margin-xxs)}.t-is-head-menu .t-menu__popup{margin-top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-m))/2)!important}.t-menu-is-nested .t-menu__popup{margin-top:calc(0px - var(--td-pop-padding-m))!important}.input-readonly.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.input-readonly.t-is-readonly .t-input__inner{cursor:pointer}.input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.input-disabled.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.input-disabled.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled>.t-input__prefix .t-icon,.input-disabled.t-is-disabled>.t-input__prefix .t-icon:hover,.input-disabled.t-is-disabled>.t-input__suffix .t-icon,.input-disabled.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-tips{font-size:var(--td-font-size-body-small)}.t-tips.t-is-default{color:var(--td-text-color-placeholder)}.t-tips.t-is-error{color:var(--td-error-color)}.t-tips.t-is-warning{color:var(--td-warning-color)}.t-tips.t-is-success{color:var(--td-success-color)}.t-input{align-items:center;background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-m);list-style:none;margin:0;outline:none;overflow:hidden;padding:0;padding:0 var(--td-comp-paddingLR-s);position:relative;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);width:100%}.t-input:focus,.t-input:hover{border-color:var(--td-brand-color)}.t-input:focus{box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input--borderless:not(.t-input--focused){border-color:transparent;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1)}.t-input--borderless:not(.t-input--focused):hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);cursor:pointer}.t-input--borderless:not(.t-input--focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-input--focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input :focus-visible{outline:none}.t-input__inner{word-wrap:normal;background-color:transparent;border:none;box-sizing:border-box;color:var(--td-text-color-primary);flex:1;font:inherit;max-width:100%;min-width:0;outline:none;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.t-input__inner::placeholder{color:var(--td-text-color-placeholder)}.t-input__inner:placeholder-shown{text-overflow:ellipsis;width:100%}.t-input__inner[type=password]::-ms-reveal{display:none}.t-input__inner[type=search]::-webkit-search-cancel-button,.t-input__inner[type=search]::-webkit-search-decoration,.t-input__inner[type=search]::-webkit-search-results-button,.t-input__inner[type=search]::-webkit-search-results-decoration{appearance:none}.t-input__inner.t-input--soft-hidden{width:0}.t-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-input__status{position:absolute;right:-24px;top:0}.t-input.t-input--suffix>span.t-input__clear{opacity:0;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-input.t-input--suffix:hover>span.t-input__clear{opacity:1;visibility:visible}.t-input.t-is-success{border-color:var(--td-success-color)}.t-input.t-is-success.t-input--focused,.t-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-input.t-is-success>.t-input__extra{color:var(--td-success-color)}.t-input.t-is-warning{border-color:var(--td-warning-color)}.t-input.t-is-warning.t-input--focused,.t-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-input.t-is-warning>.t-input__extra{color:var(--td-warning-color)}.t-input.t-is-error{border-color:var(--td-error-color)}.t-input.t-is-error.t-input--focused,.t-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-input.t-is-error>.t-input__extra{color:var(--td-error-color)}.t-input.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.t-input.t-is-readonly .t-input__inner{cursor:pointer}.t-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.t-input.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-input.t-is-disabled>.t-input__prefix .t-icon,.t-input.t-is-disabled>.t-input__prefix .t-icon:hover,.t-input.t-is-disabled>.t-input__suffix .t-icon,.t-input.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-input.t-input--prefix>.t-input__prefix{align-items:center;display:flex;height:100%;text-align:center;z-index:2}.t-input.t-input--prefix>.t-input__prefix-icon{font-size:var(--td-font-size-body-large)}.t-input.t-input--prefix.t-size-s .t-input__prefix-icon{font-size:var(--td-font-size-body-medium)}.t-input.t-input--prefix.t-size-l .t-input__prefix-icon{font-size:var(--td-font-size-title-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.t-size-s .t-input__suffix-icon{font-size:var(--td-font-size-body-medium)}.t-input.t-input--suffix.t-size-l .t-input__suffix-icon{font-size:var(--td-font-size-title-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)}.t-input .t-input__prefix:not(:empty){margin-right:var(--td-comp-margin-s)}.t-input .t-input__suffix>.t-icon{color:var(--td-text-color-placeholder);transition:all .2s linear}.t-input .t-input__suffix>.t-icon:hover{color:var(--td-text-color-secondary);transition:all .2s linear}.t-input .t-input__suffix:not(:empty){margin-left:var(--td-comp-margin-s)}.t-input.t-is-focused .t-input__prefix>.t-icon,.t-input.t-is-focused .t-input__suffix .t-icon-calendar,.t-input.t-is-focused .t-input__suffix>.t-icon-time{color:var(--td-brand-color)}.t-input-group{align-items:stretch;display:inline-flex;position:relative}.t-input-group .t-input__wrap{border-radius:0}.t-input-group .t-input__wrap:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button,.t-input-group .t-select{border-radius:0}.t-input-group .t-button:not(:first-child),.t-input-group .t-input__wrap:not(:first-child) .t-input,.t-input-group .t-select:not(:first-child){margin-left:-1px}.t-input-group .t-input__wrap:first-child .t-input{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child .t-input{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button:first-child,.t-input-group .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-button:last-child,.t-input-group .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap+.t-input__wrap{margin-left:var(--td-comp-margin-xxxl)}.t-input-group--separate .t-button,.t-input-group--separate .t-select{border-radius:var(--td-radius-default)}.t-input-group--separate .t-button:first-child,.t-input-group--separate .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group--separate .t-button:last-child,.t-input-group--separate .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap .t-input,.t-input-group--separate .t-input__wrap .t-input:first-child,.t-input-group--separate .t-input__wrap .t-input:last-child{border-radius:var(--td-radius-default)}.t-input-group .t-button,.t-input-group .t-input__inner,.t-input-group .t-select{position:relative;z-index:0}.t-input-group .t-button:active,.t-input-group .t-button:focus,.t-input-group .t-button:hover,.t-input-group .t-input__inner:active,.t-input-group .t-input__inner:focus,.t-input-group .t-input__inner:hover,.t-input-group .t-select:active,.t-input-group .t-select:focus,.t-input-group .t-select:hover{z-index:1}.t-input__wrap{width:100%}.t-input__tips{font:var(--td-font-body-small);height:auto;min-height:var(--td-line-height-body-small);position:absolute}.t-input__tips--default{color:var(--td-text-color-placeholder)}.t-input__tips--success{color:var(--td-success-color)}.t-input__tips--warning{color:var(--td-warning-color)}.t-input__tips--error{color:var(--td-error-color)}.t-align-center>.t-input__inner{text-align:center}.t-align-right>.t-input__inner{text-align:right}.t-input__input-pre{display:block;position:absolute;visibility:hidden;white-space:pre}.t-input--auto-width{min-width:60px;width:fit-content}.t-input__limit-number{background:var(--td-bg-color-specialcomponent);color:var(--td-text-color-placeholder);font:var(--td-font-body-medium)}.t-input__limit-number.t-is-disabled{background:var(--td-bg-color-component-disabled)}.t-input-number{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-size-m);position:relative;user-select:none;width:144px}.t-input-number:not(.t-input-number--column)>.t-input-number__decrease+.t-input__wrap{margin-left:var(--td-comp-margin-xs)}.t-input-number input::-webkit-inner-spin-button,.t-input-number input::-webkit-outer-spin-button{appearance:none}.t-input-number input[type=number]{appearance:textfield}.t-input-number>.t-input__tips{left:0;position:absolute}.t-input-number input+.t-input__suffix{margin-left:var(--td-comp-paddingLR-s)}.t-input-number .t-input__prefix{margin-right:var(--td-comp-paddingLR-s)}.t-input-number .t-input{color:var(--td-text-color-primary)}.t-input-number.t-input-number--auto-width{width:auto}.t-input-number.t-input-number--auto-width.t-is-controls-right{min-width:auto;width:auto}.t-input-number.t-input-number--auto-width .t-input__inner{min-width:42px}.t-input-number .t-input-number__decrease,.t-input-number .t-input-number__increase{align-items:center;background-color:transparent;border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:flex;height:var(--td-comp-size-m);justify-content:center;position:absolute;top:0;transition:all .2s cubic-bezier(.38,0,.24,1);width:var(--td-comp-size-m);z-index:1}.t-input-number .t-input-number__decrease:hover,.t-input-number .t-input-number__increase:hover{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:hover .t-icon,.t-input-number .t-input-number__increase:hover .t-icon{color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:active,.t-input-number .t-input-number__increase:active{background-color:var(--td-bg-color-container-hover);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease .t-icon,.t-input-number .t-input-number__increase .t-icon{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-large);position:relative;z-index:1}.t-input-number .t-input-number__decrease.t-is-disabled,.t-input-number .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled:hover,.t-input-number .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease{left:0}.t-input-number .t-input-number__increase{right:-8px}.t-input-number.t-is-disabled .t-input{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input:active,.t-input-number.t-is-disabled .t-input:focus,.t-input-number.t-is-disabled .t-input:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-disabled .t-input-number__decrease,.t-input-number.t-is-disabled .t-input-number__increase{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input-number__decrease .t-icon,.t-input-number.t-is-disabled .t-input-number__increase .t-icon{color:var(--td-text-color-secondary)}.t-input-number.t-size-s{padding:0 var(--td-comp-size-xs);width:120px}.t-input-number.t-size-s .t-input{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs)}.t-input-number.t-size-s .t-input-number__decrease,.t-input-number.t-size-s .t-input-number__increase{font-size:var(--td-font-size-body-medium);height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-input-number.t-size-l{padding:0 var(--td-comp-size-xl);width:168px}.t-input-number.t-size-l .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input-number__decrease,.t-input-number.t-size-l .t-input-number__increase{font-size:18px;height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-input-number.t-size-l.t-is-controls-right .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl);padding-right:calc(var(--td-comp-size-xl) + var(--td-comp-paddingLR-s))}.t-input-number.t-size-l.t-is-controls-right .t-input-number__decrease,.t-input-number.t-size-l.t-is-controls-right .t-input-number__increase{font-size:var(--td-font-size-body-large);width:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input--prefix{font:var(--td-font-body-large);padding:0 var(--td-comp-paddingLR-m)}.t-input-number.t-input-number--normal{border-radius:var(--td-radius-default);padding:0}.t-input-number.t-input-number--normal.t-is-disabled{color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-input-number--normal.t-is-disabled:hover .t-input{border-color:var(--td-border-level-2-color)}.t-input-number.t-input-number--normal.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-input-number--normal.t-is-disabled .t-input:focus{box-shadow:none}.t-input-number.t-is-controls-right{padding:0;width:96px}.t-input-number.t-is-controls-right:hover .t-input-number__decrease,.t-input-number.t-is-controls-right:hover .t-input-number__increase{opacity:1;visibility:visible}.t-input-number.t-is-controls-right .t-input{border-radius:var(--td-radius-default);box-sizing:border-box;margin:0;padding-right:calc(var(--td-comp-size-m) + var(--td-comp-paddingLR-s));width:100%}.t-input-number.t-is-controls-right .t-input-number__decrease,.t-input-number.t-is-controls-right .t-input-number__increase{background:var(--td-bg-color-secondarycontainer);border:0;border-radius:0;height:calc(var(--td-comp-size-m)/2 - 2px);left:auto;opacity:0;right:1px;top:auto;visibility:hidden;width:var(--td-comp-size-m);z-index:2}.t-input-number.t-is-controls-right .t-input-number__decrease .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase .t-icon{font-size:var(--td-font-size-body-small)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover,.t-input-number.t-is-controls-right .t-input-number__increase:hover{background:var(--td-bg-color-component-hover)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase:hover .t-icon{color:var(--td-text-color-primary)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__increase{border-top-right-radius:calc(var(--td-radius-default) - 1px);top:1px}.t-input-number.t-is-controls-right .t-input-number__decrease{border-bottom-right-radius:calc(var(--td-radius-default) - 1px);top:calc(var(--td-comp-size-m)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-l{width:120px}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-l .t-input-number__increase{height:calc(var(--td-comp-size-xl)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease{top:calc(var(--td-comp-size-xl)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-s{width:88px}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-s .t-input-number__increase{height:calc(var(--td-comp-size-xs)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease{top:calc(var(--td-comp-size-xs)/2 + 1px)}.t-input-number--row .t-input__wrap{margin-right:var(--td-comp-margin-xs);width:auto}.t-input-number--row .t-input-number__increase{right:0}.t-tag{align-items:center;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-anti);display:inline-flex;flex-direction:row;font:var(--td-font-body-medium);font:var(--td-font-body-small);height:var(--td-comp-size-xs);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-tag .t-icon{flex-shrink:0;height:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-xs);width:calc(var(--td-font-size-body-medium) + 2px)}.t-tag .t-tag__icon-close{cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);margin-right:0;transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tag--default{background-color:var(--td-bg-color-component);color:var(--td-text-color-primary)}.t-tag--default .t-tag__icon-close{color:var(--td-text-color-placeholder)}.t-tag--default .t-tag__icon-close:hover{color:var(--td-text-color-primary)}.t-tag--default:active{cursor:default}.t-tag--default.t-tag--disabled{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled);cursor:not-allowed}.t-tag--default.t-tag--disabled:hover{cursor:not-allowed}.t-tag--default.t-tag--disabled .t-icon:hover{cursor:pointer}.t-tag--default.t-tag--outline{border-color:var(--td-component-border)}.t-tag--default.t-tag--light,.t-tag--default.t-tag--light-outline{background-color:var(--td-bg-color-secondarycontainer)}.t-tag--default.t-tag--light-outline{border-color:var(--td-component-border)}.t-tag--primary{background-color:var(--td-brand-color)}.t-tag--primary.t-tag--outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline{background-color:var(--td-brand-color-light)}.t-tag--primary.t-tag--light-outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline,.t-tag--primary.t-tag--outline{color:var(--td-brand-color)}.t-tag--primary.t-tag--light .t-tag__icon-close:hover,.t-tag--primary.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--primary.t-tag--outline .t-tag__icon-close:hover{color:var(--td-brand-color-hover)}.t-tag--success{background-color:var(--td-success-color)}.t-tag--success.t-tag--outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline{background-color:var(--td-success-color-light)}.t-tag--success.t-tag--light-outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline,.t-tag--success.t-tag--outline{color:var(--td-success-color)}.t-tag--success.t-tag--light .t-tag__icon-close:hover,.t-tag--success.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--success.t-tag--outline .t-tag__icon-close:hover{color:var(--td-success-color-hover)}.t-tag--warning{background-color:var(--td-warning-color)}.t-tag--warning.t-tag--outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline{background-color:var(--td-warning-color-light)}.t-tag--warning.t-tag--light-outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline,.t-tag--warning.t-tag--outline{color:var(--td-warning-color)}.t-tag--warning.t-tag--light .t-tag__icon-close:hover,.t-tag--warning.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--warning.t-tag--outline .t-tag__icon-close:hover{color:var(--td-warning-color-hover)}.t-tag--danger{background-color:var(--td-error-color)}.t-tag--danger.t-tag--outline{border-color:var(--td-error-color)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline{background-color:var(--td-error-color-light)}.t-tag--danger.t-tag--light-outline{border-color:var(--td-error-color)}.t-tag--danger .t-tag__icon-close{fill:var(--td-error-color)}.t-tag--danger .t-tag__icon-close:hover{fill:var(--td-error-color-hover)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline,.t-tag--danger.t-tag--outline{color:var(--td-error-color)}.t-tag--danger.t-tag--light .t-tag__icon-close:hover,.t-tag--danger.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--danger.t-tag--outline .t-tag__icon-close:hover{color:var(--td-error-color-hover)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close{color:var(--td-font-white-2)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close:hover{color:var(--td-font-white-1)}.t-tag.t-tag--outline{background:transparent}.t-tag.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-xs)}.t-tag.t-size-s .t-icon{font-size:var(--td-font-body-small)}.t-tag.t-size-l{height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-tag.t-size-l,.t-tag.t-size-l .t-icon{font:var(--td-font-body-medium)}.t-tag.t-tag--round{border-radius:var(--td-radius-extraLarge)}.t-tag.t-tag--mark{border-radius:0 var(--td-radius-extraLarge) var(--td-radius-extraLarge) 0}.t-tag.t-tag--ellipsis .t-tag--text{word-wrap:normal;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-tag.t-tag--check:not(.t-tag--disabled){cursor:pointer;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--dark:not(.t-tag--checked):hover{background-color:var(--td-bg-color-component-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--primary.t-tag--dark.t-tag--checked:hover{background-color:var(--td-brand-color-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--outline:not(.t-tag--checked):hover{color:var(--td-brand-color-hover)}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--dark{background-color:var(--td-brand-color-disabled);cursor:not-allowed}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--outline{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-text-color-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-check-tag-group .t-tag:not(:last-child){margin-right:var(--td-comp-margin-s)}a .t-tag{cursor:pointer;transition:all .2s linear}a .t-tag:hover{background-color:var(--td-bg-color-component-hover);color:var(--td-brand-color)}a .t-tag:active{background-color:var(--td-bg-color-component-active);color:var(--td-brand-color-active)}@keyframes t-fade-in{0%{opacity:0}to{opacity:1}}@keyframes t-fade-out{0%{opacity:1}to{opacity:0}}@keyframes t-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.t-icon-loading{animation:t-spin 1s linear infinite}@keyframes t-zoom-out{0%{transform:scale(.2)}to{transform:scale(1)}}.t-tag-input{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-tag-input .t-tag{animation:t-fade-in .2s ease-in-out;margin:3px var(--td-comp-margin-xs) 3px 0;vertical-align:middle}.t-tag-input .t-tag-input__drag_wrapper+.t-tag-input__drag_wrapper{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input{height:fit-content;min-height:var(--td-comp-size-m);overflow:hidden;padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input .t-input__suffix-icon{right:var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-s{min-height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input.t-size-s .t-tag{margin:1px var(--td-comp-margin-xs) 1px 0}.t-tag-input .t-input.t-size-l{min-height:var(--td-comp-size-xl);padding:0 var(--td-comp-paddingLR-m) 0 var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-l .t-input__suffix-icon{right:var(--td-comp-margin-m)}.t-tag-input.t-is-empty .t-input__inner{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input--focused .t-input__inner:not(.t-input--soft-hidden),.t-tag-input:hover .t-input__inner:not(.t-input--soft-hidden){min-width:20px}.t-tag-input .t-tag-input__prefix{line-height:1;margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-tag-input__prefix>.t-icon{color:var(--td-text-color-placeholder)}.t-tag-input .t-input .t-input__prefix:not(:empty){margin-right:0}.t-tag-input.t-input--auto-width .t-input.t-input--focused{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input.t-input--auto-width .t-input__prefix{white-space:nowrap}.t-tag-input .t-input__prefix--scrollable{overflow-x:auto;overflow-y:hidden}@-moz-document url-prefix(){.t-tag-input .t-input__prefix--scrollable{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar{height:6px;width:6px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:horizontal:hover,.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-tag-input__suffix-clear{cursor:pointer}.t-tag-input--drag-sort .t-input__prefix .t-tag{cursor:move}.t-tag-input--break-line:not(.t-is-empty) .t-input{display:block}.t-tag-input--break-line:not(.t-is-empty) .t-input.t-input--prefix>.t-input__prefix{display:inline;text-align:left}.t-tag-input--break-line:not(.t-is-empty) .t-input .t-input__suffix-icon{bottom:0;position:absolute}.t-tag-input--break-line:not(.t-is-empty) .t-tag-input__prefix{vertical-align:middle}.t-tag-input__prefix{display:inline-block;margin-right:var(--td-comp-margin-s);width:max-content}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-input,.t-tag-input.t-input--auto-width:hover .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-size-l .t-input,.t-tag-input.t-input--auto-width:hover .t-size-l .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xs))}.t-tag-input.t-input--auto-width .t-input{padding-right:0}.t-tag-input--max-rows .t-input{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-m) - 2px));overflow-y:scroll}.t-tag-input--max-rows .t-input.t-size-s{max-height:calc(var(--max-rows, 1)*var(--td-comp-size-xs))}.t-tag-input--max-rows .t-input.t-size-l{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-xl) - 2px))}.t-select-input{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;vertical-align:middle;width:100%}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input{padding-right:var(--td-comp-paddingLR-xl)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input.t-size-l{padding-right:calc(var(--td-comp-paddingLR-xl) + var(--td-comp-paddingLR-s))}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input{padding-right:var(--td-comp-paddingLR-s)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input.t-size-l{padding-right:var(--td-comp-paddingLR-m)}.t-select-input--borderless .t-input{background:transparent;border:1px solid transparent;box-shadow:none;transition:all .2s linear}.t-select-input--borderless .t-input:hover:not(.t-input--focused){background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);border-radius:var(--td-radius-default)}.t-select-input--borderless .t-input--focused{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible input{display:inline-block}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible .t-input{background-color:var(--td-bg-color-container-hover)}.t-select-input--borderless.t-tag-input{background:transparent;border:0;box-shadow:none;transition:background-color .2s linear}.t-select-input--borderless.t-tag-input:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-default)}.t-checkbox-group{flex-wrap:wrap;gap:16px}.t-checkbox,.t-checkbox-group{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-checkbox{align-items:center;cursor:pointer;position:relative}.t-checkbox+.t-checkbox{margin-left:inherit}.t-checkbox__former{clip:rect(0 0 0 0);appearance:none;border:0;height:1px;margin:-1px;outline:0;overflow:hidden;padding:0;position:absolute;width:1px}.t-checkbox__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;display:inline-block;flex-shrink:0;height:16px;position:relative;vertical-align:middle;width:16px}.t-checkbox__input:after{box-sizing:border-box;content:"";opacity:0;position:absolute}.t-checkbox__label{display:inline-block;font:var(--td-font-body-medium);margin-left:8px;vertical-align:middle}.t-checkbox:hover .t-checkbox__input{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-checkbox.t-is-checked .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-checked .t-checkbox__input:after{background:transparent;border:2px solid var(--td-text-color-anti);border-left:0;border-radius:0 0 1px;border-top:0;height:9px;left:3px;opacity:1;top:6px;transform:rotate(45deg) scale(1) translate(-50%,-50%);width:5px}.t-checkbox.t-is-indeterminate .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-font-white-1);border:unset;height:4px;left:-1px;opacity:1;right:0;top:5px;transform:scale(.5);width:16px}.t-checkbox.t-is-disabled{cursor:not-allowed}.t-checkbox.t-is-disabled .t-checkbox__label{color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled .t-checkbox__input{background-color:var(--td-bg-color-component-disabled)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input,.t-checkbox.t-is-disabled:hover .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input:after{border-color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-text-color-disabled)}.t-checkbox:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-select__wrap{width:100%}.t-select__dropdown .t-popup__content{box-shadow:var(--td-shadow-2);margin:var(--td-comp-paddingTB-s) 0;max-height:300px;overflow-y:auto;overscroll-behavior:contain;padding:0}@-moz-document url-prefix(){.t-select__dropdown .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-select__dropdown .t-popup__content::-webkit-scrollbar{height:8px;width:8px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover,.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-select__dropdown-inner{min-height:var(--td-comp-size-m)}.t-select__dropdown-inner .t-select__list .t-select__list{padding:0}.t-select__dropdown-inner .t-select__list,.t-select__dropdown-inner .t-tree{padding:var(--td-pop-padding-m)}.t-select__dropdown-inner--size-s{min-height:var(--td-comp-size-xs)}.t-select__dropdown-inner--size-s .t-select__list,.t-select__dropdown-inner--size-s .t-tree{padding:var(--td-pop-padding-s)}.t-select__dropdown-inner--size-l{min-height:var(--td-comp-size-xl)}.t-select__dropdown-inner--size-l .t-select__list,.t-select__dropdown-inner--size-l .t-tree{padding:var(--td-pop-padding-l)}.t-select__list{list-style:none;margin:0;padding:0}.t-select__dropdown.t-popup{padding:0}.t-select__empty.t-size-s{line-height:var(--td-comp-size-xs)}.t-select__empty{color:var(--td-text-color-disabled);line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-s);text-align:center}.t-select__empty.t-size-l{line-height:var(--td-comp-size-xl)}.t-select__loading-tips.t-size-s{line-height:var(--td-comp-size-xs);min-height:var(--td-comp-size-xs)}.t-select__loading-tips{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);bottom:var(--td-comp-paddingTB-s);color:var(--td-text-color-disabled);display:flex;justify-content:center;left:0;line-height:var(--td-comp-size-m);min-height:var(--td-comp-size-m);position:fixed;right:0;top:var(--td-comp-paddingTB-s);z-index:1000}.t-select__loading-tips.t-size-l{line-height:var(--td-comp-size-xl);min-height:var(--td-comp-size-xl)}.t-select-option-group+.t-select-option-group{margin-top:var(--td-comp-margin-xs);padding-top:var(--td-comp-margin-xs)}.t-select-option-group__divider+.t-select-option-group__divider{position:relative}.t-select-option-group__divider+.t-select-option-group__divider:before{background-clip:content-box;background-color:var(--td-border-level-1-color);box-sizing:border-box;content:"";height:1px;left:0;padding:0 var(--td-comp-paddingLR-s);position:absolute;top:0;width:100%}.t-select-option-group__header,ul.t-select-option-group__header{word-wrap:normal;box-sizing:border-box;color:var(--td-text-color-placeholder);display:block;height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);overflow:hidden;padding:0 var(--td-comp-paddingLR-s);text-overflow:ellipsis;white-space:nowrap}.t-select-option-group__header.t-size-l{height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option-group__header.t-size-s{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);padding:0 var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-select-option span{word-wrap:normal;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover{background-color:var(--td-bg-color-container-hover)}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__label{color:inherit}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option .t-checkbox__label{word-wrap:normal;color:var(--td-text-color-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-select-option .t-checkbox{width:100%}.t-select-option.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-select-option.t-is-disabled,.t-select-option.t-is-disabled :active,.t-select-option.t-is-disabled:hover{background:var(--td-bg-color-specialcomponent)}.t-select-option.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option.t-size-m{font:var(--td-font-body-medium)}.t-select-option.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option.t-is-selected:not(.t-is-disabled){background-color:var(--td-brand-color-light);color:var(--td-brand-color);transition:all .2s linear}.t-select-option.t-is-selected:not(.t-is-disabled) .t-checkbox__label{color:var(--td-brand-color)}.t-select-option.t-is-selected:not(.t-is-disabled):hover{background-color:var(--td-brand-color-light)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected){background-color:var(--td-bg-color-container-hover)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option.t-select-option--hover .t-checkbox__label,.t-select-option.t-select-option__hover .t-checkbox__label{color:inherit}.t-select-option+.t-select-option{margin-top:var(--td-comp-paddingTB-xxs)}.t-select.t-select-input--borderless .t-select__right-icon{margin:0;position:relative}.t-select .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-select .t-fake-arrow--active{color:var(--td-brand-color)}.t-is-selected.t-select-option__hover{background-color:var(--td-brand-color-light-hover)}.t-is-selected.t-select-option__hover .t-checkbox__label{color:var(--td-brand-color)}.t-input-adornment{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-input-adornment__append .t-input,.t-input-adornment__append .t-textarea__inner,.t-input-adornment__prepend .t-input,.t-input-adornment__prepend .t-textarea__inner{background-color:transparent}.t-input-adornment__prepend{margin-right:-1px}.t-input-adornment__append,.t-input-adornment__prepend{background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-primary);word-break:keep-all}.t-input-adornment__append{margin-left:-1px}.t-input-adornment__text{align-items:center;border:1px solid var(--td-border-level-2-color);box-sizing:border-box;display:inline-flex;height:100%;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-input-adornment>:first-child,.t-input-adornment>:first-child .t-input,.t-input-adornment>:first-child .t-input-adornment__text,.t-input-adornment>:first-child .t-textarea__inner{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-adornment>:last-child,.t-input-adornment>:last-child .t-input,.t-input-adornment>:last-child .t-input-adornment__text,.t-input-adornment>:last-child .t-textarea__inner{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-adornment>:not(:last-child):hover{z-index:2}.t-input-adornment>:not(:first-child):not(:last-child) .t-input,.t-input-adornment>:not(:first-child):not(:last-child) .t-textarea__inner{border-radius:0}.t-pagination-mini{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-pagination-mini--outline .t-pagination-mini__prev{border-bottom-right-radius:0;border-top-right-radius:0;position:relative;z-index:1}.t-pagination-mini--outline .t-pagination-mini__current{border-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__current:hover{z-index:1}.t-pagination-mini--outline .t-pagination-mini__next{border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__next:hover{z-index:1}.t-pagination{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-medium);justify-content:flex-end;list-style:none;margin:0;padding:0;user-select:none;white-space:nowrap;width:100%}.t-pagination.t-is-disabled{color:var(--td-text-color-disabled)}.t-pagination__total{flex:1;font:var(--td-font-body-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-pagination .t-select__wrap{width:auto}.t-pagination__select{font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-l)}.t-pagination__btn,.t-pagination__select{color:var(--td-text-color-secondary);flex-shrink:0;height:var(--td-comp-size-m)}.t-pagination__btn{align-items:center;border-radius:var(--td-radius-default);cursor:pointer;display:inline-flex;font:var(--td-font-body-large);justify-content:center;line-height:var(--td-comp-size-m);width:var(--td-comp-size-m)}.t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination__btn.t-is-disabled,.t-pagination__btn.t-is-disabled:active,.t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination__btn.t-is-disabled{cursor:not-allowed}.t-pagination__btn-prev{margin-right:var(--td-comp-margin-s)}.t-pagination__btn-next{margin-left:var(--td-comp-margin-s)}.t-pagination__btn+.t-pagination__select{margin-right:0}.t-pagination__pager{display:inline-flex;flex-shrink:0;list-style:none;margin:0;padding:0;vertical-align:middle}.t-pagination__pager li:not(:last-child){margin-right:var(--td-comp-margin-s)}.t-pagination__number{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:inline-block;font-size:var(--td-font-body-medium);height:var(--td-comp-size-m);line-height:calc(var(--td-comp-size-m) - 2px);min-width:var(--td-comp-size-m);padding-left:var(--td-comp-paddingLR-xs);padding-right:var(--td-comp-paddingLR-xs);text-align:center}.t-pagination__number:hover{border-color:var(--td-brand-color-hover);color:var(--td-brand-color-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number.t-is-current,.t-pagination__number:active{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-pagination__number.t-is-current.t-is-disabled,.t-pagination__number.t-is-current.t-is-disabled:active,.t-pagination__number.t-is-current.t-is-disabled:hover{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination__number.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:auto}.t-pagination__number.t-is-disabled:active,.t-pagination__number.t-is-disabled:hover{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled)}.t-pagination__number--more{border:0;padding:0}.t-pagination__number--more:hover{background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number--more:active{background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination__number--more.t-is-disabled,.t-pagination__number--more.t-is-disabled:active,.t-pagination__number--more.t-is-disabled:hover{background:none}.t-pagination__number--more .t-icon-more{color:var(--td-text-color-disabled);transform:rotate(90deg)}.t-pagination__jump{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:inline-flex;flex-shrink:0;font-size:var(--td-font-body-medium);gap:var(--td-comp-margin-s);height:var(--td-comp-size-m);margin-left:var(--td-comp-margin-s);padding-left:var(--td-comp-margin-s)}.t-pagination .t-input-adornment__append{background-color:transparent;border:none;color:var(--td-text-color-secondary);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-adornment__append .t-input-adornment__text{border:none}.t-pagination .t-input-number{width:56px}.t-pagination .t-input-number .t-input{border-radius:var(--td-radius-default);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-number .t-input__inner{text-align:center}.t-pagination.t-size-s{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__jump{height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-input-adornment__append{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-input-number{width:48px}.t-pagination.t-size-s .t-input-number .t-input{height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-pagination__total{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__select{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__number{border:0;font-size:var(--td-font-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);min-width:var(--td-comp-size-xs);padding-left:var(--td-comp-paddingLR-xxs);padding-right:var(--td-comp-paddingLR-xxs)}.t-pagination.t-size-s .t-pagination__number:hover:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__number:active:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination.t-size-s .t-pagination__number.t-is-disabled{background:none;color:var(--td-text-color-disabled)}.t-pagination.t-size-s .t-pagination__number.t-is-current.t-is-disabled{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination.t-size-s .t-pagination__btn{background:none;border:0;height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination.t-size-s .t-pagination__btn.t-is-disabled,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:active,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination-ie .t-select .t-input__inner{min-width:54px}.default-step-icon{align-items:center;border-radius:var(--td-radius-circle);display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;width:100%}.t-steps .t-steps-item{display:flex;flex:1;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;vertical-align:top}.t-steps .t-steps-item:last-child{flex:none}.t-steps .t-steps-item__inner{display:flex;position:relative;width:fit-content}.t-steps .t-steps-item__inner.t-steps-item--clickable{cursor:pointer}.t-steps .t-steps-item--finish .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__icon--number{border-color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__title{color:var(--td-text-color-primary);font-weight:400}.t-steps .t-steps-item--finish .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--process .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--process .t-steps-item__icon--number{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__title{color:var(--td-brand-color);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--error .t-steps-item__icon .t-icon{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__icon--number{border-color:var(--td-error-color);color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__title{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item__icon{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-s);vertical-align:top}.t-steps .t-steps-item__icon--number{border:1px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);color:var(--td-text-color-placeholder)}.t-steps .t-steps-item__icon--finish,.t-steps .t-steps-item__icon--number{align-items:center;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon--finish{border:1px solid var(--td-brand-color);border-radius:var(--td-radius-circle)}.t-steps .t-steps-item__icon--error{align-items:center;border:1px solid var(--td-error-color);border-radius:var(--td-radius-circle);color:#000;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps .t-steps-item__title{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-large);line-height:24px;padding-right:var(--td-comp-margin-s);position:relative}.t-steps .t-steps-item__description{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);line-height:22px;margin-bottom:var(--td-comp-margin-xs)}.t-steps--line-separator .t-steps-item:after,.t-steps--line-separator .t-steps-item:before,.t-steps--line-separator .t-steps-item__title:after{border-style:solid}.t-steps--dashed-separator .t-steps-item:after,.t-steps--dashed-separator .t-steps-item:before,.t-steps--dashed-separator .t-steps-item__title:after{border-style:dashed}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);width:fit-content}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon__number{height:22px;width:22px}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item--finish:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child) .t-steps-item__title:after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--process:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item{overflow:visible}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);padding-right:0}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__inner{align-items:center;display:flex;flex-direction:column}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;width:8px}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__content{text-align:center;width:140px}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--process:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--vertical{flex-direction:column;width:fit-content}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--positive .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--positive .t-steps-item:not(:last-child):before{border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;border-top:0;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--default-anchor .t-steps-item__content{margin-left:0}.t-steps--vertical.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;top:8px;width:8px}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{margin-top:var(--td-comp-margin-xs);transform:rotate(0)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--reverse .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--reverse .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:last-child:before{display:none}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-sticky-tool{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);box-shadow:var(--td-shadow-3);box-sizing:border-box;opacity:1;position:fixed}.t-sticky-tool-popup-content{box-shadow:var(--td-shadow-3)}.t-sticky-tool .t-sticky-item,.t-sticky-tool-popup-content{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-small)}.t-sticky-tool .t-sticky-item{margin:var(--td-comp-margin-xs);opacity:1;position:relative;text-align:center;transition:background-color .2s linear}.t-sticky-tool .t-sticky-item:hover{background-color:var(--td-bg-color-container-hover);cursor:pointer}.t-sticky-tool .t-sticky-item--normal{height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-sticky-tool .t-sticky-item--normal .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s) var(--td-comp-margin-l) 0 var(--td-comp-margin-l);width:24px}.t-sticky-tool .t-sticky-item--compact{height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-sticky-tool .t-sticky-item--compact .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s);width:24px}.t-sticky-tool .t-sticky-item--square{border-radius:var(--td-radius-default)}.t-sticky-tool .t-sticky-item--round{border-radius:var(--td-radius-circle)}.t-sticky-tool .t-sticky-item .t-sticky-item__label{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);margin-top:var(--td-comp-margin-xxs);text-align:center;width:100%}.t-sticky-tool--square{border-radius:var(--td-radius-medium)}.t-sticky-tool--round{border-radius:var(--td-radius-round)}.t-back-top{align-items:center;background-color:transparent;border:.5px solid transparent;box-shadow:var(--td-shadow-3);color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;flex-direction:column;justify-content:center;opacity:0;outline:none;overflow:hidden;position:fixed;touch-action:manipulation;transition:background .2s linear,border .2s linear,color .2s linear,opacity .2s linear,visibility .2s linear;vertical-align:middle;visibility:hidden;white-space:nowrap;z-index:300}.t-back-top__text{font:var(--td-font-body-small);margin-top:var(--td-comp-margin-xxs);text-align:center}.t-back-top__icon{font-size:var(--td-font-headline-small)}.t-back-top.t-size-m .t-back-top__icon{margin-top:2px}.t-back-top--show{opacity:1;visibility:visible}.t-back-top--theme-light{background-color:var(--td-bg-color-container);border-color:var(--td-component-border)}.t-back-top--theme-light:hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover)}.t-back-top--theme-light .t-back-top__text{color:var(--td-text-color-secondary)}.t-back-top--theme-light .t-back-top__icon{color:var(--td-text-color-primary)}.t-back-top--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-back-top--theme-primary:hover{background-color:var(--td-brand-color-hover);border-color:var(--td-brand-color-hover)}.t-back-top--theme-primary .t-back-top__icon,.t-back-top--theme-primary .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top--theme-dark{background-color:rgba(0,0,0,.9);border-color:rgba(0,0,0,.9)}.t-back-top--theme-dark:hover{background-color:rgba(0,0,0,.6);border-color:rgba(0,0,0,.6)}.t-back-top--theme-dark .t-back-top__icon,.t-back-top--theme-dark .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top.t-size-s{height:var(--td-comp-size-xxl);width:var(--td-comp-size-xxl)}.t-back-top.t-size-s .t-back-top__text{display:none}.t-back-top.t-size-m{height:var(--td-comp-size-xxxxl);width:var(--td-comp-size-xxxxl)}.t-back-top.t-size-m .t-back-top__text{display:block}.t-back-top--circle{border-radius:var(--td-radius-circle)}.t-back-top--square{border-radius:var(--td-radius-medium)}.t-select-option__highlight-item .t-is-highlight{color:var(--td-brand-color)}.t-auto-complete{width:100%}.t-auto-complete .t-input__suffix-clear{display:none}.t-auto-complete:hover .t-input__suffix-clear{display:inline-block}.t-auto-complete__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);text-align:center}.t-cascader .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-cascader .t-fake-arrow--active{color:var(--td-brand-color)}.t-cascader__popup .t-popup__content{border:.5px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2);overflow:hidden;padding:0}.t-cascader__panel{display:flex;height:100%}.t-cascader__panel.t-cascader--normal{height:200px}.t-cascader__panel.t-cascader--multiple{height:280px}.t-cascader__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);margin:var(--td-pop-padding-m);padding-left:0;text-align:center;width:100%}.t-cascader__panel--empty:hover{background:none;cursor:default}.t-cascader__menu{background:var(--td-bg-color-container);box-sizing:content-box;margin:0;overflow:auto;padding:var(--td-pop-padding-m);width:148px}.t-cascader__menu.t-size-l{padding:var(--td-pop-padding-l)}.t-cascader__menu.t-size-s{padding:var(--td-pop-padding-s)}.t-cascader__menu--segment{border-right:1px solid var(--td-component-stroke)}.t-cascader__menu--filter{min-width:148px;width:auto}.t-cascader__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);list-style:none;margin-top:var(--td-comp-margin-xxs);padding:0 var(--td-comp-paddingLR-s);position:relative;transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-cascader__item.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s)}.t-cascader__item.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-cascader__item.t-is-disabled{background-color:transparent;color:var(--td-text-color-disabled);cursor:not-allowed}.t-cascader__item-icon.t-icon{background:transparent;color:var(--td-text-color-placeholder);font-size:16px;height:100%;margin:0 8px;position:absolute;right:0;top:0}.t-cascader__item-icon.t-loading{color:var(--td-text-color-brand);display:flex}.t-cascader__item.t-is-expanded{background:var(--td-brand-color-light)}.t-cascader__item.t-is-expanded,.t-cascader__item.t-is-expanded .t-icon-chevron-right{color:var(--td-text-color-brand)}.t-cascader__item.t-is-expanded:hover{cursor:pointer}.t-cascader__item:first-child{margin-top:0}.t-cascader__item .t-checkbox{max-width:100%}.t-cascader__item .t-checkbox .t-checkbox__input{flex-shrink:0}.t-cascader__item .t-checkbox .t-checkbox__label{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item .t-checkbox .t-checkbox__label .t-cascader__item__label--filter{color:var(--td-text-color-brand)}.t-cascader__item--with-icon .t-cascader__item-label,.t-cascader__item--with-icon .t-checkbox__label{margin-right:16px}.t-cascader__item--leaf .t-checkbox{width:100%}.t-cascader__item-label{display:block;padding:0;position:relative;white-space:nowrap}.t-cascader__item-label--ellipsis{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item-label--filter{color:var(--td-text-color-brand)}.t-cascader__item:hover:not(.t-is-expanded):not(.t-is-disabled){background:var(--td-bg-color-container-hover);cursor:pointer}.t-cascader__item.t-is-selected{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-cascader__item.t-is-selected .t-checkbox__label{color:var(--td-brand-color)}.range-input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.range-input-disabled.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.range-input-disabled.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled>.t-range-input__prefix .t-icon,.range-input-disabled.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-direction:column;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);gap:4px;height:var(--td-comp-size-m);list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:relative;transition:all .2s cubic-bezier(.38,0,.24,1);width:100%}.t-range-input:hover{border-color:var(--td-brand-color)}.t-range-input--borderless:not(.t-is-focused){border-color:transparent;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-range-input--borderless:not(.t-is-focused):hover{border-color:var(--td-component-border);cursor:pointer}.t-range-input--borderless:not(.t-is-focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-range-input.t-is-focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-range-input.t-is-success{border-color:var(--td-success-color)}.t-range-input.t-is-success.t-range-input--focused,.t-range-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-range-input.t-is-success>.t-range-input__extra{color:var(--td-success-color)}.t-range-input.t-is-success>.t-range-input__tips{color:var(--td-success-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-warning{border-color:var(--td-warning-color)}.t-range-input.t-is-warning.t-range-input--focused,.t-range-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-range-input.t-is-warning>.t-range-input__extra{color:var(--td-warning-color)}.t-range-input.t-is-warning>.t-range-input__tips{color:var(--td-warning-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-error{border-color:var(--td-error-color)}.t-range-input.t-is-error.t-range-input--focused,.t-range-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-range-input.t-is-error>.t-range-input__extra{color:var(--td-error-color)}.t-range-input.t-is-error>.t-range-input__tips{color:var(--td-error-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-range-input.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.t-range-input.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled>.t-range-input__prefix .t-icon,.t-range-input.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input.t-range-input--prefix .t-range-input__prefix,.t-range-input.t-range-input--suffix .t-range-input__suffix{align-items:center;display:flex;font-size:var(--td-font-size-body-medium);height:100%;text-align:center}.t-range-input.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding-bottom:var(--td-comp-paddingTB-xs);padding-top:var(--td-comp-paddingTB-xs)}.t-range-input.t-size-l .t-input{padding:0 var(--td-comp-margin-s)}.t-range-input.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-margin-xs)}.t-range-input__inner{align-items:center;display:flex;gap:var(--td-comp-margin-s);height:100%}.t-range-input__inner .t-input__wrap{border-radius:var(--td-radius-small);height:100%}.t-range-input__inner>.t-range-input__prefix{flex-shrink:0}.t-range-input__inner .t-input{border:0;border-radius:var(--td-radius-small);box-shadow:none;font-size:inherit;height:100%;padding:0 var(--td-comp-paddingLR-xs)}.t-range-input__inner .t-input:hover{background-color:var(--td-bg-color-container-hover)}.t-range-input__inner .t-input__inner{height:100%;line-height:1;width:100%}.t-range-input__inner .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-range-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-range-input__status{position:absolute;right:calc(0px - var(--td-comp-margin-xxxl));top:0}.t-range-input.t-range-input--suffix .t-input__clear{opacity:0;transition:all .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-range-input.t-range-input--suffix:hover .t-input__clear{opacity:1;visibility:visible}.t-range-input .t-range-input__suffix-clear{cursor:pointer}.t-range-input__prefix>.t-icon,.t-range-input__suffix>.t-icon{color:var(--td-text-color-placeholder);flex-shrink:0;font-size:16px;transition:color .2s linear}.t-range-input-popup{width:100%}.t-range-input-popup--visible .t-range-input{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-range-input-popup--visible .t-range-input .t-icon-calendar,.t-range-input-popup--visible .t-range-input .t-icon-time{color:var(--td-brand-color)}.t-range-input-popup--visible .t-range-input .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-date-picker,.t-date-range-picker{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-date-picker__header-controller-month-popup>.t-popup__content,.t-date-picker__header-controller-year-popup>.t-popup__content{max-height:160px}.t-date-picker__panel-container>.t-popup__content,.t-date-range-picker__panel-container>.t-popup__content{min-width:280px;padding:0}.t-date-picker__panel,.t-date-range-picker__panel{display:flex;flex-direction:column}.t-date-picker__panel--direction-row,.t-date-range-picker__panel--direction-row{flex-direction:row}.t-date-picker__panel .t-time-picker__panel,.t-date-range-picker__panel .t-time-picker__panel{width:216px}.t-date-picker__panel .t-time-picker__panel-section-body,.t-date-range-picker__panel .t-time-picker__panel-section-body{padding:0}.t-date-picker__panel .t-time-picker__panel-body,.t-date-range-picker__panel .t-time-picker__panel-body{margin:0}.t-date-picker__panel-content,.t-date-range-picker__panel-content,.t-date-range-picker__panel-content-wrapper{display:flex}.t-date-picker__header{align-items:center;display:flex;gap:var(--td-comp-margin-m);justify-content:space-between;width:100%}.t-date-picker__header-controller{display:inline-flex;gap:var(--td-comp-margin-s)}.t-date-picker__header-controller .t-date-picker__header-controller-month{display:flex;width:80px}.t-date-picker__header-controller .t-date-picker__header-controller-year{display:flex;width:78px}.t-date-picker__table table{border-collapse:collapse;width:100%}.t-date-picker__table table th{color:var(--td-text-color-secondary);font-weight:400;text-align:center}.t-date-picker__table table td.t-date-picker__cell{font-weight:500;text-align:center}.t-date-picker__table table td.t-date-picker__cell,.t-date-picker__table table th,.t-date-picker__table table th.t-date-picker__table-header-cell{border:0;line-height:var(--td-line-height-body-medium);padding:0}.t-date-picker__table table thead:after,.t-date-picker__table table thead:before{color:transparent;content:"-";display:block;line-height:var(--td-comp-margin-xs)}.t-date-picker__table-week-row{cursor:pointer;position:sticky}.t-date-picker__table-week-row .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__table-week-row .t-date-picker__cell:hover .t-date-picker__cell-inner{background:none;box-shadow:none}.t-date-picker__table-week-row:after{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:var(--td-comp-margin-xxxl);pointer-events:none;position:absolute;right:0;top:calc(var(--td-comp-margin-xs) - 1px);transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;z-index:10}.t-date-picker__table-week-row:hover .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row:hover:after{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__table-week-row--active:after{background-color:var(--td-brand-color);opacity:1;z-index:0}.t-date-picker__table-week-row--active .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row--active .t-date-picker__cell .t-date-picker__cell-inner{background:transparent;color:var(--td-text-color-anti)}.t-date-picker__table-week-row--range:after{background-color:var(--td-brand-color-light);opacity:1;z-index:0}.t-date-picker__table-week-row--range .t-date-picker__cell .t-date-picker__cell-inner{background:transparent}.t-date-picker__footer{align-items:flex-start;display:flex;gap:var(--td-comp-margin-s);justify-content:space-between;padding:var(--td-pop-padding-xl)}.t-date-picker__footer--bottom{border-top:1px solid var(--td-component-stroke)}.t-date-picker__footer--top{border-bottom:1px solid var(--td-component-stroke)}.t-date-picker__footer--left{border-right:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--left .t-date-picker__presets{flex-direction:column}.t-date-picker__footer--right{border-left:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--right .t-date-picker__presets{flex-direction:column}.t-date-picker__presets{display:flex;gap:var(--td-comp-margin-s);min-width:var(--td-comp-size-xl);white-space:nowrap}.t-date-picker__presets .t-button{cursor:pointer}.t-date-picker__presets a{color:var(--td-brand-color)}.t-date-picker__presets a:hover{color:var(--td-brand-color-hover)}.t-date-picker__panel-time,.t-date-range-picker__panel-time{border-left:1px solid var(--td-component-stroke);display:flex;flex-direction:column;gap:calc(var(--td-comp-margin-m)/2);padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs))}.t-date-picker__panel-time-viewer,.t-date-range-picker__panel-time-viewer{align-items:center;color:var(--td-text-color-primary);display:flex;height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-line-height-body-medium)}.t-date-picker__panel-time .t-time-picker__panel-body,.t-date-range-picker__panel-time .t-time-picker__panel-body{margin:0}.t-date-picker__panel-date,.t-date-picker__panel-month,.t-date-picker__panel-quarter,.t-date-picker__panel-week,.t-date-picker__panel-year{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--td-comp-margin-m);padding:var(--td-pop-padding-xl);width:280px}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1;z-index:5}.t-date-picker__panel-month .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before,.t-date-picker__panel-year .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl))}.t-date-picker__panel-month .t-date-picker__header-controller-year,.t-date-picker__panel-quarter .t-date-picker__header-controller-year,.t-date-picker__panel-year .t-date-picker__header-controller-year{display:flex;width:130px}.t-date-picker__panel-month .t-date-picker__table table tbody,.t-date-picker__panel-quarter .t-date-picker__table table tbody,.t-date-picker__panel-year .t-date-picker__table table tbody{display:flex;flex-direction:column;gap:var(--td-comp-margin-m);width:100%}.t-date-picker__panel-month .t-date-picker__table table tbody tr,.t-date-picker__panel-quarter .t-date-picker__table table tbody tr,.t-date-picker__panel-year .t-date-picker__table table tbody tr{display:flex;justify-content:space-between}.t-date-picker__panel-month .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-quarter .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-year .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{left:calc(0px - var(--td-comp-size-xxxl))}.t-date-picker__panel-month .t-date-picker__cell:first-child,.t-date-picker__panel-quarter .t-date-picker__cell:first-child,.t-date-picker__panel-year .t-date-picker__cell:first-child{text-align:left}.t-date-picker__panel-month .t-date-picker__cell:nth-child(3),.t-date-picker__panel-quarter .t-date-picker__cell:nth-child(3),.t-date-picker__panel-year .t-date-picker__cell:nth-child(3){text-align:right}.t-date-picker__panel-month .t-date-picker__cell-inner,.t-date-picker__panel-quarter .t-date-picker__cell-inner,.t-date-picker__panel-year .t-date-picker__cell-inner{width:var(--td-comp-size-xxl)}.t-date-picker__cell{cursor:pointer;padding:0;position:relative}.t-date-picker__cell:after,.t-date-picker__cell:before{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:-5%;opacity:0;position:absolute;right:-5%;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);z-index:1}.t-date-picker__cell:hover .t-date-picker__cell-inner{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__cell-inner{align-items:center;border-radius:var(--td-radius-default);display:inline-flex;height:var(--td-comp-size-xs);justify-content:center;margin:calc(var(--td-comp-margin-xs) - 1px);position:relative;transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;width:var(--td-comp-size-xs);z-index:5}.t-date-picker__cell--now .t-date-picker__cell-inner{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-date-picker__cell--highlight:before,.t-date-picker__cell--hover-highlight:after{background-color:var(--td-brand-color-light);opacity:1}.t-date-picker__cell--highlight.t-date-picker__cell--hover-highlight:after{background-color:rgba(0,0,0,.06);opacity:1}.t-date-picker__cell--additional:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover);box-shadow:none}.t-date-picker__cell--additional .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__cell--active .t-date-picker__cell-inner{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-date-picker__cell--active-start:before{border-bottom-left-radius:var(--td-radius-default);border-top-left-radius:var(--td-radius-default);left:calc(var(--td-comp-margin-xs)*2 - 2px);opacity:1}.t-date-picker__cell--active-start:hover:before{left:-5%}.t-date-picker__cell--active-end:before{border-bottom-right-radius:var(--td-radius-default);border-top-right-radius:var(--td-radius-default);opacity:1;right:calc(var(--td-comp-margin-xs)*2 - 2px)}.t-date-picker__cell--active-end:hover:before{right:-5%}.t-date-picker__cell--disabled:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);box-shadow:none}.t-date-picker__cell--disabled .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{background-color:var(--td-bg-color-component-disabled);border-radius:var(--td-radius-default);left:calc(0px - var(--td-comp-size-l));opacity:1}.t-date-picker__input--placeholder input{color:var(--td-text-color-placeholder)}.t-form{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;padding:0}.t-form,.t-form:not(.t-form-inline) .t-form__item:last-of-type{margin:0}.t-form__item{margin-bottom:var(--td-comp-margin-xxl)}.t-form__item.t-form__item-with-help{margin-bottom:var(--td-comp-margin-xs)}.t-form__item.t-form__item-with-extra{margin-bottom:var(--td-comp-margin-xxl)}.t-form__label{box-sizing:border-box;color:var(--td-text-color-primary);float:left;line-height:var(--td-comp-margin-xxxl);padding-right:var(--td-comp-paddingLR-xl);vertical-align:middle;white-space:nowrap}.t-form__label--top{float:none;min-height:var(--td-comp-margin-xxxl)}.t-form__label--left{text-align:left}.t-form__label--right{text-align:right}.t-form__label--required:not(.t-form__label--required-right) label:before{color:var(--td-error-color);content:"*";display:inline-block;line-height:var(--td-line-height-body-medium);margin-right:var(--td-comp-margin-xs)}.t-form__label--required-right label:after{color:var(--td-error-color);content:"*";display:inline-block;line-height:var(--td-line-height-body-medium);margin-left:var(--td-comp-margin-xs)}.t-form__label--colon label:after{content:":";margin:0 var(--td-comp-margin-xxs);position:relative}.t-form__controls{display:flow-root;min-height:var(--td-comp-margin-xxxl);position:relative}.t-form__controls-content{align-items:center;display:flex;min-height:var(--td-comp-margin-xxxl)}.t-form__controls .t-form__item{margin-bottom:0;margin-right:var(--td-comp-margin-xxl)}.t-form__controls.t-form--success-border.t-is-success .t-input__extra,.t-form__controls.t-is-success .t-form__status .t-icon,.t-form__controls.t-is-success .t-input__extra{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner{border-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-form__status .t-icon{color:var(--td-success-color)}.t-form__status{display:flex;margin:0 var(--td-comp-margin-s)}.t-form__status>.t-icon{font-size:var(--td-comp-size-xxxs)}.t-form__status-without-icon{height:25px;width:25px}.t-form__status button{width:var(--td-comp-size-m)}.t-form__status button+button{margin-left:var(--td-comp-margin-s)}.t-form-inline{display:flex;flex-wrap:wrap;row-gap:var(--td-comp-margin-l)}.t-form-inline .t-form__item{display:inline-block;margin:0;margin-right:var(--td-comp-margin-xxl);min-width:200px}.t-input__extra,.t-input__help{color:var(--td-text-color-placeholder);font:var(--td-font-body-small);height:auto;margin:0;min-height:var(--td-line-height-body-small);width:100%}.t-input__extra{bottom:calc(0px - var(--td-line-height-body-small));max-width:100%;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap}.t-is-warning .t-input__extra{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader,.t-is-warning .t-form__controls-content .t-input,.t-is-warning .t-form__controls-content .t-radio-button,.t-is-warning .t-form__controls-content .t-range-input,.t-is-warning .t-form__controls-content .t-select,.t-is-warning .t-form__controls-content .t-textarea__inner{border-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader--focused,.t-is-warning .t-form__controls-content .t-input--focused,.t-is-warning .t-form__controls-content .t-radio-button--focused,.t-is-warning .t-form__controls-content .t-range-input--focused,.t-is-warning .t-form__controls-content .t-select--focused,.t-is-warning .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-warning .t-form__controls-content .t-cascader .t-icon,.t-is-warning .t-form__controls-content .t-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-input .t-icon,.t-is-warning .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-warning .t-form__controls-content .t-radio-button .t-icon,.t-is-warning .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-range-input .t-icon,.t-is-warning .t-form__controls-content .t-select .t-fake-arrow,.t-is-warning .t-form__controls-content .t-select .t-icon,.t-is-warning .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-warning .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-warning .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader.t-is-active,.t-is-warning .t-form__controls-content .t-select.t-is-active,.t-is-warning .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-form__status .t-icon{color:var(--td-warning-color)}.t-is-error .t-input__extra{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader,.t-is-error .t-form__controls-content .t-input,.t-is-error .t-form__controls-content .t-radio-button,.t-is-error .t-form__controls-content .t-range-input,.t-is-error .t-form__controls-content .t-select,.t-is-error .t-form__controls-content .t-textarea__inner{border-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader--focused,.t-is-error .t-form__controls-content .t-input--focused,.t-is-error .t-form__controls-content .t-radio-button--focused,.t-is-error .t-form__controls-content .t-range-input--focused,.t-is-error .t-form__controls-content .t-select--focused,.t-is-error .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-error .t-form__controls-content .t-cascader .t-icon,.t-is-error .t-form__controls-content .t-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-input .t-icon,.t-is-error .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-error .t-form__controls-content .t-radio-button .t-icon,.t-is-error .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-range-input .t-icon,.t-is-error .t-form__controls-content .t-select .t-fake-arrow,.t-is-error .t-form__controls-content .t-select .t-icon,.t-is-error .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-error .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-error .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader.t-is-active,.t-is-error .t-form__controls-content .t-select.t-is-active,.t-is-error .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-form__status .t-icon{color:var(--td-error-color)}.t-radio-group{align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-wrap:wrap;font:var(--td-font-body-medium);list-style:none;margin:0;max-width:100%;padding:0;width:fit-content}@-moz-document url-prefix(){.t-radio-group{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-radio-group::-webkit-scrollbar{height:4px;width:4px}.t-radio-group::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:7px}.t-radio-group::-webkit-scrollbar-thumb:horizontal:hover,.t-radio-group::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-radio-group .t-radio{margin-right:var(--td-comp-margin-xxl)}.t-radio-group.t-radio-group__outline{flex-wrap:wrap;row-gap:var(--td-comp-margin-xs)}.t-radio-group.t-radio-group__outline.t-size-s .t-radio-button{height:var(--td-comp-size-xs)}.t-radio-group.t-radio-group__outline.t-size-m .t-radio-button{height:var(--td-comp-size-m)}.t-radio-group.t-radio-group__outline.t-size-l .t-radio-button{height:var(--td-comp-size-xl)}.t-radio-group.t-radio-group__outline .t-radio-button:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-radio-group.t-radio-group__outline .t-radio-button:only-child{border-radius:var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-checked{color:var(--td-brand-color)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-disabled.t-is-checked{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color-disabled);color:var(--td-brand-color-disabled)}.t-radio-group.t-radio-group--filled{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);border-radius:var(--td-radius-default);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);position:relative}.t-radio-group.t-radio-group--filled .t-radio-group__bg-block{background-color:var(--td-bg-color-container-select);border-radius:var(--td-radius-small);height:calc(100% - 4px);left:2px;position:absolute;top:2px;transition:all .2s cubic-bezier(.38,0,.24,1);width:0}.t-radio-group.t-radio-group--filled .t-radio-button{background-color:transparent;border:0;color:var(--td-text-color-secondary)}.t-radio-group.t-radio-group--filled .t-radio-button:hover{color:var(--td-text-color-primary)}.t-radio-group.t-radio-group--filled .t-radio-button:before{background-color:var(--td-component-border);content:"";height:calc(100% - 16px);left:0;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);width:1px}.t-radio-group.t-radio-group--filled .t-radio-button:first-child:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked{border:0;color:var(--td-text-color-primary);position:relative;transition:color .2s linear;z-index:1}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked+label:before,.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled{background-color:transparent}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-bg-color-component-disabled)}.t-radio-group.t-radio-group--primary-filled .t-radio-group__bg-block{background-color:var(--td-brand-color)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-checked,.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-anti)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-brand-color-disabled)}.t-radio-group.t-size-s .t-radio-button{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - var(--td-comp-paddingTB-xxs)*2);padding:0 var(--td-comp-paddingLR-s)}.t-radio-group.t-size-s .t-radio-button:before{height:calc(100% - 16px)}.t-radio-group.t-size-m .t-radio-button{font:var(--td-font-body-medium);height:calc(var(--td-comp-size-m) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l)}.t-radio-group.t-size-m .t-radio-button:before{height:calc(100% - 20px)}.t-radio-group.t-size-l .t-radio-button{font:var(--td-font-body-large);height:calc(var(--td-comp-size-xl) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xl)}.t-radio-group.t-size-l .t-radio-button:before{height:calc(100% - 24px)}.t-radio-group .t-radio-button{align-items:center;border:1px solid;border-color:var(--td-border-level-2-color);border-right:0;box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;position:relative;transition:color .2s cubic-bezier(0,0,.15,1);white-space:nowrap}.t-radio-group .t-radio-button:first-child{border-radius:var(--td-radius-small) 0 0 var(--td-radius-small)}.t-radio-group .t-radio-button:last-child{border-radius:0 var(--td-radius-small) var(--td-radius-small) 0;border-right:1px solid;border-right-color:var(--td-border-level-2-color)}.t-radio-group .t-radio-button__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:0;list-style:none;margin:0;opacity:0;padding:0;width:0}.t-radio-group .t-radio-button:hover{color:var(--td-brand-color)}.t-radio-group .t-radio-button.t-is-checked{border-right:1px solid;border-color:var(--td-brand-color);transition:border-color .2s cubic-bezier(0,0,.15,1)}.t-radio-group .t-radio-button.t-is-checked+.t-radio-button{border-left:0}.t-radio-group .t-radio-button.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-radio-group .t-radio-button.t-is-disabled:hover{border-color:var(--td-border-level-2-color);color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled:hover:after{width:0}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked:after{width:0}.t-radio{cursor:pointer;display:inline-block;position:relative}.t-radio,.t-radio__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-radio__former{opacity:0;position:absolute}.t-radio__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-circle);display:inline-block;height:16px;position:relative;transition:border .2s cubic-bezier(0,0,.15,1);vertical-align:middle;width:16px}.t-radio__input:after{background-color:var(--td-brand-color);border-radius:var(--td-radius-circle);content:"";height:16px;left:50%;margin-left:-8px;margin-top:-8px;opacity:0;position:absolute;top:50%;transform:scale(.5);transition:all .2s cubic-bezier(0,0,.15,1);width:16px}.t-radio__label{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);vertical-align:middle;white-space:nowrap}.t-radio.t-is-checked .t-radio__input,.t-radio:hover .t-radio__input{border-color:var(--td-brand-color)}.t-radio.t-is-checked .t-radio__input:after{opacity:1}.t-radio.t-is-disabled{cursor:not-allowed}.t-radio.t-is-disabled .t-radio__label{color:var(--td-text-color-disabled)}.t-radio.t-is-disabled .t-radio__input{background-color:var(--td-bg-color-component-disabled)}.t-radio.t-is-disabled.t-is-checked .t-radio__input,.t-radio.t-is-disabled:hover .t-radio__input{border-color:var(--td-border-level-2-color)}.t-radio.t-is-disabled.t-is-checked .t-radio__input:after{background-color:var(--td-text-color-disabled)}.t-radio:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-slider__input-container{align-items:center;display:flex;margin-left:var(--td-comp-margin-xxl)}.t-slider__input-container.is-vertical{margin-left:0;padding-top:var(--td-comp-paddingTB-l)}.t-slider__input-container .t-slider__center-line{background:rgba(0,0,0,.9);height:1px;margin:0 var(--td-comp-margin-s);width:var(--td-size-4)}.t-slider{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:calc(var(--td-comp-paddingTB-xs)*2 + var(--td-size-2));list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) 0;position:relative;width:100%}.t-slider__container{align-items:center;display:flex;justify-content:center;width:100%}.t-slider__container.is-vertical{flex-direction:column;height:100%}.t-slider__rail{background-color:var(--td-bg-color-secondarycomponent);border-radius:var(--td-radius-round);height:var(--td-size-2);position:absolute;transition:.2s linear;width:100%}.t-slider__rail:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-slider__track{background-color:var(--td-brand-color);border-radius:var(--td-radius-round);right:auto}.t-slider__step,.t-slider__track{height:var(--td-size-2);position:absolute}.t-slider__step{cursor:pointer;width:100%}.t-slider__button{background-color:#fff;border:2px solid var(--td-brand-color);border-radius:var(--td-radius-circle);box-shadow:var(--td-shadow-1);box-sizing:border-box;height:var(--td-comp-size-xxxs);transition:.2s;user-select:none;width:var(--td-comp-size-xxxs)}.t-slider__button--dragging{box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-slider__button:hover{background-color:var(--td-gray-color-1)}.t-slider__button-wrapper{align-items:center;background-color:transparent;cursor:pointer;display:flex;line-height:normal;outline:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);user-select:none;z-index:2}.t-slider__stop{background-color:var(--td-bg-color-secondarycomponent);height:var(--td-size-2);position:absolute;top:4px;width:1px}.t-slider__mark{left:0;position:absolute;top:2px;width:100%}.t-slider__mark-text{color:var(--td-text-color-primary);cursor:pointer;display:inline-block;font:var(--td-font-body-small);position:absolute;top:calc(var(--td-size-2) + var(--td-comp-paddingTB-xs) + 2px);transform:translateX(-50%);white-space:nowrap}.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}@-moz-document url-prefix(){.t-textarea__inner{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-textarea__inner::-webkit-scrollbar{height:6px;width:6px}.t-textarea__inner::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-textarea__inner::-webkit-scrollbar-thumb:horizontal:hover,.t-textarea__inner::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.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;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;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{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.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);cursor:pointer;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 0s 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 0s 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__expanded-row>td,.t-table .t-table__row--full>td{padding:0}.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__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 th:not(:last-child){border-right: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-qrcode{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-sizing:border-box;display:flex;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);position:relative}.t-qrcode>canvas{align-self:stretch;flex:auto;min-width:0}.t-qrcode.t-borderless{border-color:transparent}.t-qrcode .t-mask{align-items:center;background-color:var(--td-mask-background);border-radius:var(--td-radius-medium);color:var(--td-text-color-primary);display:flex;flex-direction:column;height:100%;inset-block-start:0;inset-inline-start:0;justify-content:center;line-height:var(--td-line-height-body-medium);position:absolute;text-align:center;width:100%;z-index:300}.t-qrcode .t-expired__text{color:var(--td-text-color-primary);font-weight:600}.t-qrcode .t-expired__button{align-items:center;box-shadow:none;color:var(--td-brand-color);column-gap:var(--td-comp-margin-s);cursor:pointer;display:flex;height:var(--td-comp-size-m);transition:all .2s cubic-bezier(.215,.61,.355,1)}.t-qrcode .t-expired__button:hover{color:var(--td-brand-color-hover)}.t-qrcode .t-scanned{align-items:center;column-gap:var(--td-comp-margin-s);display:flex}.t-qrcode .t-scanned__icon{color:var(--td-success-color)}.t-qrcode-svg{align-items:center;justify-content:center}.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{pointer-events:none;position:fixed;z-index:6000}.t-message__list .t-message{margin-bottom:var(--td-comp-margin-s);pointer-events:auto;word-break:break-all}.t-notification{background-color:var(--td-bg-color-container);border:0;border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:0;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);width:360px}.t-notification__icon{margin-right:var(--td-comp-margin-s);text-align:center;width:calc(var(--td-font-size-body-large) + 8px)}.t-notification__icon .t-icon{font-size:calc(var(--td-font-size-body-large) + 8px)}.t-notification .t-icon.t-is-info{color:var(--td-brand-color)}.t-notification .t-icon.t-is-success{color:var(--td-success-color)}.t-notification .t-icon.t-is-warning{color:var(--td-warning-color)}.t-notification .t-icon.t-is-error{color:var(--td-error-color-6)}.t-notification__main{flex:1}.t-notification__title__wrap{display:flex;justify-content:space-between}.t-notification__title{color:var(--td-text-color-primary);font:var(--td-font-title-medium)}.t-notification .t-icon-close{border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;font-size:var(--td-font-size-body-large)}.t-notification .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-notification .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-notification__content{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--td-text-color-secondary);display:-webkit-box;font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-s);max-height:66px;overflow:hidden;text-overflow:ellipsis;word-break:break-all}.t-notification__detail{font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-l);text-align:right}.t-notification__detail-item{cursor:pointer}.t-notification__detail-item:hover{background:var(--td-bg-color-container-hover);color:inherit}.t-notification__detail-item:active{background:var(--td-bg-color-container-active);color:inherit}.t-notification__detail-item+.t-notification__detail-item{margin-left:var(--td-comp-margin-s)}.t-notification__detail-item.t-is-active{color:var(--td-brand-color)}.t-notification__show--top-left{left:0;position:fixed;top:0}.t-notification__show--top-left>.t-notification{animation-duration:.3s;animation-name:slidein-top-left}@keyframes slidein-top-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--top-right{position:fixed;right:0;top:0}.t-notification__show--top-right>.t-notification{animation-duration:.3s;animation-name:slidein-top-right}@keyframes slidein-top-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-left{bottom:0;display:flex;flex-direction:column-reverse;left:0;position:fixed}.t-notification__show--bottom-left>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-left}@keyframes slidein-bottom-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-right{bottom:0;display:flex;flex-direction:column-reverse;position:fixed;right:0}.t-notification__show--bottom-right>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-right}@keyframes slidein-bottom-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification-list__show{position:fixed}.t-popconfirm{border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;min-width:160px;padding:0}.t-popconfirm .t-popup__content{padding:0}.t-popconfirm.t-popup[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-popconfirm__content{border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);position:relative}.t-popconfirm__body{align-items:flex-start;display:flex;text-align:left}.t-popconfirm__body>.t-icon{display:inline-block;font-size:calc(var(--td-font-size-body-medium) + 6px);margin-right:var(--td-comp-margin-s);padding:calc(var(--td-line-height-body-medium)/2 - var(--td-font-size-body-medium)/2 - 3px) 0}.t-popconfirm__confirm{margin-left:var(--td-comp-margin-s)}.t-popconfirm__inner{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);max-width:320px;vertical-align:top}.t-popconfirm__icon--warning{color:var(--td-warning-color)}.t-popconfirm__icon--danger{color:var(--td-error-color)}.t-popconfirm__icon--default{color:var(--td-brand-color)}.t-popconfirm__buttons{margin-top:var(--td-comp-margin-l);text-align:right}.t-popconfirm__buttons>span:last-child{margin-right:0}.t-upload{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-upload .t-is-bordered{border:1px solid var(--td-component-border)}.t-upload .t-upload__trigger{display:inline-block}.t-upload .t-icon{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload .t-icon-check-circle-filled{color:var(--td-success-color)}.t-upload .t-icon-error-circle-filled{color:var(--td-error-color)}.t-upload .t-icon-time-filled{color:var(--td-text-color-placeholder)}.t-upload .t-icon-add{color:var(--td-text-color-primary)}.t-upload__list-file{align-items:center;display:flex;height:100px;justify-content:center;margin-right:var(--td-comp-margin-m);overflow:hidden;width:100px}.t-upload__list-file .t-icon{color:var(--td-brand-color);font-size:var(--td-comp-size-xl)}.t-upload__list-item{align-items:center;border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);display:flex;font:var(--td-font-body-medium);height:124px;justify-content:space-between;margin-top:var(--td-comp-margin-m);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);width:496px}.t-upload__list-item.t-is--error .t-upload__list-file .t-icon,.t-upload__list-item.t-is--error .t-upload__list-name{color:var(--td-error-color)}.t-upload__list-content{align-items:center;display:flex}.t-upload-list__control{cursor:pointer}.t-upload-list__control:hover{color:var(--td-error-color)}.t-upload__list-img{cursor:pointer;max-height:100%;max-width:100%;object-fit:cover}.t-upload__list-name{word-wrap:normal;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload--highlight{color:var(--td-text-color-brand)}.t-upload__single-name{margin-right:var(--td-comp-margin-s)}.t-upload__card{display:flex;flex-wrap:wrap;font:var(--td-font-body-small);gap:var(--td-comp-margin-s);margin:0;overflow:hidden;padding:0;width:100%}.t-upload__card .t-is-disabled :hover{cursor:not-allowed}.t-upload__card-item{box-sizing:border-box;cursor:pointer;list-style:none}.t-upload__card-item:after{content:"";display:block}.t-upload__card-item:hover .t-upload__card-mask{opacity:1;transition:opacity .2s linear}.t-upload__card-item.t-is--error .t-icon-warning_fill{color:var(--td-error-color);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-item.t-is--error .t-upload__card-status{color:var(--td-error-color)}.t-upload__card-item.t-is-background{transition:border-color .2s linear}.t-upload__card .t-icon-loading{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-name{word-wrap:normal;margin-top:var(--td-comp-margin-s);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__card-content{overflow:hidden;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s)}.t-upload__card-container,.t-upload__card-content{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border:1px dashed var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;display:flex;height:110px;justify-content:center;position:relative;width:110px}.t-upload__card-container{flex-direction:column;transition:border .2s linear}.t-upload__card-container:hover:not(.t-is-disabled){border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__card-container>.t-icon{color:var(--td-text-color-placeholder)}.t-upload__card-container .t-loading,.t-upload__card-container>.t-icon{font-size:var(--td-comp-size-xs);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-container .t-upload__add-text,.t-upload__card-container>p{color:var(--td-text-color-placeholder);margin:0}.t-upload__card-status-wrap{text-align:center}.t-upload__card-status-wrap>svg{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-status-wrap .t-icon,.t-upload__card-status-wrap .t-loading{font-size:var(--td-comp-size-xs)}.t-upload__card-image{height:100%;max-height:100%;max-width:100%;width:100%}.t-upload__card-status{color:var(--td-text-color-disabled);font:var(--td-font-body-small)}.t-upload__card-mask{align-items:center;background-color:var(--td-mask-active);bottom:0;color:var(--td-text-color-anti);display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s linear;will-change:transform;z-index:2}.t-upload__card-mask-item-divider{border-left:1px solid var(--td-text-color-anti);height:var(--td-comp-size-xxxs);margin:0 var(--td-comp-margin-l)}.t-upload__card-mask-item>.t-icon{cursor:pointer;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dialog .t-dialog{max-width:80%}.t-upload__dialog .t-dialog--default{padding:32px}.t-upload__dialog .t-dialog-body{padding-bottom:0}.t-upload__dialog .t-dialog-body-img-box img{display:block;max-height:100%;max-width:100%}.t-upload__dragger{border:1px dashed var(--td-component-border);border-radius:var(--td-radius-small);box-sizing:border-box;color:var(--td-text-color-secondary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:144px;overflow:auto;padding:var(--td-comp-margin-l);position:relative;transition:border-color .2s linear;width:336px}.t-upload__dragger.t-is--active{background-color:var(--td-bg-color-container-active)}.t-upload__dragger.t-is--active,.t-upload__dragger:hover{border-color:var(--td-brand-color)}.t-upload__dragger-btns{bottom:var(--td-comp-margin-l);position:absolute}.t-upload__dragger .t-size-s{display:block}.t-upload__dragger-center{align-items:center;justify-content:center}.t-upload__dragger-error,.t-upload__dragger-error:hover{border-color:var(--td-error-color)}.t-upload__dragger-text{align-items:center;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);margin-bottom:var(--td-comp-margin-s);max-width:calc(336px - var(--td-comp-margin-l)*2)}.t-upload__dragger-text .t-upload__single-name{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__tips{color:var(--td-text-color-placeholder);display:block;font:var(--td-font-body-small);margin-top:var(--td-comp-margin-s)}.t-upload__tips.t-upload__tips-error{color:var(--td-error-color)}.t-upload__tips.t-upload__tips-warn{color:var(--td-warning-color)}.t-upload__placeholder{color:var(--td-text-color-placeholder)}.t-upload__display-text--margin{margin-top:var(--td-comp-margin-s)}.t-upload__single-display-text{align-items:center;color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-small)}.t-upload__single-display-text .t-upload__flow-status .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-icon-clear-circle-filled{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xxs);transition:color .2s linear}.t-icon-clear-circle-filled:hover{color:var(--td-text-color-secondary);cursor:pointer;transition:color .2s linear}.t-upload__single-percent{margin-left:var(--td-comp-margin-xs)}.t-upload__single-progress{align-items:center;color:var(--td-brand-color);display:flex}.t-upload__single-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__single-input-delete{color:var(--td-brand-color);cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-l)}.t-upload__single-input-preview{display:flex;flex:1;justify-content:space-between}.t-upload__single-input-text{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__single-file-input{align-items:center;display:flex}.t-upload__single-file-input .t-upload__trigger{margin-left:var(--td-comp-margin-l)}.t-upload__single-file-input .t-upload__single-progress{white-space:nowrap}.t-upload__single-file-input .t-input__inner{align-items:center;display:flex;justify-content:space-between}.t-upload__dragger-progress{display:flex;width:100%}.t-upload__dragger-progress .t-icon,.t-upload__dragger-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dragger-img-wrap{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:flex;flex-shrink:0;height:110px;justify-content:center;width:110px}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square{width:100%}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square .t-space-item{text-align:center}.t-upload__dragger-img-wrap>img{max-height:100%;max-width:100%}.t-upload__dragger-img-wrap+.t-upload__dragger-progress-info{margin-left:var(--td-comp-margin-l);max-width:calc(226px - var(--td-comp-margin-l)*2 - var(--td-comp-margin-l))}.t-upload__dragger-progress-info{flex:1}.t-upload__dragger-progress-info .t-upload__single-display-text{margin-bottom:var(--td-comp-margin-s)}.t-upload__dragger-progress-info .t-button:hover{background-color:transparent}.t-upload__dragger-progress-cancel,.t-upload__dragger-progress-reupload{margin-right:var(--td-comp-margin-l)}.t-upload__dragger-delete-btn:hover,.t-upload__dragger-progress-cancel:hover,.t-upload__dragger-progress-reupload:hover,.t-upload__dragger-upload-btn:hover{border-color:transparent}.t-upload__flow-image-flow{width:498px}.t-upload__flow{max-width:960px;min-width:498px}.t-upload__flow-placeholder{display:inline-block;margin-left:var(--td-comp-margin-l)}.t-upload__flow-op{align-items:center;display:flex}.t-upload__flow-bottom{display:flex;justify-content:flex-end;margin-top:var(--td-comp-margin-xxl)}.t-upload__flow-bottom .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-upload__flow-empty{align-items:center;color:var(--td-text-color-placeholder);display:flex;height:184px;justify-content:center;width:100%}.t-upload__flow-table{border:1px dashed var(--td-component-border);border-collapse:collapse;margin-top:var(--td-comp-margin-xxl);width:100%}.t-upload__flow-table>tbody>tr,.t-upload__flow-table>tfoot>tr,.t-upload__flow-table>thead>tr,.t-upload__flow-table>tr{border-top:1px solid var(--td-component-border)}.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>th{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);color:var(--td-text-color-placeholder);font-weight:400;text-align:left}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>tr>td{color:var(--td-text-color-primary)}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>td,.t-upload__flow-table>tr>th{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-upload__flow-table__batch-row{border-left:1px solid var(--td-component-border)}.t-upload__flow-button{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__flow-button:hover{color:var(--td-text-color-secondary)}.t-upload__flow-status{align-items:center;display:flex}.t-upload__flow-status .t-icon,.t-upload__flow-status .t-loading{font-size:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-s)}.t-upload__flow-card-area{border:1px dashed var(--td-component-border);margin-top:var(--td-comp-margin-xxl);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);transition:border .2s linear}.t-upload__flow-card-area:hover{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__icon-delete,.t-upload__single-input-clear{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__icon-delete:hover,.t-upload__single-input-clear:hover{color:var(--td-text-color-secondary);transition:color .2s linear}.t-icon.t-upload__single-input-clear{display:none}.t-upload__single-input-preview:hover .t-upload__single-input-clear{display:initial}.t-upload__single-input-preview:hover .t-upload__status-icon{display:none}.t-upload .t-upload__single-name{color:var(--td-text-color-secondary)}.t-upload .t-upload__file-thumbnail{align-items:center;cursor:pointer;display:flex;height:var(--td-comp-size-xxl);justify-content:center;margin-right:var(--td-comp-paddingLR-s);width:var(--td-comp-size-xxl)}.t-upload .t-upload__file-thumbnail>svg{color:var(--td-text-color-placeholder);font-size:var(--td-comp-size-s)}.t-upload__card-name{margin-top:8px}.t-upload--theme-file-input{width:100%}.t-upload__dragger-btns>.t-button{padding:0}.t-upload__file-info{align-items:center;display:flex}.t-upload__card-container.t-is-disabled{cursor:not-allowed}.t-upload__card-container.t-is-disabled .t-icon,.t-upload__card-container.t-is-disabled .t-upload__add-text{color:var(--td-text-color-disabled)} /*# sourceMappingURL=tdesign.min.css.map */ \ No newline at end of file diff --git a/docs/assets/css/tdesign.min.css.map b/docs/assets/css/tdesign.min.css.map index f733eae..37684ad 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/qrcode/_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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8CP4IJ,COvHG,2HACC,iDP4HJ,COpJE,oHAEE,0CPsJJ,COjIG,2HACC,6CPsIJ,CO9DK,+CA/DH,sCAAA,CAAA,kCAAA,CAgEI,+BPkEN,COnKE,kHAEE,4CPqKJ,COhJG,yHACC,+CPqJJ,CO7KE,kHAEE,wCP+KJ,CO1JG,yHACC,2CP+JJ,COjFK,wCArEH,4BAAA,CAAA,sCAAA,CAAA,+BP2JF,CO5LE,oGAEE,4BP8LJ,COvLG,oGACC,4BP4LJ,COpLG,sDACC,oCPuLJ,CO1ME,oGAEE,iCP4MJ,COzME,+CACE,kCP2MJ,COxMG,qDACC,+BP0MJ,COlMG,sDACC,yBPqMJ,COxNE,oGAEE,wCP0NJ,COvNE,+CACE,yCPyNJ,COtNG,qDACC,sCPwNJ,COhNG,sDAEC,4BAAA,CADA,gCPmNJ,CO3HO,gEA1EL,kCAAA,CAAA,2BPyMF,CO1OE,oJAEE,iCP4OJ,COzOE,uEACE,kCP2OJ,COxOG,6EACC,2BP0OJ,COlOG,8EACC,yBPqOJ,COxPE,oJAEE,wCP0PJ,COvPE,uEACE,yCPyPJ,COtPG,6EACC,kCPwPJ,COhPG,8EAEC,4BAAA,CADA,gCPmPJ,COtJO,gEA/EL,oCAAA,CAAA,6BPyOF,CO1QE,oJAEE,mCP4QJ,COzQE,uEACE,oCP2QJ,COxQG,6EACC,6BP0QJ,COlQG,8EACC,yBPqQJ,COxRE,oJAEE,0CP0RJ,COvRE,uEACE,2CPyRJ,COtRG,6EACC,oCPwRJ,COhRG,8EAEC,4BAAA,CADA,gCPmRJ,COjLO,gEApFL,oCAAA,CAAA,6BPyQF,CO1SE,oJAEE,mCP4SJ,COzSE,uEACE,oCP2SJ,COxSG,6EACC,6BP0SJ,COlSG,8EACC,yBPqSJ,COxTE,oJAEE,0CP0TJ,COvTE,uEACE,2CPyTJ,COtTG,6EACC,oCPwTJ,COhTG,8EAEC,4BAAA,CADA,gCPmTJ,CO5MO,+DAzFL,kCAAA,CAAA,2BPySF,CO1UE,kJAEE,iCP4UJ,COzUE,sEACE,kCP2UJ,COxUG,4EACC,2BP0UJ,COlUG,6EACC,yBPqUJ,COxVE,kJAEE,wCP0VJ,COvVE,sEACE,yCPyVJ,COtVG,4EACC,kCPwVJ,COhVG,6EAEC,4BAAA,CADA,gCPmVJ,CO9NE,qIANM,kCPgPR,CO1OE,2BAvGA,oDAAA,CAAA,2CAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDRgWF,CO1OE,yEClHE,wCRgWJ,COtXE,0EAEE,iCPwXJ,COnWG,iFACC,mCPwWJ,COhYE,0EAEE,oDPkYJ,CO7WG,iFACC,sDPkXJ,CO1YE,0EAEE,wCP4YJ,COvXG,iFACC,2CP4XJ,COrQK,mDA9GH,kCAAA,CAAA,2BPuXF,COxZE,0HAEE,iCP0ZJ,COrYG,iIACC,oCP0YJ,COlaE,0HAEE,wCPoaJ,CO/YG,iIACC,2CPoZJ,COxRK,mDAnHH,oCAAA,CAAA,6BP+YF,COhbE,0HAEE,mCPkbJ,CO7ZG,iIACC,sCPkaJ,CO1bE,0HAEE,0CP4bJ,COvaG,iIACC,6CP4aJ,CO3SK,mDAxHH,oCAAA,CAAA,6BPuaF,COxcE,0HAEE,mCP0cJ,COrbG,iIACC,sCP0bJ,COldE,0HAEE,0CPodJ,CO/bG,iIACC,6CPocJ,CO9TK,kDA7HH,kCAAA,CAAA,2BP+bF,COheE,wHAEE,iCPkeJ,CO7cG,+HACC,oCPkdJ,CO1eE,wHAEE,wCP4eJ,COvdG,+HACC,2CP4dJ,COjVK,2CAlIH,4BAAA,CAAA,sCAAA,CAAA,+BPwdF,COzfE,0GAEE,4BP2fJ,COpfG,0GACC,4BPyfJ,COjfG,yDACC,oCPofJ,COvgBE,0GAEE,iCPygBJ,COtgBE,kDACE,kCPwgBJ,COrgBG,wDACC,+BPugBJ,CO/fG,yDACC,yBPkgBJ,COrhBE,0GAEE,wCPuhBJ,COphBE,kDACE,yCPshBJ,COnhBG,wDACC,sCPqhBJ,CO7gBG,yDAEC,4BAAA,CADA,gCPghBJ,CO3XO,mEAvIL,kCAAA,CAAA,2BPsgBF,COviBE,0JAEE,iCPyiBJ,COtiBE,0EACE,kCPwiBJ,COriBG,gFACC,2BPuiBJ,CO/hBG,iFACC,yBPkiBJ,COrjBE,0JAEE,wCPujBJ,COpjBE,0EACE,yCPsjBJ,COnjBG,gFACC,kCPqjBJ,CO7iBG,iFAEC,4BAAA,CADA,gCPgjBJ,COtZO,mEA5IL,oCAAA,CAAA,6BPsiBF,COvkBE,0JAEE,mCPykBJ,COtkBE,0EACE,oCPwkBJ,COrkBG,gFACC,6BPukBJ,CO/jBG,iFACC,yBPkkBJ,COrlBE,0JAEE,0CPulBJ,COplBE,0EACE,2CPslBJ,COnlBG,gFACC,oCPqlBJ,CO7kBG,iFAEC,4BAAA,CADA,gCPglBJ,COjbO,mEAjJL,oCAAA,CAAA,6BPskBF,COvmBE,0JAEE,mCPymBJ,COtmBE,0EACE,oCPwmBJ,COrmBG,gFACC,6BPumBJ,CO/lBG,iFACC,yBPkmBJ,COrnBE,0JAEE,0CPunBJ,COpnBE,0EACE,2CPsnBJ,COnnBG,gFACC,oCPqnBJ,CO7mBG,iFAEC,4BAAA,CADA,gCPgnBJ,CO5cO,kEAtJL,kCAAA,CAAA,2BPsmBF,COvoBE,wJAEE,iCPyoBJ,COtoBE,yEACE,kCPwoBJ,COroBG,+EACC,2BPuoBJ,CO/nBG,gFACC,yBPkoBJ,COrpBE,wJAEE,wCPupBJ,COppBE,yEACE,yCPspBJ,COnpBG,+EACC,kCPqpBJ,CO7oBG,gFAEC,4BAAA,CADA,gCPgpBJ,COteK,wFACC,kCPweN,COteO,gHAEC,4BAAA,CADA,2BPyeR,COreO,gHAEC,4BAAA,CADA,6BPweR,COpeO,gHAEC,4BAAA,CADA,6BPueR,COneO,+GAEC,4BAAA,CADA,2BPseR,CO/dE,0BAtLA,oDAAA,CAAA,2CAAA,CA4LE,mBAAA,CA5LF,kCAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDR8qBF,COzeE,uECjME,wCR8qBJ,COpsBE,wEAEE,iCPssBJ,COjrBG,+EACC,mCPsrBJ,CO9sBE,wEAEE,oDPgtBJ,CO3rBG,+EACC,sDPgsBJ,COxtBE,wEAEE,wCP0tBJ,COrsBG,+EACC,2CP0sBJ,COngBK,kDA9LH,kCAAA,CAAA,2BPqsBF,COtuBE,wHAEE,iCPwuBJ,COntBG,+HACC,oCPwtBJ,COhvBE,wHAEE,wCPkvBJ,CO7tBG,+HACC,2CPkuBJ,COthBK,kDAnMH,oCAAA,CAAA,6BP6tBF,CO9vBE,wHAEE,mCPgwBJ,CO3uBG,+HACC,sCPgvBJ,COxwBE,wHAEE,0CP0wBJ,COrvBG,+HACC,6CP0vBJ,COziBK,kDAxMH,oCAAA,CAAA,6BPqvBF,COtxBE,wHAEE,mCPwxBJ,COnwBG,+HACC,sCPwwBJ,COhyBE,wHAEE,0CPkyBJ,CO7wBG,+HACC,6CPkxBJ,CO5jBK,iDA7MH,kCAAA,CAAA,2BP6wBF,CO9yBE,sHAEE,iCPgzBJ,CO3xBG,6HACC,oCPgyBJ,COxzBE,sHAEE,wCP0zBJ,COryBG,6HACC,2CP0yBJ,CO/kBK,0CAlNH,4BAAA,CAAA,sCAAA,CAAA,+BPsyBF,COv0BE,wGAEE,4BPy0BJ,COl0BG,wGACC,4BPu0BJ,CO/zBG,wDACC,oCPk0BJ,COr1BE,wGAEE,iCPu1BJ,COp1BE,iDACE,kCPs1BJ,COn1BG,uDACC,+BPq1BJ,CO70BG,wDACC,yBPg1BJ,COn2BE,wGAEE,wCPq2BJ,COl2BE,iDACE,yCPo2BJ,COj2BG,uDACC,sCPm2BJ,CO31BG,wDAEC,4BAAA,CADA,gCP81BJ,COznBO,kEAvNL,kCAAA,CAAA,2BPo1BF,COr3BE,wJAEE,iCPu3BJ,COp3BE,yEACE,kCPs3BJ,COn3BG,+EACC,2BPq3BJ,CO72BG,gFACC,yBPg3BJ,COn4BE,wJAEE,wCPq4BJ,COl4BE,yEACE,yCPo4BJ,COj4BG,+EACC,kCPm4BJ,CO33BG,gFAEC,4BAAA,CADA,gCP83BJ,COppBO,kEA5NL,oCAAA,CAAA,6BPo3BF,COr5BE,wJAEE,mCPu5BJ,COp5BE,yEACE,oCPs5BJ,COn5BG,+EACC,6BPq5BJ,CO74BG,gFACC,yBPg5BJ,COn6BE,wJAEE,0CPq6BJ,COl6BE,yEACE,2CPo6BJ,COj6BG,+EACC,oCPm6BJ,CO35BG,gFAEC,4BAAA,CADA,gCP85BJ,CO/qBO,kEAjOL,oCAAA,CAAA,6BPo5BF,COr7BE,wJAEE,mCPu7BJ,COp7BE,yEACE,oCPs7BJ,COn7BG,+EACC,6BPq7BJ,CO76BG,gFACC,yBPg7BJ,COn8BE,wJAEE,0CPq8BJ,COl8BE,yEACE,2CPo8BJ,COj8BG,+EACC,oCPm8BJ,CO37BG,gFAEC,4BAAA,CADA,gCP87BJ,CO1sBO,iEAtOL,kCAAA,CAAA,2BPo7BF,COr9BE,sJAEE,iCPu9BJ,COp9BE,wEACE,kCPs9BJ,COn9BG,8EACC,2BPq9BJ,CO78BG,+EACC,yBPg9BJ,COn+BE,sJAEE,wCPq+BJ,COl+BE,wEACE,yCPo+BJ,COj+BG,8EACC,kCPm+BJ,CO39BG,+EAEC,4BAAA,CADA,gCP89BJ,COruBK,sFACC,kCPuuBN,COruBO,8GAEC,4BAAA,CADA,2BPwuBR,COpuBO,8GAEC,4BAAA,CADA,6BPuuBR,COnuBO,8GAEC,4BAAA,CADA,6BPsuBR,COluBO,6GAEC,4BAAA,CADA,2BPquBR,CO9tBE,wBArQA,4BAAA,CAAA,wBAAA,CAAA,kCAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDR2/BF,COvuBE,mEChRE,wCR2/BJ,COjhCE,oEAEE,kCPmhCJ,CO9/BG,2EACC,mCPmgCJ,CO3hCE,oEAEE,mDP6hCJ,COxgCG,2EACC,4BP6gCJ,COriCE,oEAEE,+CPuiCJ,COlhCG,2EACC,wBPuhCJ,COnwBK,gDA3QH,2BPihCF,COljCE,oHAEE,iCPojCJ,CO/hCG,2HACC,oCPoiCJ,CO5wBK,gDA/QH,6BP8hCF,CO/jCE,oHAEE,mCPikCJ,CO5iCG,2HACC,sCPijCJ,COrxBK,gDAnRH,6BP2iCF,CO5kCE,oHAEE,mCP8kCJ,COzjCG,2HACC,sCP8jCJ,CO9xBK,+CAvRH,2BPwjCF,COzlCE,kHAEE,iCP2lCJ,COtkCG,yHACC,oCP2kCJ,COvyBK,wCACC,eAAA,CA5RJ,+BPskCF,COvmCE,oGAEE,iCPymCJ,COtmCE,+CACE,kCPwmCJ,COrmCG,qDACC,+BPumCJ,CO/lCG,sDAEC,4BAAA,CADA,yBPkmCJ,COpzBO,gEAhSL,2BPulCF,COxnCE,oJAEE,iCP0nCJ,COvnCE,uEACE,kCPynCJ,COtnCG,6EACC,2BPwnCJ,COhnCG,8EAEC,4BAAA,CADA,yBPmnCJ,COj0BO,gEApSL,6BPwmCF,COzoCE,oJAEE,mCP2oCJ,COxoCE,uEACE,oCP0oCJ,COvoCG,6EACC,6BPyoCJ,COjoCG,8EAEC,4BAAA,CADA,yBPooCJ,CO90BO,gE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A,CACA,kBAAA,CLZA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNEF,CWUC,cACC,0BXRF,CWYC,eACC,sBXVF,CWcC,YACC,wBXZF,CWgBC,sBACC,6BXdF,CWkBC,qBACC,4BXhBF,CWoBC,YACC,sBXlBF,CWsBC,eACC,kBXpBF,CWwBC,eACC,oBXtBF,CW0BC,sCAEC,sBXxBF,CW4BC,0CAEC,kBX1BF,CW8BC,uCAEC,oBX5BF,CW+BC,sBACC,mBX7BF,CWgCC,uBACC,oBX9BF,CWiCC,OAIC,qBAAA,CAFA,cAAA,CACA,cAAA,CAFA,iBX5BF,CYrDG,UACC,aAAA,CACA,aAAA,CACA,cZuDJ,CYpDG,eACC,SZsDJ,CYnDG,eACC,UZqDJ,CYlDG,iBACC,gBZoDJ,CYjDG,gBACC,QZmDJ,CYtEG,UACC,aAAA,CACA,qBAAA,CACA,sBZwEJ,CYrEG,eACC,iBZuEJ,CYpEG,eACC,kBZsEJ,CYnEG,iBACC,wBZqEJ,CYlEG,gBACC,QZoEJ,CYvFG,UACC,aAAA,CACA,qBAAA,CACA,sBZyFJ,CYtFG,eACC,iBZwFJ,CYrFG,eACC,kBZuFJ,CYpFG,iBACC,wBZsFJ,CYnFG,gBACC,QZqFJ,CYxGG,SACC,aAAA,CACA,YAAA,CACA,aZ0GJ,CYvGG,cACC,QZyGJ,CYtGG,cACC,SZwGJ,CYrGG,gBACC,eZuGJ,CYpGG,eACC,OZsGJ,CYzHG,SACC,aAAA,CACA,qBAAA,CACA,sBZ2HJ,CYxHG,cACC,iBZ0HJ,CYvHG,cACC,kBZyHJ,CYtHG,gBACC,wBZwHJ,CYrHG,eACC,OZuHJ,CY1IG,SACC,aAAA,CACA,qBAAA,CACA,sBZ4IJ,CYzIG,cACC,iBZ2IJ,CYxIG,cACC,kBZ0IJ,CYvIG,gBACC,wBZyIJ,CYtIG,eACC,OZwIJ,CY3JG,SACC,aAAA,CACA,YAAA,CACA,aZ6JJ,CY1JG,cACC,QZ4JJ,CYzJG,cACC,SZ2JJ,CYxJG,gBACC,eZ0JJ,CYvJG,eACC,OZyJJ,CY5KG,SACC,aAAA,CACA,qBAAA,CACA,sBZ8KJ,CY3KG,cACC,iBZ6KJ,CY1KG,cACC,kBZ4KJ,CYzKG,gBACC,wBZ2KJ,CYxKG,eACC,OZ0KJ,CY7LG,SACC,aAAA,CACA,qBAAA,CACA,sBZ+LJ,CY5LG,cACC,iBZ8LJ,CY3LG,cACC,kBZ6LJ,CY1LG,gBACC,wBZ4LJ,CYzLG,eACC,OZ2LJ,CY9MG,SACC,aAAA,CACA,YAAA,CACA,aZgNJ,CY7MG,cACC,QZ+MJ,CY5MG,cACC,SZ8MJ,CY3MG,gBACC,eZ6MJ,CY1MG,eACC,OZ4MJ,CY/NG,SACC,aAAA,CACA,qBAAA,CACA,sBZiOJ,CY9NG,cACC,iBZgOJ,CY7NG,cACC,kBZ+NJ,CY5NG,gBACC,wBZ8NJ,CY3NG,eACC,OZ6NJ,CYhPG,SACC,aAAA,CACA,oBAAA,CACA,qBZkPJ,CY/OG,cACC,gBZiPJ,CY9OG,cACC,iBZgPJ,CY7OG,gBACC,uBZ+OJ,CY5OG,eACC,OZ8OJ,CYvOG,SACC,YZyOJ,CYtNG,gBACC,aZoOJ,CYjOG,eACC,OZmOJ,CYtRG,aACC,aAAA,CACA,aAAA,CACA,cZwRJ,CYrRG,kBACC,SZuRJ,CYpRG,kBACC,UZsRJ,CYnRG,oBACC,gBZqRJ,CYlRG,mBACC,QZoRJ,CYvSG,aACC,aAAA,CACA,qBAAA,CACA,sBZySJ,CYtSG,kBACC,iBZwSJ,CYrSG,kBACC,kBZuSJ,CYpSG,oBACC,wBZsSJ,CYnSG,mBACC,QZqSJ,CYxTG,aACC,aAAA,CACA,qBAAA,CACA,sBZ0TJ,CYvTG,kBACC,iBZyTJ,CYtTG,kBACC,kBZwTJ,CYrTG,oBACC,wBZuTJ,CYpTG,mBACC,QZsTJ,CYzUG,YACC,aAAA,CACA,YAAA,CACA,aZ2UJ,CYxUG,iBACC,QZ0UJ,CYvUG,iBACC,SZyUJ,CYtUG,mBACC,eZwUJ,CYrUG,kBACC,OZuUJ,CY1VG,YACC,aAAA,CACA,qBAAA,CACA,sBZ4VJ,CYzVG,iBACC,iBZ2VJ,CYxVG,iBACC,kBZ0VJ,CYvVG,mBACC,wBZyVJ,CYtVG,kBACC,OZwVJ,CY3WG,YACC,aAAA,CACA,qBAAA,CACA,sBZ6WJ,CY1WG,iBACC,iBZ4WJ,CYzWG,iBACC,kBZ2WJ,CYxWG,mBACC,wBZ0WJ,CYvWG,kBACC,OZyWJ,CY5XG,YACC,aAAA,CACA,YAAA,CACA,aZ8XJ,CY3XG,iBACC,QZ6XJ,CY1XG,iBACC,SZ4XJ,CYzXG,mBACC,eZ2XJ,CYxXG,kBACC,OZ0XJ,CY7YG,YACC,aAAA,CACA,qBAAA,CACA,sBZ+YJ,CY5YG,iBACC,iBZ8YJ,CY3YG,iBACC,kBZ6YJ,CY1YG,mBACC,wBZ4YJ,CYzYG,kBACC,OZ2YJ,CY9ZG,YACC,aAAA,CACA,qBAAA,CACA,sBZgaJ,CY7ZG,iBACC,iBZ+ZJ,CY5ZG,iBACC,kBZ8ZJ,CY3ZG,mBACC,wBZ6ZJ,CY1ZG,kBACC,OZ4ZJ,CY/aG,YACC,aAAA,CACA,YAAA,CACA,aZibJ,CY9aG,iBACC,QZgbJ,CY7aG,iBACC,SZ+aJ,CY5aG,mBACC,eZ8aJ,CY3aG,kBACC,OZ6aJ,CYhcG,YACC,aAAA,CACA,qBAAA,CACA,sBZkcJ,CY/bG,iBACC,iBZicJ,CY9bG,iBACC,kBZgcJ,CY7bG,mBACC,wBZ+bJ,CY5bG,kBACC,OZ8bJ,CYjdG,YACC,aAAA,CACA,oBAAA,CACA,qBZmdJ,CYhdG,iBACC,gBZkdJ,CY/cG,iBACC,iBZidJ,CY9cG,mBACC,uBZgdJ,CY7cG,kBACC,OZ+cJ,CYxcG,YACC,YZ0cJ,CYvcG,cACC,SZycJ,CYtcG,cACC,UZwcJ,CYrcG,iBACC,SZucJ,CYpcG,iBACC,UZscJ,CYncG,mBACC,aZqcJ,CYlcG,kBACC,OZocJ,CW5ZA,yBC3FG,aACC,aAAA,CACA,aAAA,CACA,cZ0fF,CYvfC,kBACC,SZyfF,CYtfC,kBACC,UZwfF,CYrfC,oBACC,gBZufF,CYpfC,mBACC,QZsfF,CYzgBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ2gBF,CYxgBC,kBACC,iBZ0gBF,CYvgBC,kBACC,kBZygBF,CYtgBC,oBACC,wBZwgBF,CYrgBC,mBACC,QZugBF,CY1hBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ4hBF,CYzhBC,kBACC,iBZ2hBF,CYxhBC,kBACC,kBZ0hBF,CYvhBC,oBACC,wBZyhBF,CYthBC,mBACC,QZwhBF,CY3iBC,YACC,aAAA,CACA,YAAA,CACA,aZ6iBF,CY1iBC,iBACC,QZ4iBF,CYziBC,iBACC,SZ2iBF,CYxiBC,mBACC,eZ0iBF,CYviBC,kBACC,OZyiBF,CY5jBC,YACC,aAAA,CACA,qBAAA,CACA,sBZ8jBF,CY3jBC,iBACC,iBZ6jBF,CY1jBC,iBACC,kBZ4jBF,CYzjBC,mBACC,wBZ2jBF,CYxjBC,kBACC,OZ0jBF,CY7kBC,YACC,aAAA,CACA,qBAAA,CACA,sBZ+kBF,CY5kBC,iBACC,iBZ8kBF,CY3kBC,iBACC,kBZ6kBF,CY1kBC,mBACC,wBZ4kBF,CYzkBC,kBACC,OZ2kBF,CY9lBC,YACC,aAAA,CACA,YAAA,CACA,aZgmBF,CY7lBC,iBACC,QZ+lBF,CY5lBC,iBACC,SZ8lBF,CY3lBC,mBACC,eZ6lBF,CY1lBC,kBACC,OZ4lBF,CY/mBC,YACC,aAAA,CACA,qBAAA,CACA,sBZinBF,CY9mBC,iBACC,iBZgnBF,CY7mBC,iBACC,kBZ+mBF,CY5mBC,mBACC,wBZ8mBF,CY3mBC,kBACC,OZ6mBF,CYhoBC,YACC,aAAA,CACA,qBAAA,CACA,sBZkoBF,CY/nBC,iBACC,iBZioBF,CY9nBC,iBACC,kBZgoBF,CY7nBC,mBACC,wBZ+nBF,CY5nBC,kBACC,OZ8nBF,CYjpBC,YACC,aAAA,CACA,YAAA,CACA,aZmpBF,CYhpBC,iBACC,QZkpBF,CY/oBC,iBACC,SZipBF,CY9oBC,mBACC,eZgpBF,CY7oBC,kBACC,OZ+oBF,CYlqBC,YACC,aAAA,CACA,qBAAA,CACA,sBZoqBF,CYjqBC,iBACC,iBZmqBF,CYhqBC,iBACC,kBZkqBF,CY/pBC,mBACC,wBZiqBF,CY9pBC,kBACC,OZgqBF,CYnrBC,YACC,aAAA,CACA,oBAAA,CACA,qBZqrBF,CYlrBC,iBACC,gBZorBF,CYjrBC,iBACC,iBZmrBF,CYhrBC,mBACC,uBZkrBF,CY/qBC,kBACC,OZirBF,CY1qBC,YACC,YZ4qBF,CYzqBC,cACC,SZ2qBF,CYxqBC,cACC,UZ0qBF,CYvqBC,iBACC,SZyqBF,CYtqBC,iBACC,UZwqBF,CYrqBC,mBACC,aZuqBF,CYpqBC,kBACC,OZsqBF,CACF,CW3nBA,yBC/FG,aACC,aAAA,CACA,aAAA,CACA,cZ6tBF,CY1tBC,kBACC,SZ4tBF,CYztBC,kBACC,UZ2tBF,CYxtBC,oBACC,gBZ0tBF,CYvtBC,mBACC,QZytBF,CY5uBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ8uBF,CY3uBC,kBACC,iBZ6uBF,CY1uBC,kBACC,kBZ4uBF,CYzuBC,oBACC,wBZ2uBF,CYxuBC,mBACC,QZ0uBF,CY7vBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ+vBF,CY5vBC,kBACC,iBZ8vBF,CY3vBC,kBACC,kBZ6vBF,CY1vBC,oBACC,wBZ4vBF,CYzvBC,mBACC,QZ2vBF,CY9wBC,YACC,aAAA,CACA,YAAA,CACA,aZgxBF,CY7wBC,iBACC,QZ+wBF,CY5wBC,iBACC,SZ8wBF,CY3wBC,mBACC,eZ6wBF,CY1wBC,kBACC,OZ4wBF,CY/xBC,YACC,aAAA,CACA,qBAAA,CACA,sBZiyBF,CY9xBC,iBACC,iBZgyBF,CY7xBC,iBACC,kBZ+xBF,CY5xBC,mBACC,wBZ8xBF,CY3xBC,kBACC,OZ6xBF,CYhzBC,YACC,aAAA,CACA,qBAAA,CACA,sBZkzBF,CY/yBC,iBACC,iBZizBF,CY9yBC,iBACC,kBZgzBF,CY7yBC,mBACC,wBZ+yBF,CY5yBC,kBACC,OZ8yBF,CYj0BC,YACC,aAAA,CACA,YAAA,CACA,aZm0BF,CYh0BC,iBACC,QZk0BF,CY/zBC,iBACC,SZi0BF,CY9zBC,mBACC,eZg0BF,CY7zBC,kBACC,OZ+zBF,CYl1BC,YACC,aAAA,CACA,qBAAA,CACA,sBZo1BF,CYj1BC,iBACC,iBZm1BF,CYh1BC,iBACC,kBZk1BF,CY/0BC,mBACC,wBZi1BF,CY90BC,kBACC,OZg1BF,CYn2BC,YACC,aAAA,CACA,qBAAA,CACA,sBZq2BF,CYl2BC,iBACC,iBZo2BF,CYj2BC,iBACC,kBZm2BF,CYh2BC,mBACC,wBZk2BF,CY/1BC,kBACC,OZi2BF,CYp3BC,YACC,aAAA,CACA,YAAA,CACA,aZs3BF,CYn3BC,iBACC,QZq3BF,CYl3BC,iBACC,SZo3BF,CYj3BC,mBACC,eZm3BF,CYh3BC,kBACC,OZk3BF,CYr4BC,YACC,aAAA,CACA,qBAAA,CACA,sBZu4BF,CYp4BC,iBACC,iBZs4BF,CYn4BC,iBACC,kBZq4BF,CYl4BC,mBACC,wBZo4BF,CYj4BC,kBACC,OZm4BF,CYt5BC,YACC,aAAA,CACA,oBAAA,CACA,qBZw5BF,CYr5BC,iBACC,gBZu5BF,CYp5BC,iBACC,iBZs5BF,CYn5BC,mBACC,uBZq5BF,CYl5BC,kBACC,OZo5BF,CY74BC,YACC,YZ+4BF,CY54BC,cACC,SZ84BF,CY34BC,cACC,UZ64BF,CY14BC,iBACC,SZ44BF,CYz4BC,iBACC,UZ24BF,CYx4BC,mBACC,aZ04BF,CYv4BC,kBACC,OZy4BF,CACF,CW11BA,0BCnGG,aACC,aAAA,CACA,aAAA,CACA,cZg8BF,CY77BC,kBACC,SZ+7BF,CY57BC,kBACC,UZ87BF,CY37BC,oBACC,gBZ67BF,CY17BC,mBACC,QZ47BF,CY/8BC,aACC,aAAA,CACA,qBAAA,CACA,sBZi9BF,CY98BC,kBACC,iBZg9BF,CY78BC,kBACC,kBZ+8BF,CY58BC,oBACC,wBZ88BF,CY38BC,mBACC,QZ68BF,CYh+BC,aACC,aAAA,CACA,qBAAA,CACA,sBZk+BF,CY/9BC,kBACC,iBZi+BF,CY99BC,kBACC,kBZg+BF,CY79BC,oBACC,wBZ+9BF,CY59BC,mBACC,QZ89BF,CYj/BC,YACC,aAAA,CACA,YAAA,CACA,aZm/BF,CYh/BC,iBACC,QZk/BF,CY/+BC,iBACC,SZi/BF,CY9+BC,mBACC,eZg/BF,CY7+BC,kBACC,OZ++BF,CYlgCC,YACC,aAAA,CACA,qBAAA,CACA,sBZogCF,CYjgCC,iBACC,iBZmgCF,CYhgCC,iBACC,kBZkgCF,CY//BC,mBACC,wBZigCF,CY9/BC,kBACC,OZggCF,CYnhCC,YACC,aAAA,CACA,qBAAA,CACA,sBZqhCF,CYlhCC,iBACC,iBZohCF,CYjhCC,iBACC,kBZmhCF,CYhhCC,mBACC,wBZkhCF,CY/gCC,kBACC,OZihCF,CYpiCC,YACC,aAAA,CACA,YAAA,CACA,aZsiCF,CYniCC,iBACC,QZqiCF,CYliCC,iBACC,SZoiCF,CYjiCC,mBACC,eZmiCF,CYhiCC,kBACC,OZkiCF,CYrjCC,YACC,aAAA,CACA,qBAAA,CACA,sBZujCF,CYpjCC,iBACC,iBZsjCF,CYnjCC,iBACC,kBZqjCF,CYljCC,mBACC,wBZojCF,CYjjCC,kBACC,OZmjCF,CYtkCC,YACC,aAAA,CACA,qBAAA,CACA,sBZwkCF,CYrkCC,iBACC,iBZukCF,CYpkCC,iBACC,kBZskCF,CYnkCC,mBACC,wBZqkCF,CYlkCC,kBACC,OZokCF,CYvlCC,YACC,aAAA,CACA,YAAA,CACA,aZylCF,CYtlCC,iBACC,QZwlCF,CYrlCC,iBACC,SZulCF,CYplCC,mBACC,eZslCF,CYnlCC,kBACC,OZqlCF,CYxmCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ0mCF,CYvmCC,iBACC,iBZymCF,CYtmCC,iBACC,kBZwmCF,CYrmCC,mBACC,wBZumCF,CYpmCC,kBACC,OZsmCF,CYznCC,YACC,aAAA,CACA,oBAAA,CACA,qBZ2nCF,CYxnCC,iBACC,gBZ0nCF,CYvnCC,iBACC,iBZynCF,CYtnCC,mBACC,uBZwnCF,CYrnCC,kBACC,OZunCF,CYhnCC,YACC,YZknCF,CY/mCC,cACC,SZinCF,CY9mCC,cACC,UZgnCF,CY7mCC,iBACC,SZ+mCF,CY5mCC,iBACC,UZ8mCF,CY3mCC,mBACC,aZ6mCF,CY1mCC,kBACC,OZ4mCF,CACF,CWzjCA,0BCvGG,aACC,aAAA,CACA,aAAA,CACA,cZmqCF,CYhqCC,kBACC,SZkqCF,CY/pCC,kBACC,UZiqCF,CY9pCC,oBACC,gBZgqCF,CY7pCC,mBACC,QZ+pCF,CYlrCC,aACC,aAAA,CACA,qBAAA,CACA,sBZorCF,CYjrCC,kBACC,iBZmrCF,CYhrCC,kBACC,kBZkrCF,CY/qCC,oBACC,wBZirCF,CY9qCC,mBACC,QZgrCF,CYnsCC,aACC,aAAA,CACA,qBAAA,CACA,sBZqsCF,CYlsCC,kBACC,iBZosCF,CYjsCC,kBACC,kBZmsCF,CYhsCC,oBACC,wBZksCF,CY/rCC,mBACC,QZisCF,CYptCC,YACC,aAAA,CACA,YAAA,CACA,aZstCF,CYntCC,iBACC,QZqtCF,CYltCC,iBACC,SZotCF,CYjtCC,mBACC,eZmtCF,CYhtCC,kBACC,OZktCF,CYruCC,YACC,aAAA,CACA,qBAAA,CACA,sBZuuCF,CYpuCC,iBACC,iBZsuCF,CYnuCC,iBACC,kBZquCF,CYluCC,mBACC,wBZouCF,CYjuCC,kBACC,OZmuCF,CYtvCC,YACC,aAAA,CACA,qBAAA,CACA,sBZwvCF,CYrvCC,iBACC,iBZuvCF,CYpvCC,iBACC,kBZsvCF,CYnvCC,mBACC,wBZqvCF,CYlvCC,kBACC,OZovCF,CYvwCC,YACC,aAAA,CACA,YAAA,CACA,aZywCF,CYtwCC,iBACC,QZwwCF,CYrwCC,iBACC,SZuwCF,CYpwCC,mBACC,eZswCF,CYnwCC,kBACC,OZqwCF,CYxxCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ0xCF,CYvxCC,iBACC,iBZyxCF,CYtxCC,iBACC,kBZwxCF,CYrxCC,mBACC,wBZuxCF,CYpxCC,kBACC,OZsxCF,CYzyCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ2yCF,CYxyCC,iBACC,iBZ0yCF,CYvyCC,iBACC,kBZyyCF,CYtyCC,mBACC,wBZwyCF,CYryCC,kBACC,OZuyCF,CY1zCC,YACC,aAAA,CACA,YAAA,CACA,aZ4zCF,CYzzCC,iBACC,QZ2zCF,CYxzCC,iBACC,SZ0zCF,CYvzCC,mBACC,eZyzCF,CYtzCC,kBACC,OZwzCF,CY30CC,YACC,aAAA,CACA,qBAAA,CACA,sBZ60CF,CY10CC,iBACC,iBZ40CF,CYz0CC,iBACC,kBZ20CF,CYx0CC,mBACC,wBZ00CF,CYv0CC,kBACC,OZy0CF,CY51CC,YACC,aAAA,CACA,oBAAA,CACA,qBZ81CF,CY31CC,iBACC,gBZ61CF,CY11CC,iBACC,iBZ41CF,CYz1CC,mBACC,uBZ21CF,CYx1CC,kBACC,OZ01CF,CYn1CC,YACC,YZq1CF,CYl1CC,cACC,SZo1CF,CYj1CC,cACC,UZm1CF,CYh1CC,iBACC,SZk1CF,CY/0CC,iBACC,UZi1CF,CY90CC,mBACC,aZg1CF,CY70CC,kBACC,OZ+0CF,CACF,CWxxCA,0BC3GG,cACC,aAAA,CACA,aAAA,CACA,cZs4CF,CYn4CC,mBACC,SZq4CF,CYl4CC,mBACC,UZo4CF,CYj4CC,qBACC,gBZm4CF,CYh4CC,oBACC,QZk4CF,CYr5CC,cACC,aAAA,CACA,qBAAA,CACA,sBZu5CF,CYp5CC,mBACC,iBZs5CF,CYn5CC,mBACC,kBZq5CF,CYl5CC,qBACC,wBZo5CF,CYj5CC,oBACC,QZm5CF,CYt6CC,cACC,aAAA,CACA,qBAAA,CACA,sBZw6CF,CYr6CC,mBACC,iBZu6CF,CYp6CC,mBACC,kBZs6CF,CYn6CC,qBACC,wBZq6CF,CYl6CC,oBACC,QZo6CF,CYv7CC,aACC,aAAA,CACA,YAAA,CACA,aZy7CF,CYt7CC,kBACC,QZw7CF,CYr7CC,kBACC,SZu7CF,CYp7CC,oBACC,eZs7CF,CYn7CC,mBACC,OZq7CF,CYx8CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ08CF,CYv8CC,kBACC,iBZy8CF,CYt8CC,kBACC,kBZw8CF,CYr8CC,oBACC,wBZu8CF,CYp8CC,mBACC,OZs8CF,CYz9CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ29CF,CYx9CC,kBACC,iBZ09CF,CYv9CC,kBACC,kBZy9CF,CYt9CC,oBACC,wBZw9CF,CYr9CC,mBACC,OZu9CF,CY1+CC,aACC,aAAA,CACA,YAAA,CACA,aZ4+CF,CYz+CC,kBACC,QZ2+CF,CYx+CC,kBACC,SZ0+CF,CYv+CC,oBACC,eZy+CF,CYt+CC,mBACC,OZw+CF,CY3/CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ6/CF,CY1/CC,kBACC,iBZ4/CF,CYz/CC,kBACC,kBZ2/CF,CYx/CC,oBACC,wBZ0/CF,CYv/CC,mBACC,OZy/CF,CY5gDC,aACC,aAAA,CACA,qBAAA,CACA,sBZ8gDF,CY3gDC,kBACC,iBZ6gDF,CY1gDC,kBACC,kBZ4gDF,CYzgDC,oBACC,wBZ2gDF,CYxgDC,mBACC,OZ0gDF,CY7hDC,aACC,aAAA,CACA,YAAA,CACA,aZ+hDF,CY5hDC,kBACC,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AAA,CACA,czBoBN,CyBjBI,uBAIE,MAAA,CAHA,eAAA,CACA,sBAAA,CACA,kBzBoBN,CyBhBK,sEAEG,kBAAA,CAEA,aAAA,CADA,wCzBkBR,CyBZI,iCACE,kCzBcN,CyBZM,uCACE,mDzBcR,CyBXM,wCACE,oDzBaR,CyBVO,0DAEC,4CAAA,CADA,2BzBaR,CyBVQ,gEACE,mDzBYV,CyBTQ,iEACE,oDzBWV,CyBPO,4DACC,mCzBSR,CyBPQ,kEACE,mDzBSV,CyBJQ,gEACE,4CAAA,CACA,2BzBMV,CyBDI,iCACE,6BzBGN,CyBDM,uCACE,mDzBGR,CyBAM,wCACE,oDzBER,CyBCO,0DACC,8CzBCR,CyBCQ,gEACE,mDzBCV,CyBEQ,iEACE,oDzBAV,CyBIO,2DACC,mCzBFR,CyBIQ,iEACE,mDzBFV,CyBOQ,gEACE,8CzBLV,CyBUI,+BACE,2BzBRN,CyBUM,qCACE,mDzBRR,CyBWM,sCACE,oDzBTR,CyBYO,wDACC,4CzBVR,CyBYQ,8DACE,mDzBVV,CyBaQ,+DACE,oDzBXV,CyBeO,0DACC,mCzBbR,CyBeQ,gEACE,mDzBbV,CyBkBQ,8DACE,4CzBhBV,CyBsBI,iCACE,6BzBpBN,CyBsBM,uCACE,mDzBpBR,CyBuBM,wCACE,oDzBrBR,CyBwBO,0DACC,8CzBtBR,CyBwBQ,gEACE,mDzBtBV,CyByBQ,iEACE,oDzBvBV,CyB2BO,4DACC,mCzBzBR,CyB2BQ,kEACE,mDzBzBV,CyB8BQ,gEACE,8CzB5BV,C0BnQC,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,C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ADA,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,C8BtHK,wDAEG,yC9BuHR,C8BpHK,wDAEG,yC9BqHR,C8BvIK,0CAKC,kBAAA,CADA,YAAA,CAFA,WAAA,CACA,iBAAA,CAFA,S9B6IN,C8BtIK,+CACC,wC9BwIN,C8BtIK,wDAEG,yC9BuIR,C8BpIK,wDAEG,yC9BqIR,CiCxOC,gCA+GG,cjC4HJ,CiCxHG,kBAEC,8BAAA,CADA,6BAAA,CAEA,6DjC0HJ,CiCvHG,kBAEC,8BAAA,CADA,6BjC0HJ,CiCpPC,oEAiIK,iBjCuHN,CiCxPC,kCAuIK,sCjCoHN,CiCjHI,sCACE,oCjCmHN,CiC9PC,kCAiJK,sCAAA,CACA,yBjCgHN,CiC9GM,wCACE,oCAAA,CACA,yBjCgHR,CiC5GI,sCACE,mCjC8GN,CiCzGG,2JAUK,2BjCsGR,CiChGC,eAGC,mBAAA,CADA,mBAAA,CADA,iBjCoGF,CiCrGC,8BAMG,ejCkGJ,CiChGI,0CACE,mEjCkGN,CiC/FI,yCACE,mEjCiGN,CiC9GC,kDAmBG,ejC+FJ,CiCxFI,+IAEI,gBjC6FR,CiCzFI,mDAEI,mEjC0FR,CiCtFI,kDAEI,mEjCuFR,CiChFI,0EACE,mEjCmFN,CiChFI,wEACE,mEjCmFN,CiC/EE,uDAEI,sCjCgFN,CiClFE,sEAOI,sCjC+EN,CiC7EM,8FACE,mEjCgFR,CiC7EM,4FACE,mEjCgFR,CiCpEQ,0KACE,sCjC4EV,CiC/JC,iFA4FG,iBAAA,CACA,SjCwEJ,CiCtEI,4SAGE,SjC8EN,CiCzEC,eACC,UjC2EF,CiCxEC,eAGC,8BAAA,CAFA,WAAA,CACA,2CAAA,CAEA,iBjC0EF,CiCvEC,wBACC,sCjCyEF,CiCtEC,wBACC,6BjCwEF,CiCrEC,wBACC,6BjCuEF,CiCpEC,sBACC,2BjCsEF,CiCnEC,gCACC,iBjCqEF,C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DAAA,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,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E+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,CA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CAAA,CANA,sBAAA,CAKA,sCAAA,CAHA,SxF4sBJ,CwFrsBI,8EACE,kCxFusBN,CwFpsBI,+EACE,kCxFssBN,CuFziBC,qFCvIG,oCAAA,CAFA,oBAAA,CACA,wCAAA,CAEA,QxFqrBJ,CuF7hBG,yDAEG,YvF8hBN,CuFhiBG,8FCRO,8CxF2iBV,CwFziBU,oGACE,6CxF2iBZ,CuFtiBG,qLCKO,6CxFuiBV,CuFpiBG,0FCnJK,cAAA,CAyBE,UAAA,CAHA,cAAA,CACA,cAAA,CACA,UxFsqBV,CuF3iBG,+FCtHS,WAAA,CADA,SxFsqBZ,CwFlqBU,sGACE,YxFoqBZ,CuFljBG,+FC7GO,iCxFkqBV,CwFhqBU,qGACE,uCxFkqBZ,CwF/pBU,sGACE,6CxFiqBZ,CwF7pBS,sGAKG,WxF2pBZ,CwFhqBS,2GASG,6CxF0pBZ,CuF7jBK,4EAEG,WvF8jBR,CuFhkBK,iHCpBK,8CxFulBV,CwFrlBU,uHACE,6CxFulBZ,CuFtkBK,2NCPK,6CxFmlBV,CF/1BE,4BAAA,WACE,qDAAA,CACA,oBEFF,CACF,CFKE,8BAEE,UAAA,CADA,SEFJ,CFME,oCAEE,2BAAA,CACA,0CAAA,CAFA,0BAAA,CAGA,kBEJJ,CFQE,wGAEE,gDENJ,CyFkBE,gIACE,uCzFfJ,CyFuBE,8RACE,sBzFnBJ,CyFwBC,mCACC,gBzFtBF,CyFyBC,SAMC,6CAAA,CnF1DA,qBAAA,CmFyDA,kCAAA,CADA,+BAAA,CnFrDA,eAAA,CAFA,QAAA,CACA,SAAA,CmFyDA,iBAAA,CAJA,UzFhBF,CyFaC,8EAUG,WzFpBJ,CyFuBE,uBACE,YzFrBJ,CyFOC,0BAmBG,UzFvBJ,C0FXG,sHAGG,kB1FYN,C0FfG,4HAGG,qB1FgBN,C0FnBG,4HAGG,qB1FoBN,CyFRC,+BA+BG,gDAAA,CAJA,YAAA,CAEA,SAAA,CADA,iBAAA,CAEA,OAAA,CAEA,YzFhBJ,CyFoBK,+GAEC,gBzFlBN,CyFsBE,oCACE,oCzFpBJ,CyFuBE,kDACE,qCzFrBJ,CyFwBE,kBACE,iBzFtBJ,CFjFE,4BAAA,kBACE,qDAAA,CACA,oBEwGF,CACF,CFrGE,qCAEE,UAAA,C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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,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/qrcode/_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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DI,+BP+CN,CO1IE,oHAEE,8CP4IJ,COvHG,2HACC,iDP4HJ,COpJE,oHAEE,0CPsJJ,COjIG,2HACC,6CPsIJ,CO9DK,+CA/DH,sCAAA,CAAA,kCAAA,CAgEI,+BPkEN,COnKE,kHAEE,4CPqKJ,COhJG,yHACC,+CPqJJ,CO7KE,kHAEE,wCP+KJ,CO1JG,yHACC,2CP+JJ,COjFK,wCArEH,4BAAA,CAAA,sCAAA,CAAA,+BP2JF,CO5LE,oGAEE,4BP8LJ,COvLG,oGACC,4BP4LJ,COpLG,sDACC,oCPuLJ,CO1ME,oGAEE,iCP4MJ,COzME,+CACE,kCP2MJ,COxMG,qDACC,+BP0MJ,COlMG,sDACC,yBPqMJ,COxNE,oGAEE,wCP0NJ,COvNE,+CACE,yCPyNJ,COtNG,qDACC,sCPwNJ,COhNG,sDAEC,4BAAA,CADA,gCPmNJ,CO3HO,gEA1EL,kCAAA,CAAA,2BPyMF,CO1OE,oJAEE,iCP4OJ,COzOE,uEACE,kCP2OJ,COxOG,6EACC,2BP0OJ,COlOG,8EACC,yBPqOJ,COxPE,oJAEE,wCP0PJ,COvPE,uEACE,yCPyPJ,COtPG,6EACC,kCPwPJ,COhPG,8EAEC,4BAAA,CADA,gCPmPJ,COtJO,gEA/EL,oCAAA,CAAA,6BPyOF,CO1QE,oJAEE,mCP4QJ,COzQE,uEACE,oCP2QJ,COxQG,6EACC,6BP0QJ,COlQG,8EACC,yBPqQJ,COxRE,oJAEE,0CP0RJ,COvRE,uEACE,2CPyRJ,COtRG,6EACC,oCPwRJ,COhRG,8EAEC,4BAAA,CADA,gCPmRJ,COjLO,gEApFL,oCAAA,CAAA,6BPyQF,CO1SE,oJAEE,mCP4SJ,COzSE,uEACE,oCP2SJ,COxSG,6EACC,6BP0SJ,COlSG,8EACC,yBPqSJ,COxTE,oJAEE,0CP0TJ,COvTE,uEACE,2CPyTJ,COtTG,6EACC,oCPwTJ,COhTG,8EAEC,4BAAA,CADA,gCPmTJ,CO5MO,+DAzFL,kCAAA,CAAA,2BPySF,CO1UE,kJAEE,iCP4UJ,COzUE,sEACE,kCP2UJ,COxUG,4EACC,2BP0UJ,COlUG,6EACC,yBPqUJ,COxVE,kJAEE,wCP0VJ,COvVE,sEACE,yCPyVJ,COtVG,4EACC,kCPwVJ,COhVG,6EAEC,4BAAA,CADA,gCPmVJ,CO9NE,qIANM,kCPgPR,CO1OE,2BAvGA,oDAAA,CAAA,2CAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDRgWF,CO1OE,yEClHE,wCRgWJ,COtXE,0EAEE,iCPwXJ,COnWG,iFACC,mCPwWJ,COhYE,0EAEE,oDPkYJ,CO7WG,iFACC,sDPkXJ,CO1YE,0EAEE,wCP4YJ,COvXG,iFACC,2CP4XJ,COrQK,mDA9GH,kCAAA,CAAA,2BPuXF,COxZE,0HAEE,iCP0ZJ,COrYG,iIACC,oCP0YJ,COlaE,0HAEE,wCPoaJ,CO/YG,iIACC,2CPoZJ,COxRK,mDAnHH,oCAAA,CAAA,6BP+YF,COhbE,0HAEE,mCPkbJ,CO7ZG,iIACC,sCPkaJ,CO1bE,0HAEE,0CP4bJ,COvaG,iIACC,6CP4aJ,CO3SK,mDAxHH,oCAAA,CAAA,6BPuaF,COxcE,0HAEE,mCP0cJ,COrbG,iIACC,sCP0bJ,COldE,0HAEE,0CPodJ,CO/bG,iIACC,6CPocJ,CO9TK,kDA7HH,kCAAA,CAAA,2BP+bF,COheE,wHAEE,iCPkeJ,CO7cG,+HACC,oCPkdJ,CO1eE,wHAEE,wCP4eJ,COvdG,+HACC,2CP4dJ,COjVK,2CAlIH,4BAAA,CAAA,sCAAA,CAAA,+BPwdF,COzfE,0GAEE,4BP2fJ,COpfG,0GACC,4BPyfJ,COjfG,yDACC,oCPofJ,COvgBE,0GAEE,iCPygBJ,COtgBE,kDACE,kCPwgBJ,COrgBG,wDACC,+BPugBJ,CO/fG,yDACC,yBPkgBJ,COrhBE,0GAEE,wCPuhBJ,COphBE,kDACE,yCPshBJ,COnhBG,wDACC,sCPqhBJ,CO7gBG,yDAEC,4BAAA,CADA,gCPghBJ,CO3XO,mEAvIL,kCAAA,CAAA,2BPsgBF,COviBE,0JAEE,iCPyiBJ,COtiBE,0EACE,kCPwiBJ,COriBG,gFACC,2BPuiBJ,CO/hBG,iFACC,yBPkiBJ,COrjBE,0JAEE,wCPujBJ,COpjBE,0EACE,yCPsjBJ,COnjBG,gFACC,kCPqjBJ,CO7iBG,iFAEC,4BAAA,CADA,gCPgjBJ,COtZO,mEA5IL,oCAAA,CAAA,6BPsiBF,COvkBE,0JAEE,mCPykBJ,COtkBE,0EACE,oCPwkBJ,COrkBG,gFACC,6BPukBJ,CO/jBG,iFACC,yBPkkBJ,COrlBE,0JAEE,0CPulBJ,COplBE,0EACE,2CPslBJ,COnlBG,gFACC,oCPqlBJ,CO7kBG,iFAEC,4BAAA,CADA,gCPglBJ,COjbO,mEAjJL,oCAAA,CAAA,6BPskBF,COvmBE,0JAEE,mCPymBJ,COtmBE,0EACE,oCPwmBJ,COrmBG,gFACC,6BPumBJ,CO/lBG,iFACC,yBPkmBJ,COrnBE,0JAEE,0CPunBJ,COpnBE,0EACE,2CPsnBJ,COnnBG,gFACC,oCPqnBJ,CO7mBG,iFAEC,4BAAA,CADA,gCPgnBJ,CO5cO,kEAtJL,kCAAA,CAAA,2BPsmBF,COvoBE,wJAEE,iCPyoBJ,COtoBE,yEACE,kCPwoBJ,COroBG,+EACC,2BPuoBJ,CO/nBG,gFACC,yBPkoBJ,COrpBE,wJAEE,wCPupBJ,COppBE,yEACE,yCPspBJ,COnpBG,+EACC,kCPqpBJ,CO7oBG,gFAEC,4BAAA,CADA,gCPgpBJ,COteK,wFACC,kCPweN,COteO,gHAEC,4BAAA,CADA,2BPyeR,COreO,gHAEC,4BAAA,CADA,6BPweR,COpeO,gHAEC,4BAAA,CADA,6BPueR,COneO,+GAEC,4BAAA,CADA,2BPseR,CO/dE,0BAtLA,oDAAA,CAAA,2CAAA,CA4LE,mBAAA,CA5LF,kCAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDR8qBF,COzeE,uECjME,wCR8qBJ,COpsBE,wEAEE,iCPssBJ,COjrBG,+EACC,mCPsrBJ,CO9sBE,wEAEE,oDPgtBJ,CO3rBG,+EACC,sDPgsBJ,COxtBE,wEAEE,wCP0tBJ,COrsBG,+EACC,2CP0sBJ,COngBK,kDA9LH,kCAAA,CAAA,2BPqsBF,COtuBE,wHAEE,iCPwuBJ,COntBG,+HACC,oCPwtBJ,COhvBE,wHAEE,wCPkvBJ,CO7tBG,+HACC,2CPkuBJ,COthBK,kDAnMH,oCAAA,CAAA,6BP6tBF,CO9vBE,wHAEE,mCPgwBJ,CO3uBG,+HACC,sCPgvBJ,COxwBE,wHAEE,0CP0wBJ,COrvBG,+HACC,6CP0vBJ,COziBK,kDAxMH,oCAAA,CAAA,6BPqvBF,COtxBE,wHAEE,mCPwxBJ,COnwBG,+HACC,sCPwwBJ,COhyBE,wHAEE,0CPkyBJ,CO7wBG,+HACC,6CPkxBJ,CO5jBK,iDA7MH,kCAAA,CAAA,2BP6wBF,CO9yBE,sHAEE,iCPgzBJ,CO3xBG,6HACC,oCPgyBJ,COxzBE,sHAEE,wCP0zBJ,COryBG,6HACC,2CP0yBJ,CO/kBK,0CAlNH,4BAAA,CAAA,sCAAA,CAAA,+BPsyBF,COv0BE,wGAEE,4BPy0BJ,COl0BG,wGACC,4BPu0BJ,CO/zBG,wDACC,oCPk0BJ,COr1BE,wGAEE,iCPu1BJ,COp1BE,iDACE,kCPs1BJ,COn1BG,uDACC,+BPq1BJ,CO70BG,wDACC,yBPg1BJ,COn2BE,wGAEE,wCPq2BJ,COl2BE,iDACE,yCPo2BJ,COj2BG,uDACC,sCPm2BJ,CO31BG,wDAEC,4BAAA,CADA,gCP81BJ,COznBO,kEAvNL,kCAAA,CAAA,2BPo1BF,COr3BE,wJAEE,iCPu3BJ,COp3BE,yEACE,kCPs3BJ,COn3BG,+EACC,2BPq3BJ,CO72BG,gFACC,yBPg3BJ,COn4BE,wJAEE,wCPq4BJ,COl4BE,yEACE,yCPo4BJ,COj4BG,+EACC,kCPm4BJ,CO33BG,gFAEC,4BAAA,CADA,gCP83BJ,COppBO,kEA5NL,oCAAA,CAAA,6BPo3BF,COr5BE,wJAEE,mCPu5BJ,COp5BE,yEACE,oCPs5BJ,COn5BG,+EACC,6BPq5BJ,CO74BG,gFACC,yBPg5BJ,COn6BE,wJAEE,0CPq6BJ,COl6BE,yEACE,2CPo6BJ,COj6BG,+EACC,oCPm6BJ,CO35BG,gFAEC,4BAAA,CADA,gCP85BJ,CO/qBO,kEAjOL,oCAAA,CAAA,6BPo5BF,COr7BE,wJAEE,mCPu7BJ,COp7BE,yEACE,oCPs7BJ,COn7BG,+EACC,6BPq7BJ,CO76BG,gFACC,yBPg7BJ,COn8BE,wJAEE,0CPq8BJ,COl8BE,yEACE,2CPo8BJ,COj8BG,+EACC,oCPm8BJ,CO37BG,gFAEC,4BAAA,CADA,gCP87BJ,CO1sBO,iEAtOL,kCAAA,CAAA,2BPo7BF,COr9BE,sJAEE,iCPu9BJ,COp9BE,wEACE,kCPs9BJ,COn9BG,8EACC,2BPq9BJ,CO78BG,+EACC,yBPg9BJ,COn+BE,sJAEE,wCPq+BJ,COl+BE,wEACE,yCPo+BJ,COj+BG,8EACC,kCPm+BJ,CO39BG,+EAEC,4BAAA,CADA,gCP89BJ,COruBK,sFACC,kCPuuBN,COruBO,8GAEC,4BAAA,CADA,2BPwuBR,COpuBO,8GAEC,4BAAA,CADA,6BPuuBR,COnuBO,8GAEC,4BAAA,CADA,6BPsuBR,COluBO,6GAEC,4BAAA,CADA,2BPquBR,CO9tBE,wBArQA,4BAAA,CAAA,wBAAA,CAAA,kCAAA,CCjBA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDR2/BF,COvuBE,mEChRE,wCR2/BJ,COjhCE,oEAEE,kCPmhCJ,CO9/BG,2EACC,mCPmgCJ,CO3hCE,oEAEE,mDP6hCJ,COxgCG,2EACC,4BP6gCJ,COriCE,oEAEE,+CPuiCJ,COlhCG,2EACC,wBPuhCJ,COnwBK,gDA3QH,2BPihCF,COljCE,oHAEE,iCPojCJ,CO/hCG,2HACC,oCPoiCJ,CO5wBK,gDA/QH,6BP8hCF,CO/jCE,oHAEE,mCPikCJ,CO5iCG,2HACC,sCPijCJ,COrxBK,gDAnRH,6BP2iCF,CO5kCE,oHAEE,mCP8kCJ,COzjCG,2HACC,sCP8jCJ,CO9xBK,+CAvRH,2BPwjCF,COzlCE,kHAEE,iCP2lCJ,COtkCG,yHACC,oCP2kCJ,COvyBK,wCACC,eAAA,CA5RJ,+BPskCF,COvmCE,oGAEE,iCPymCJ,COtmCE,+CACE,kCPwmCJ,COrmCG,qDACC,+BPumCJ,CO/lCG,sDAEC,4BAAA,CADA,yBPkmCJ,COpzBO,gEAhSL,2BPulCF,COxnCE,oJAEE,iCP0nCJ,COvnCE,uEACE,kCPynCJ,COtnCG,6EACC,2BPwnCJ,COhnCG,8EAEC,4BAAA,CADA,yBPmnCJ,COj0BO,gEApSL,6BPwmCF,COzoCE,oJAEE,mCP2oCJ,COxoCE,uEACE,oCP0oCJ,COvoCG,6EACC,6BPyoCJ,COjoCG,8EAEC,4BAAA,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AA,CADA,kCAAA,CKUA,YAAA,CACA,kBAAA,CLZA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNEF,CWUC,cACC,0BXRF,CWYC,eACC,sBXVF,CWcC,YACC,wBXZF,CWgBC,sBACC,6BXdF,CWkBC,qBACC,4BXhBF,CWoBC,YACC,sBXlBF,CWsBC,eACC,kBXpBF,CWwBC,eACC,oBXtBF,CW0BC,sCAEC,sBXxBF,CW4BC,0CAEC,kBX1BF,CW8BC,uCAEC,oBX5BF,CW+BC,sBACC,mBX7BF,CWgCC,uBACC,oBX9BF,CWiCC,OAIC,qBAAA,CAFA,cAAA,CACA,cAAA,CAFA,iBX5BF,CYrDG,UACC,aAAA,CACA,aAAA,CACA,cZuDJ,CYpDG,eACC,SZsDJ,CYnDG,eACC,UZqDJ,CYlDG,iBACC,gBZoDJ,CYjDG,gBACC,QZmDJ,CYtEG,UACC,aAAA,CACA,qBAAA,CACA,sBZwEJ,CYrEG,eACC,iBZuEJ,CYpEG,eACC,kBZsEJ,CYnEG,iBACC,wBZqEJ,CYlEG,gBACC,QZoEJ,CYvFG,UACC,aAAA,CACA,qBAAA,CACA,sBZyFJ,CYtFG,eACC,iBZwFJ,CYrFG,eACC,kBZuFJ,CYpFG,iBACC,wBZsFJ,CYnFG,gBACC,QZqFJ,CYxGG,SACC,aAAA,CACA,YAAA,CACA,aZ0GJ,CYvGG,cACC,QZyGJ,CYtGG,cACC,SZwGJ,CYrGG,gBACC,eZuGJ,CYpGG,eACC,OZsGJ,CYzHG,SACC,aAAA,CACA,qBAAA,CACA,sBZ2HJ,CYxHG,cACC,iBZ0HJ,CYvHG,cACC,kBZyHJ,CYtHG,gBACC,wBZwHJ,CYrHG,eACC,OZuHJ,CY1IG,SACC,aAAA,CACA,qBAAA,CACA,sBZ4IJ,CYzIG,cACC,iBZ2IJ,CYxIG,cACC,kBZ0IJ,CYvIG,gBACC,wBZyIJ,CYtIG,eACC,OZwIJ,CY3JG,SACC,aAAA,CACA,YAAA,CACA,aZ6JJ,CY1JG,cACC,QZ4JJ,CYzJG,cACC,SZ2JJ,CYxJG,gBACC,eZ0JJ,CYvJG,eACC,OZyJJ,CY5KG,SACC,aAAA,CACA,qBAAA,CACA,sBZ8KJ,CY3KG,cACC,iBZ6KJ,CY1KG,cACC,kBZ4KJ,CYzKG,gBACC,wBZ2KJ,CYxKG,eACC,OZ0KJ,CY7LG,SACC,aAAA,CACA,qBAAA,CACA,sBZ+LJ,CY5LG,cACC,iBZ8LJ,CY3LG,cACC,kBZ6LJ,CY1LG,gBACC,wBZ4LJ,CYzLG,eACC,OZ2LJ,CY9MG,SACC,aAAA,CACA,YAAA,CACA,aZgNJ,CY7MG,cACC,QZ+MJ,CY5MG,cACC,SZ8MJ,CY3MG,gBACC,eZ6MJ,CY1MG,eACC,OZ4MJ,CY/NG,SACC,aAAA,CACA,qBAAA,CACA,sBZiOJ,CY9NG,cACC,iBZgOJ,CY7NG,cACC,kBZ+NJ,CY5NG,gBACC,wBZ8NJ,CY3NG,eACC,OZ6NJ,CYhPG,SACC,aAAA,CACA,oBAAA,CACA,qBZkPJ,CY/OG,cACC,gBZiPJ,CY9OG,cACC,iBZgPJ,CY7OG,gBACC,uBZ+OJ,CY5OG,eACC,OZ8OJ,CYvOG,SACC,YZyOJ,CYtNG,gBACC,aZoOJ,CYjOG,eACC,OZmOJ,CYtRG,aACC,aAAA,CACA,aAAA,CACA,cZwRJ,CYrRG,kBACC,SZuRJ,CYpRG,kBACC,UZsRJ,CYnRG,oBACC,gBZqRJ,CYlRG,mBACC,QZoRJ,CYvSG,aACC,aAAA,CACA,qBAAA,CACA,sBZySJ,CYtSG,kBACC,iBZwSJ,CYrSG,kBACC,kBZuSJ,CYpSG,oBACC,wBZsSJ,CYnSG,mBACC,QZqSJ,CYxTG,aACC,aAAA,CACA,qBAAA,CACA,sBZ0TJ,CYvTG,kBACC,iBZyTJ,CYtTG,kBACC,kBZwTJ,CYrTG,oBACC,wBZuTJ,CYpTG,mBACC,QZsTJ,CYzUG,YACC,aAAA,CACA,YAAA,CACA,aZ2UJ,CYxUG,iBACC,QZ0UJ,CYvUG,iBACC,SZyUJ,CYtUG,mBACC,eZwUJ,CYrUG,kBACC,OZuUJ,CY1VG,YACC,aAAA,CACA,qBAAA,CACA,sBZ4VJ,CYzVG,iBACC,iBZ2VJ,CYxVG,iBACC,kBZ0VJ,CYvVG,mBACC,wBZyVJ,CYtVG,kBACC,OZwVJ,CY3WG,YACC,aAAA,CACA,qBAAA,CACA,sBZ6WJ,CY1WG,iBACC,iBZ4WJ,CYzWG,iBACC,kBZ2WJ,CYxWG,mBACC,wBZ0WJ,CYvWG,kBACC,OZyWJ,CY5XG,YACC,aAAA,CACA,YAAA,CACA,aZ8XJ,CY3XG,iBACC,QZ6XJ,CY1XG,iBACC,SZ4XJ,CYzXG,mBACC,eZ2XJ,CYxXG,kBACC,OZ0XJ,CY7YG,YACC,aAAA,CACA,qBAAA,CACA,sBZ+YJ,CY5YG,iBACC,iBZ8YJ,CY3YG,iBACC,kBZ6YJ,CY1YG,mBACC,wBZ4YJ,CYzYG,kBACC,OZ2YJ,CY9ZG,YACC,aAAA,CACA,qBAAA,CACA,sBZgaJ,CY7ZG,iBACC,iBZ+ZJ,CY5ZG,iBACC,kBZ8ZJ,CY3ZG,mBACC,wBZ6ZJ,CY1ZG,kBACC,OZ4ZJ,CY/aG,YACC,aAAA,CACA,YAAA,CACA,aZibJ,CY9aG,iBACC,QZgbJ,CY7aG,iBACC,SZ+aJ,CY5aG,mBACC,eZ8aJ,CY3aG,kBACC,OZ6aJ,CYhcG,YACC,aAAA,CACA,qBAAA,CACA,sBZkcJ,CY/bG,iBACC,iBZicJ,CY9bG,iBACC,kBZgcJ,CY7bG,mBACC,wBZ+bJ,CY5bG,kBACC,OZ8bJ,CYjdG,YACC,aAAA,CACA,oBAAA,CACA,qBZmdJ,CYhdG,iBACC,gBZkdJ,CY/cG,iBACC,iBZidJ,CY9cG,mBACC,uBZgdJ,CY7cG,kBACC,OZ+cJ,CYxcG,YACC,YZ0cJ,CYvcG,cACC,SZycJ,CYtcG,cACC,UZwcJ,CYrcG,iBACC,SZucJ,CYpcG,iBACC,UZscJ,CYncG,mBACC,aZqcJ,CYlcG,kBACC,OZocJ,CW5ZA,yBC3FG,aACC,aAAA,CACA,aAAA,CACA,cZ0fF,CYvfC,kBACC,SZyfF,CYtfC,kBACC,UZwfF,CYrfC,oBACC,gBZufF,CYpfC,mBACC,QZsfF,CYzgBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ2gBF,CYxgBC,kBACC,iBZ0gBF,CYvgBC,kBACC,kBZygBF,CYtgBC,oBACC,wBZwgBF,CYrgBC,mBACC,QZugBF,CY1hBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ4hBF,CYzhBC,kBACC,iBZ2hBF,CYxhBC,kBACC,kBZ0hBF,CYvhBC,oBACC,wBZyhBF,CYthBC,mBACC,QZwhBF,CY3iBC,YACC,aAAA,CACA,YAAA,CACA,aZ6iBF,CY1iBC,iBACC,QZ4iBF,CYziBC,iBACC,SZ2iBF,CYxiBC,mBACC,eZ0iBF,CYviBC,kBACC,OZyiBF,CY5jBC,YACC,aAAA,CACA,qBAAA,CACA,sBZ8jBF,CY3jBC,iBACC,iBZ6jBF,CY1jBC,iBACC,kBZ4jBF,CYzjBC,mBACC,wBZ2jBF,CYxjBC,kBACC,OZ0jBF,CY7kBC,YACC,aAAA,CACA,qBAAA,CACA,sBZ+kBF,CY5kBC,iBACC,iBZ8kBF,CY3kBC,iBACC,kBZ6kBF,CY1kBC,mBACC,wBZ4kBF,CYzkBC,kBACC,OZ2kBF,CY9lBC,YACC,aAAA,CACA,YAAA,CACA,aZgmBF,CY7lBC,iBACC,QZ+lBF,CY5lBC,iBACC,SZ8lBF,CY3lBC,mBACC,eZ6lBF,CY1lBC,kBACC,OZ4lBF,CY/mBC,YACC,aAAA,CACA,qBAAA,CACA,sBZinBF,CY9mBC,iBACC,iBZgnBF,CY7mBC,iBACC,kBZ+mBF,CY5mBC,mBACC,wBZ8mBF,CY3mBC,kBACC,OZ6mBF,CYhoBC,YACC,aAAA,CACA,qBAAA,CACA,sBZkoBF,CY/nBC,iBACC,iBZioBF,CY9nBC,iBACC,kBZgoBF,CY7nBC,mBACC,wBZ+nBF,CY5nBC,kBACC,OZ8nBF,CYjpBC,YACC,aAAA,CACA,YAAA,CACA,aZmpBF,CYhpBC,iBACC,QZkpBF,CY/oBC,iBACC,SZipBF,CY9oBC,mBACC,eZgpBF,CY7oBC,kBACC,OZ+oBF,CYlqBC,YACC,aAAA,CACA,qBAAA,CACA,sBZoqBF,CYjqBC,iBACC,iBZmqBF,CYhqBC,iBACC,kBZkqBF,CY/pBC,mBACC,wBZiqBF,CY9pBC,kBACC,OZgqBF,CYnrBC,YACC,aAAA,CACA,oBAAA,CACA,qBZqrBF,CYlrBC,iBACC,gBZorBF,CYjrBC,iBACC,iBZmrBF,CYhrBC,mBACC,uBZkrBF,CY/qBC,kBACC,OZirBF,CY1qBC,YACC,YZ4qBF,CYzqBC,cACC,SZ2qBF,CYxqBC,cACC,UZ0qBF,CYvqBC,iBACC,SZyqBF,CYtqBC,iBACC,UZwqBF,CYrqBC,mBACC,aZuqBF,CYpqBC,kBACC,OZsqBF,CACF,CW3nBA,yBC/FG,aACC,aAAA,CACA,aAAA,CACA,cZ6tBF,CY1tBC,kBACC,SZ4tBF,CYztBC,kBACC,UZ2tBF,CYxtBC,oBACC,gBZ0tBF,CYvtBC,mBACC,QZytBF,CY5uBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ8uBF,CY3uBC,kBACC,iBZ6uBF,CY1uBC,kBACC,kBZ4uBF,CYzuBC,oBACC,wBZ2uBF,CYxuBC,mBACC,QZ0uBF,CY7vBC,aACC,aAAA,CACA,qBAAA,CACA,sBZ+vBF,CY5vBC,kBACC,iBZ8vBF,CY3vBC,kBACC,kBZ6vBF,CY1vBC,oBACC,wBZ4vBF,CYzvBC,mBACC,QZ2vBF,CY9wBC,YACC,aAAA,CACA,YAAA,CACA,aZgxBF,CY7wBC,iBACC,QZ+wBF,CY5wBC,iBACC,SZ8wBF,CY3wBC,mBACC,eZ6wBF,CY1wBC,kBACC,OZ4wBF,CY/xBC,YACC,aAAA,CACA,qBAAA,CACA,sBZiyBF,CY9xBC,iBACC,iBZgyBF,CY7xBC,iBACC,kBZ+xBF,CY5xBC,mBACC,wBZ8xBF,CY3xBC,kBACC,OZ6xBF,CYhzBC,YACC,aAAA,CACA,qBAAA,CACA,sBZkzBF,CY/yBC,iBACC,iBZizBF,CY9yBC,iBACC,kBZgzBF,CY7yBC,mBACC,wBZ+yBF,CY5yBC,kBACC,OZ8yBF,CYj0BC,YACC,aAAA,CACA,YAAA,CACA,aZm0BF,CYh0BC,iBACC,QZk0BF,CY/zBC,iBACC,SZi0BF,CY9zBC,mBACC,eZg0BF,CY7zBC,kBACC,OZ+zBF,CYl1BC,YACC,aAAA,CACA,qBAAA,CACA,sBZo1BF,CYj1BC,iBACC,iBZm1BF,CYh1BC,iBACC,kBZk1BF,CY/0BC,mBACC,wBZi1BF,CY90BC,kBACC,OZg1BF,CYn2BC,YACC,aAAA,CACA,qBAAA,CACA,sBZq2BF,CYl2BC,iBACC,iBZo2BF,CYj2BC,iBACC,kBZm2BF,CYh2BC,mBACC,wBZk2BF,CY/1BC,kBACC,OZi2BF,CYp3BC,YACC,aAAA,CACA,YAAA,CACA,aZs3BF,CYn3BC,iBACC,QZq3BF,CYl3BC,iBACC,SZo3BF,CYj3BC,mBACC,eZm3BF,CYh3BC,kBACC,OZk3BF,CYr4BC,YACC,aAAA,CACA,qBAAA,CACA,sBZu4BF,CYp4BC,iBACC,iBZs4BF,CYn4BC,iBACC,kBZq4BF,CYl4BC,mBACC,wBZo4BF,CYj4BC,kBACC,OZm4BF,CYt5BC,YACC,aAAA,CACA,oBAAA,CACA,qBZw5BF,CYr5BC,iBACC,gBZu5BF,CYp5BC,iBACC,iBZs5BF,CYn5BC,mBACC,uBZq5BF,CYl5BC,kBACC,OZo5BF,CY74BC,YACC,YZ+4BF,CY54BC,cACC,SZ84BF,CY34BC,cACC,UZ64BF,CY14BC,iBACC,SZ44BF,CYz4BC,iBACC,UZ24BF,CYx4BC,mBACC,aZ04BF,CYv4BC,kBACC,OZy4BF,CACF,CW11BA,0BCnGG,aACC,aAAA,CACA,aAAA,CACA,cZg8BF,CY77BC,kBACC,SZ+7BF,CY57BC,kBACC,UZ87BF,CY37BC,oBACC,gBZ67BF,CY17BC,mBACC,QZ47BF,CY/8BC,aACC,aAAA,CACA,qBAAA,CACA,sBZi9BF,CY98BC,kBACC,iBZg9BF,CY78BC,kBACC,kBZ+8BF,CY58BC,oBACC,wBZ88BF,CY38BC,mBACC,QZ68BF,CYh+BC,aACC,aAAA,CACA,qBAAA,CACA,sBZk+BF,CY/9BC,kBACC,iBZi+BF,CY99BC,kBACC,kBZg+BF,CY79BC,oBACC,wBZ+9BF,CY59BC,mBACC,QZ89BF,CYj/BC,YACC,aAAA,CACA,YAAA,CACA,aZm/BF,CYh/BC,iBACC,QZk/BF,CY/+BC,iBACC,SZi/BF,CY9+BC,mBACC,eZg/BF,CY7+BC,kBACC,OZ++BF,CYlgCC,YACC,aAAA,CACA,qBAAA,CACA,sBZogCF,CYjgCC,iBACC,iBZmgCF,CYhgCC,iBACC,kBZkgCF,CY//BC,mBACC,wBZigCF,CY9/BC,kBACC,OZggCF,CYnhCC,YACC,aAAA,CACA,qBAAA,CACA,sBZqhCF,CYlhCC,iBACC,iBZohCF,CYjhCC,iBACC,kBZmhCF,CYhhCC,mBACC,wBZkhCF,CY/gCC,kBACC,OZihCF,CYpiCC,YACC,aAAA,CACA,YAAA,CACA,aZsiCF,CYniCC,iBACC,QZqiCF,CYliCC,iBACC,SZoiCF,CYjiCC,mBACC,eZmiCF,CYhiCC,kBACC,OZkiCF,CYrjCC,YACC,aAAA,CACA,qBAAA,CACA,sBZujCF,CYpjCC,iBACC,iBZsjCF,CYnjCC,iBACC,kBZqjCF,CYljCC,mBACC,wBZojCF,CYjjCC,kBACC,OZmjCF,CYtkCC,YACC,aAAA,CACA,qBAAA,CACA,sBZwkCF,CYrkCC,iBACC,iBZukCF,CYpkCC,iBACC,kBZskCF,CYnkCC,mBACC,wBZqkCF,CYlkCC,kBACC,OZokCF,CYvlCC,YACC,aAAA,CACA,YAAA,CACA,aZylCF,CYtlCC,iBACC,QZwlCF,CYrlCC,iBACC,SZulCF,CYplCC,mBACC,eZslCF,CYnlCC,kBACC,OZqlCF,CYxmCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ0mCF,CYvmCC,iBACC,iBZymCF,CYtmCC,iBACC,kBZwmCF,CYrmCC,mBACC,wBZumCF,CYpmCC,kBACC,OZsmCF,CYznCC,YACC,aAAA,CACA,oBAAA,CACA,qBZ2nCF,CYxnCC,iBACC,gBZ0nCF,CYvnCC,iBACC,iBZynCF,CYtnCC,mBACC,uBZwnCF,CYrnCC,kBACC,OZunCF,CYhnCC,YACC,YZknCF,CY/mCC,cACC,SZinCF,CY9mCC,cACC,UZgnCF,CY7mCC,iBACC,SZ+mCF,CY5mCC,iBACC,UZ8mCF,CY3mCC,mBACC,aZ6mCF,CY1mCC,kBACC,OZ4mCF,CACF,CWzjCA,0BCvGG,aACC,aAAA,CACA,aAAA,CACA,cZmqCF,CYhqCC,kBACC,SZkqCF,CY/pCC,kBACC,UZiqCF,CY9pCC,oBACC,gBZgqCF,CY7pCC,mBACC,QZ+pCF,CYlrCC,aACC,aAAA,CACA,qBAAA,CACA,sBZorCF,CYjrCC,kBACC,iBZmrCF,CYhrCC,kBACC,kBZkrCF,CY/qCC,oBACC,wBZirCF,CY9qCC,mBACC,QZgrCF,CYnsCC,aACC,aAAA,CACA,qBAAA,CACA,sBZqsCF,CYlsCC,kBACC,iBZosCF,CYjsCC,kBACC,kBZmsCF,CYhsCC,oBACC,wBZksCF,CY/rCC,mBACC,QZisCF,CYptCC,YACC,aAAA,CACA,YAAA,CACA,aZstCF,CYntCC,iBACC,QZqtCF,CYltCC,iBACC,SZotCF,CYjtCC,mBACC,eZmtCF,CYhtCC,kBACC,OZktCF,CYruCC,YACC,aAAA,CACA,qBAAA,CACA,sBZuuCF,CYpuCC,iBACC,iBZsuCF,CYnuCC,iBACC,kBZquCF,CYluCC,mBACC,wBZouCF,CYjuCC,kBACC,OZmuCF,CYtvCC,YACC,aAAA,CACA,qBAAA,CACA,sBZwvCF,CYrvCC,iBACC,iBZuvCF,CYpvCC,iBACC,kBZsvCF,CYnvCC,mBACC,wBZqvCF,CYlvCC,kBACC,OZovCF,CYvwCC,YACC,aAAA,CACA,YAAA,CACA,aZywCF,CYtwCC,iBACC,QZwwCF,CYrwCC,iBACC,SZuwCF,CYpwCC,mBACC,eZswCF,CYnwCC,kBACC,OZqwCF,CYxxCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ0xCF,CYvxCC,iBACC,iBZyxCF,CYtxCC,iBACC,kBZwxCF,CYrxCC,mBACC,wBZuxCF,CYpxCC,kBACC,OZsxCF,CYzyCC,YACC,aAAA,CACA,qBAAA,CACA,sBZ2yCF,CYxyCC,iBACC,iBZ0yCF,CYvyCC,iBACC,kBZyyCF,CYtyCC,mBACC,wBZwyCF,CYryCC,kBACC,OZuyCF,CY1zCC,YACC,aAAA,CACA,YAAA,CACA,aZ4zCF,CYzzCC,iBACC,QZ2zCF,CYxzCC,iBACC,SZ0zCF,CYvzCC,mBACC,eZyzCF,CYtzCC,kBACC,OZwzCF,CY30CC,YACC,aAAA,CACA,qBAAA,CACA,sBZ60CF,CY10CC,iBACC,iBZ40CF,CYz0CC,iBACC,kBZ20CF,CYx0CC,mBACC,wBZ00CF,CYv0CC,kBACC,OZy0CF,CY51CC,YACC,aAAA,CACA,oBAAA,CACA,qBZ81CF,CY31CC,iBACC,gBZ61CF,CY11CC,iBACC,iBZ41CF,CYz1CC,mBACC,uBZ21CF,CYx1CC,kBACC,OZ01CF,CYn1CC,YACC,YZq1CF,CYl1CC,cACC,SZo1CF,CYj1CC,cACC,UZm1CF,CYh1CC,iBACC,SZk1CF,CY/0CC,iBACC,UZi1CF,CY90CC,mBACC,aZg1CF,CY70CC,kBACC,OZ+0CF,CACF,CWxxCA,0BC3GG,cACC,aAAA,CACA,aAAA,CACA,cZs4CF,CYn4CC,mBACC,SZq4CF,CYl4CC,mBACC,UZo4CF,CYj4CC,qBACC,gBZm4CF,CYh4CC,oBACC,QZk4CF,CYr5CC,cACC,aAAA,CACA,qBAAA,CACA,sBZu5CF,CYp5CC,mBACC,iBZs5CF,CYn5CC,mBACC,kBZq5CF,CYl5CC,qBACC,wBZo5CF,CYj5CC,oBACC,QZm5CF,CYt6CC,cACC,aAAA,CACA,qBAAA,CACA,sBZw6CF,CYr6CC,mBACC,iBZu6CF,CYp6CC,mBACC,kBZs6CF,CYn6CC,qBACC,wBZq6CF,CYl6CC,oBACC,QZo6CF,CYv7CC,aACC,aAAA,CACA,YAAA,CACA,aZy7CF,CYt7CC,kBACC,QZw7CF,CYr7CC,kBACC,SZu7CF,CYp7CC,oBACC,eZs7CF,CYn7CC,mBACC,OZq7CF,CYx8CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ08CF,CYv8CC,kBACC,iBZy8CF,CYt8CC,kBACC,kBZw8CF,CYr8CC,oBACC,wBZu8CF,CYp8CC,mBACC,OZs8CF,CYz9CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ29CF,CYx9CC,kBACC,iBZ09CF,CYv9CC,kBACC,kBZy9CF,CYt9CC,oBACC,wBZw9CF,CYr9CC,mBACC,OZu9CF,CY1+CC,aACC,aAAA,CACA,YAAA,CACA,aZ4+CF,CYz+CC,kBACC,QZ2+CF,CYx+CC,kBACC,SZ0+CF,CYv+CC,oBACC,eZy+CF,CYt+CC,mBACC,OZw+CF,CY3/CC,aACC,aAAA,CACA,qBAAA,CACA,sBZ6/CF,CY1/CC,kBACC,iBZ4/CF,CYz/CC,kBACC,kBZ2/CF,CYx/CC,oBACC,wBZ0/CF,CYv/CC,mBACC,OZy/CF,CY5gDC,aACC,aAAA,CACA,qBAAA,CACA,sBZ8gDF,CY3gDC,kBACC,iBZ6gDF,CY1gDC,kBACC,kBZ4gDF,CYzgDC,oBACC,wBZ2gDF,CYxgDC,mBACC,OZ0gDF,CY7hDC,aACC,aAAA,CACA,YAAA,CAC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YAAA,CACA,MAAA,CAEA,6BAAA,CACA,czBoBN,CyBjBI,uBAIE,MAAA,CAHA,eAAA,CACA,sBAAA,CACA,kBzBoBN,CyBhBK,sEAEG,kBAAA,CAEA,aAAA,CADA,wCzBkBR,CyBZI,iCACE,kCzBcN,CyBZM,uCACE,mDzBcR,CyBXM,wCACE,oDzBaR,CyBVO,0DAEC,4CAAA,CADA,2BzBaR,CyBVQ,gEACE,mDzBYV,CyBTQ,iEACE,oDzBWV,CyBPO,4DACC,mCzBSR,CyBPQ,kEACE,mDzBSV,CyBJQ,gEACE,4CAAA,CACA,2BzBMV,CyBDI,iCACE,6BzBGN,CyBDM,uCACE,mDzBGR,CyBAM,wCACE,oDzBER,CyBCO,0DACC,8CzBCR,CyBCQ,gEACE,mDzBCV,CyBEQ,iEACE,oDzBAV,CyBIO,2DACC,mCzBFR,CyBIQ,iEACE,mDzBFV,CyBOQ,gEACE,8CzBLV,CyBUI,+BACE,2BzBRN,CyBUM,qCACE,mDzBRR,CyBWM,sCACE,oDzBTR,CyBYO,wDACC,4CzBVR,CyBYQ,8DACE,mDzBVV,CyBaQ,+DACE,oDzBXV,CyBeO,0DACC,mCzBbR,CyBeQ,gEACE,mDzBbV,CyBkBQ,8DACE,4CzBhBV,CyBsBI,iCACE,6BzBpBN,CyBsBM,uCACE,mDzBpBR,CyBuBM,wCACE,oDzBrBR,CyBwBO,0DACC,8CzBtBR,CyBwBQ,gEACE,mDzBtBV,CyByBQ,iEACE,oDzBvBV,CyB2BO,4DACC,mCzBzBR,CyB2BQ,kEACE,mDzBzBV,CyB8BQ,gEACE,8CzB5BV,C0BnQC,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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CAKG,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,C8BtHK,wDAEG,yC9BuHR,C8BpHK,wDAEG,yC9BqHR,C8BvIK,0CAKC,kBAAA,CADA,YAAA,CAFA,WAAA,CACA,iBAAA,CAFA,S9B6IN,C8BtIK,+CACC,wC9BwIN,C8BtIK,wDAEG,yC9BuIR,C8BpIK,wDAEG,yC9BqIR,CiCxOC,gCA+GG,cjC4HJ,CiCxHG,kBAEC,8BAAA,CADA,6BAAA,CAEA,6DjC0HJ,CiCvHG,kBAEC,8BAAA,CADA,6BjC0HJ,CiCpPC,oEAiIK,iBjCuHN,CiCxPC,kCAuIK,sCjCoHN,CiCjHI,sCACE,oCjCmHN,CiC9PC,kCAiJK,sCAAA,CACA,yBjCgHN,CiC9GM,wCACE,oCAAA,CACA,yBjCgHR,CiC5GI,sCACE,mCjC8GN,CiCzGG,2JAUK,2BjCsGR,CiChGC,eAGC,mBAAA,CADA,mBAAA,CADA,iBjCoGF,CiCrGC,8BAMG,ejCkGJ,CiChGI,0CACE,mEjCkGN,CiC/FI,yCACE,mEjCiGN,CiC9GC,kDAmBG,ejC+FJ,CiCxFI,+IAEI,gBjC6FR,CiCzFI,mDAEI,mEjC0FR,CiCtFI,kDAEI,mEjCuFR,CiChFI,0EACE,mEjCmFN,CiChFI,wEACE,mEjCmFN,CiC/EE,uDAEI,sCjCgFN,CiClFE,sEAOI,sCjC+EN,CiC7EM,8FACE,mEjCgFR,CiC7EM,4FACE,mEjCgFR,CiCpEQ,0KACE,sCjC4EV,CiC/JC,iFA4FG,iBAAA,CACA,SjCwEJ,CiCtEI,4SAGE,SjC8EN,CiCzEC,eACC,UjC2EF,CiCxEC,eAGC,8BAAA,CAFA,WAAA,CACA,2CAAA,CAEA,iBjC0EF,CiCvEC,wBACC,sCjCyEF,CiCtEC,wBACC,6BjCwEF,CiCrEC,wBACC,6BjCuEF,CiCpEC,sBAC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A,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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S,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,CAL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A,oBEwGF,CACF,CFrGE,qCAEE,UAAA,CADA,SEwGJ,CFpGE,2CAEE,2BAAA,CACA,0CAAA,CAFA,0BAAA,CAGA,kBEsGJ,CFlGE,sHAEE,gDEoGJ,CyFdE,qBAEE,qBAAA,CADA,6DzFiBJ,CyFzEC,iBA6DG,wCzFeJ,CyF5EC,eAmEG,gBAAA,CADA,UzFcJ,CyFhFC,0BzDlDC,gBAAA,CyDyHE,6CAAA,CzDxHF,eAAA,CACA,sBAAA,CAHA,kBhC0IF,CyFvFC,wBAmFG,wBAAA,CAJA,kDAAA,CAKA,qBAAA,CAHA,eAAA,CADA,6CAAA,CAEA,wBAAA,CAJA,6DAAA,CADA,iBAAA,CAQA,ezFcJ,CyFnGC,6BA0FG,QAAA,CADA,SAAA,CAEA,iBzFaJ,CyFxGC,8BAgGG,sCzFYJ,CyF5GC,4BAoGG,8CzFWJ,CyFNK,kDACC,ezFSN,CyFNK,oDACC,gBzFSN,CyFNK,sDACC,iBzFSN,CyF3HC,YAuHG,6CzFOJ,CyFHG,0CAGG,6DzFIN,CyFCG,0CAGG,8DzFAN,CyFtIC,mEA4IG,SzFFJ,CyF1IC,0EAmJG,QAAA,CADA,SzFHJ,CyF/IC,sCAwJG,QAAA,CACA,SAAA,CAFA,iBzFHJ,CyFpJC,gDA6JG,qBzFNJ,CyFvJC,8EAmKK,czFRN,CyFaE,4CAGI,gDzFZN,CyFeQ,wHACE,iDzFZV,CyFwBI,+IAEI,mBzFnBR,CyFFE,qCA0BI,gDzFrBN,CyFwBM,+DACE,4BzFtBR,CyFRE,qCAoCI,2CAAA,CACA,sCzFzBN,CyFZE,qCAyCI,kDzF1BN,CyFfE,wCA8CI,6DzF5BN,CyFlBE,iEAkDI,SzF7BN,CyFiCK,4DAGG,kDzFjCR,CyF8CI,mIAGI,kBzF1CR,CyFoDI,qNAEI,sDzFhDR,CyF4DM,qNAEI,4DzFxDV,CyF8CK,sEAgBK,sCzF3DV,CyF6DU,4EACE,mDzF3DZ,CyFmEE,6BAGM,sCzFnER,CyFqEQ,mCACE,mDzFnEV,CyF0EG,qCAGK,kBzF1ER,CyFlOC,mCAmTG,sDzF9EJ,CyFmFE,8BAEI,kBzFlFN,CyFgFE,sDAOI,wBzFnFN,CyFsFK,iFAGC,iBAAA,CADA,iBAAA,CAEA,SzFpFN,CFtSE,4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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,null]} \ No newline at end of file diff --git a/docs/assets/js/modules/tdesign.min.js b/docs/assets/js/modules/tdesign.min.js index 1f1698d..373f69b 100644 --- a/docs/assets/js/modules/tdesign.min.js +++ b/docs/assets/js/modules/tdesign.min.js @@ -1,15 +1,15 @@ /** - * tdesign v1.15.5 + * tdesign v1.16.1 * (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 je(e){return null!=e&&Se(e.length)&&!H(e)}function ke(e,t,n){if(!E(n))return!1;var r=u(t);return!!("number"==r?je(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,Mt=Object.prototype,It=Tt.toString,At=Mt.hasOwnProperty,Bt=It.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&&It.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+"]",Sn="(?:"+wn+"|"+On+")",jn="(?:"+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("|")+")",jn+"+"+Nn+"(?="+[gn,Pn+Sn,"$"].join("|")+")",Pn+"?"+Sn+"+"+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 Mn=RegExp("['\u2019]","g");function In(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)&&je(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=S(u),p=!f&&Le(u),m=!f&&!p&&$e(u);d=u,f||p||m?S(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)||Me(u)?(d=i,Me(i)?d=Oe(s=i,rt(s)):E(i)&&!H(i)||(d=jr(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}var Do=Math.max,Eo=Math.min;function Fo(e,t,n){return t=L(t),void 0===n?(n=t,t=0):n=L(n),function(e,t,n){return e>=Eo(t,n)&&e=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=Mr(n,7,oa));for(var o=t.length;o--;)ra(n,t[o]);return n}),la=aa;function ia(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=ca(t/2))&&(e+=e)}while(t);return n}var da=ro("length"),va="\\ud800-\\udfff",fa="["+va+"]",pa="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",ma="\\ud83c[\\udffb-\\udfff]",ha="[^"+va+"]",ga="(?:\\ud83c[\\udde6-\\uddff]){2}",ya="[\\ud800-\\udbff][\\udc00-\\udfff]",ba="(?:"+pa+"|"+ma+")"+"?",wa="[\\ufe0e\\ufe0f]?",Oa=wa+ba+("(?:\\u200d(?:"+[ha,ga,ya].join("|")+")"+wa+ba+")*"),Ca="(?:"+[ha+pa+"?",pa,ga,ya,fa].join("|")+")",xa=RegExp(ma+"(?="+ma+")|"+Ca+Oa,"g");function Pa(e){return Wt(e)?function(e){for(var t=xa.lastIndex=0;xa.test(e);)++t;return t}(e):da(e)}var Sa=Math.ceil;function ja(e,t,n){e=Ct(e);var r=(t=R(t))?Pa(e):0;return t&&r=200){var c=t?null:Ba(e);if(c)return Hr(c);l=!1,o=Lr,u=new Ar}else u=t?[]:i;e:for(;++r-1}function pl(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 To(e)?document.querySelector(e):H(e)?e():e};function yl(e){return e&&e===e.window}function bl(e,t){if(sl||!e)return 0;var n=t?"scrollLeft":"scrollTop",r=0;return yl(e)?r=e[t?"pageXOffset":"pageYOffset"]:e instanceof Document?r=e.documentElement[n]:e&&(r=e[n]),r}function wl(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?cl:l,u=bl(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);yl(r)?r.scrollTo(window.pageXOffset,l):r instanceof Document||"HTMLDocument"===r.constructor.name?r.documentElement.scrollTop=l:r.scrollTop=l,ul(on},Cl=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 xl(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 Pl(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 Sl(e){var t=e.parentNode;return!(!t||"HTML"===t.nodeName)&&("fixed"===Pl(e,"position")||Sl(t))}function jl(){var e=document.body,t=document.documentElement;return{scrollTop:window.pageYOffset||t.scrollTop||e.scrollTop,scrollLeft:window.pageXOffset||t.scrollLeft||e.scrollLeft}}var kl=function(e){return t.isVNode(e)&&e.type===t.Comment};function Nl(e,t,n){var r=e;return r.install=function(o,a){o.component(t||a||r.name,e),n&&o.directive(n.name,n.comp)},r}function _l(e){var n;return E(e)&&"defaultNode"in e?n=e.defaultNode:(t.isVNode(e)||To(e))&&(n=e),n}function Vl(e){var n=[],r=function(e){if(S(e))return e.forEach(function(e){if(e.children&&S(e.children)){if(e.type!==t.Fragment)return;r(e.children)}else n.push(e)}),n};return r(e)}function Dl(e){return E(e)&&"params"in e?e.params:{}}function El(){var e=t.getCurrentInstance();return function(t,n){var r,o;return n||(n=e.slots),Vl((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 Fl(){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&&S(e.children)&&e.type===t.Fragment?e.children:e}).flat()}}function Tl(){return function e(n){var r=[];return n.forEach(function(n){t.isVNode(n)&&n.type===t.Fragment&&Array.isArray(n.children)?r.push.apply(r,i(e(n.children))):t.isVNode(n)&&[t.Teleport,t.Comment].some(function(e){return e===n.type})||r.push(n)}),r}}var Ml=Object.prototype.hasOwnProperty,Il=function(e,t){return Ml.call(e,t)},Al=function(e,t){return Il(e,t)?e[t]:void 0};function Bl(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!kl(e)}).length||(i=null===(a=(l=e.slots)[Xo(t)])||void 0===a?void 0:a.call(l,n))&&i.filter(function(e){return!kl(e)}).length?i:null}function Ll(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 Rl=function(){var e=t.getCurrentInstance();return function(n,r){var o=Dl(r),a=_l(r),l=function(e){return!(!E(e)||!("slotFirst"in e))&&e.slotFirst}(r),i=e.slots[Bn(n)]||e.slots[Xo(n)];if(l&&i)return Bl(e,n,o);if(function(e,t){var n=(null==e?void 0:e.vnode.props)||{};return Il(n,Bn(t))||Il(n,Xo(t))}(e,n)){var u,c=e.props[Bn(n)]||e.props[Xo(n)],s=null===(u=e.type.props[n])||void 0===u?void 0:u.type;if((null==s?void 0:s.length)>1&&s.includes(Boolean)&&s.includes(Function)&&""===c&&!i)return a;if(!1===c||null===c)return;return!0===c?Bl(e,n,o)||a:H(c)?c(t.h,o):[void 0,""].includes(c)&&i?Bl(e,n,o):c}if(i)return Bl(e,n,o);var d=e.props[Bn(n)]||e.props[Xo(n)];return!1!==d&&null!==d?!0===d?a:H(d)?d(t.h,o):d:void 0}},zl=function(){var e=Rl();return function(t,n){var r=_l(n);return e(t,n)||r}},Hl=function(){var e=Rl();return function(t,n,r){var o=Dl(r),a=_l(r),l=o?{params:o}:void 0,i=e(t,l),u=e(n,l),c=Ll(i)?u:i;return Ll(c)?a:c}};var Wl={exports:{}},Kl={exports:{}};!function(e){e.exports=function(){var e=1e3,t=6e4,n=36e5,r="millisecond",o="second",a="minute",l="hour",i="day",c="week",s="month",d="quarter",v="year",f="date",p="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|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,g={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(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},y=function(e,t,n){var r=String(e);return!r||r.length>=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},S=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)},j=b;j.l=P,j.i=x,j.w=function(e,t){return S(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(j.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 j},g.isValid=function(){return!(this.$d.toString()===p)},g.isSame=function(e,t){var n=S(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return S(e)1?o-1:0),l=1;l0){var i=a[0],c=a[1];"number"==typeof i?(t=i,c&&"object"===u(c)?r=c:r.count=t):"object"===u(i)&&null!==i&&(r=i)}if(n.includes("|")){var s=n.split("|").map(function(e){return e.trim()});if("number"==typeof t){var d=function(e){return 0===e?0:1===e?1:2}(t);n=d0){n=n.replace(/\{\s*([\w-]+)\s*\}/g,function(e,t){return Object.prototype.hasOwnProperty.call(r,t)?String(r[t]):e})}return n}return""}var Gl=t.ref();function Jl(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,n=arguments.length>1?arguments[1]:void 0,r=t.getCurrentInstance()?t.inject(ql,null):Gl,o=t.computed(function(){return(null==r?void 0:r.value)||Zl}),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;o1?t-1:0),a=1;a1?t-1:0),o=1;o=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 li(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&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 Si(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;r1)||n===Array.from(t.popupStack[e]).pop()}),s(this,"getLastZIndex",function(){return t.zIndexStack[t.zIndexStack.length-1]})}),Bi=new Ai;function Li(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=Bi.add(e)},i=function(){Bi.delete(a.value,e)};return t.watch(function(){return null==r?void 0:r.value},function(e){e?l():i()},{immediate:!0}),o&&(t.onMounted(function(){l()}),t.onBeforeUnmount(function(){i()})),{zIndex:t.readonly(a),open:l,close:i,isTopInteractivePopup:function(){return!!Ii.includes(e)&&Bi.isTopInteractivePopup(e,a.value)}}}function Ri(e){var n=t.getCurrentInstance(),r=t.computed(function(){return n.props.readonly}),o=t.inject("formReadonly",Object.create(null));return t.computed(function(){var t,n,a;return Lo(null==e||null===(t=e.beforeReadonly)||void 0===t?void 0:t.value)?e.beforeReadonly.value:Lo(null==r?void 0:r.value)?r.value:Lo(null==e||null===(n=e.afterReadonly)||void 0===n?void 0:n.value)?e.afterReadonly.value:!!Lo(null===(a=o.readonly)||void 0===a?void 0:a.value)&&o.readonly.value})}function zi(e,n){if("undefined"!=typeof window&&(window&&window.ResizeObserver)){var r=null,o=function(){r&&e.value&&(r.unobserve(e.value),r.disconnect(),r=null)};e&&t.watch(e,function(e){o(),e&&function(e){(r=new ResizeObserver(n)).observe(e)}(e)},{immediate:!0,flush:"post"}),t.onBeforeUnmount(function(){o()})}}function Hi(e,t){Object.keys(t).forEach(function(n){e.style[n]=t[n]})}function Wi(e,n){var r,o,a=t.ref(null),l=ei(),i=(r=Jl("animation").globalConfig,{keepExpand:(o=function(e){var t,n,o=r.value;return o&&!(null!==(t=o.exclude)&&void 0!==t&&t.includes(e))&&(null===(n=o.include)||void 0===n?void 0:n.includes(e))})(_i),keepRipple:o(Vi),keepFade:o(Di)}).keepRipple,u=function(t){var r=e.value,o=function(e,t){var n;if(t)return t;if(null!=e&&null!==(n=e.dataset)&&void 0!==n&&n.ripple)return e.dataset.ripple;var r=getComputedStyle(e).getPropertyValue("--ripple-color");return r||"rgba(0, 0, 0, 0.35)"}(r,null==n?void 0:n.value);if(0===t.button&&e&&i&&!(r.classList.contains("".concat(l.value,"-is-active"))||r.classList.contains("".concat(l.value,"-is-disabled"))||r.classList.contains("".concat(l.value,"-is-checked"))||r.classList.contains("".concat(l.value,"-is-loading")))){var u=getComputedStyle(r),c=parseInt(u.borderWidth,10),s=c>0?c:0,d=r.offsetWidth,v=r.offsetHeight;null===a.value.parentNode&&(Hi(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");Hi(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;h4&&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,Xo(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;ro&&-1===u&&(u=p)-f.value.bufferSize>0&&(i=v-g-Ia(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=Qo([u-f.value.bufferSize,0]);return{startIndex:y,endIndex:na([d+f.value.bufferSize,n.value.data.length]),translateY:i-Ia(c.slice(0,Math.min(y,a)))}}(),r=t.startIndex,o=t.endIndex,i=t.translateY,u=Ya(f.value.fixedRows,2),d=u[0],p=u[1],m=d?n.value.data.slice(0,d):[];d&&r0&&(h=h.slice(g)),v.value.join()!==[r,o].join()&&r>=0&&(l.value=i,a.value=m.concat(n.value.data.slice(r,o),h),v.value=[r,o])},100),h=function(t){var n=t.index,r=t.top,o=void 0===r?0:r,a=t.behavior,l=Ia(c.slice(0,n+1))-o;e.value.scrollTo({top:l,behavior:a||"auto"})};return zi(t.computed(function(){return p.value?e.value:void 0}),function(t){var r=Ya(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=Ia(c),v.value=[0,0],m()}},{immediate:!0}),t.watch(function(){return s.value},function(){m()}),{visibleData:a,translateY:l,scrollHeight:u,isVirtualScroll:p,handleScroll:function(){p.value&&m()},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(h(e),!f.value.isFixedRowHeight)var t,n=null!==(t=e.time)&&void 0!==t?t:60,r=setTimeout(function(){h(e),clearTimeout(r)},n)}}}function qi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Xi(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:Gi,o=t.ref(Xi(Xi({},Gi),r)),a=null,l=function(){var t;if(e){var r=o.value,l=r.debounceTime,i=void 0===l?0:l,u=r.config,c=void 0===u?Gi.config:u,s=function(){for(var e=arguments.length,t=new Array(e),r=0;r0?po(s,i):s)).observe(e,c)}};t.watch(function(){return r},function(e){Ko(e,o.value)||(o.value=Xi(Xi({},Gi),e),l())},{deep:!0}),t.onMounted(l),t.onBeforeUnmount(function(){var e;return null===(e=a)||void 0===e?void 0:e.disconnect()})}(null===(n=document)||void 0===n?void 0:n.documentElement,function(t){t.some(function(t){return"attributes"===t.type&&"theme-mode"===t.attributeName&&(To(e)||Array.isArray(e)?o.forEach(function(e){r[e].value=cu(e)}):Object.entries(e).forEach(function(e){var t=Ya(e,2),n=t[0],o=t[1];r[n].value=cu(o)}),!0)})}),r}function du(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r-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 hu(e,t){var n=Uo(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 gu(e){return Uo(e)?"".concat(e,"px"):e}var yu=["padding-top","padding-bottom","padding-left","padding-right","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","border-width","box-sizing","line-height","letter-spacing"];function bu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wu(e){for(var t=1;t11){var v=l.match(/[\d.]+/g),f=v?"rgba(".concat(v[0],", ").concat(v[1],", ").concat(v[2],", 0)"):"";Hi(e,wu(wu({},o),{},{background:"conic-gradient(from 90deg at 50% 50%,".concat(f," 0deg, ").concat(l," 360deg)")}))}else Hi(e,wu(wu({},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)])])}}}),Cu={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}},xu=t.defineComponent({name:"TLoading",inheritAttrs:!1,props:Cu,setup:function(e,n){var r=n.slots,o=n.attrs,a=t.ref(!1),l={name:ei("loading"),centerClass:ei("loading--center"),fullscreenClass:ei("loading__fullscreen"),lockClass:ei("loading--lock"),overlayClass:ei("loading__overlay"),relativeClass:ei("loading__parent"),fullClass:ei("loading--full"),inheritColorClass:ei("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=ei(),g=Rl(),y=Hl(),b=ti().SIZE,w=function(){a.value=!1;var t=setTimeout(function(){a.value=!0,clearTimeout(t)},e.delay)},O=Ki(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)}),S=t.computed(function(){return e.preventScrollThrough&&e.fullscreen}),j=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,Al(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){Ya(e,1)[0]?(w(),S.value&&pl(document.body,d.value)):S.value&&ml(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(Ou,{size:e.size},null),s=D.value&&g("indicator",c),d=j.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}}}),Pu=null;function Su(e,n){var r=function(e){return ta({fullscreen:!1,attach:"body",loading:!0,preventScrollThrough:!0},e)}(e);if(r.fullscreen&&Pu)return Pu;var o=t.defineComponent({setup:function(){var e=t.reactive(r);return function(){return t.h(xu,e)}}}),a=hl(r.fullscreen?"body":r.attach),l=t.createVNode(o);(null!=n?n:ku._context)&&(l.appContext=null!=n?n:ku._context);var i=document.createElement("div");t.render(l,i);var u=ei("loading__parent--relative").value,c=ei("loading--lock");return r.preventScrollThrough&&r.fullscreen&&pl(document.body,c.value),a?pl(a,u):console.error("attach is not exist"),{hide:function(){ml(a,u),ml(document.body,c.value),t.render(null,i),i.remove()}}}function ju(e,t){return!0===e?Pu=Su({fullscreen:!0,loading:!0,attach:"body",preventScrollThrough:!0},t):!1===e?(null===(n=Pu)||void 0===n||n.hide(),void(Pu=null)):Su(e);var n}var ku=ju;ku.install=function(e){e.config.globalProperties.$loading=ju,ku._context=e._context};var Nu=Symbol("TdLoading"),_u=function(e,t){var n=t.modifiers,r=n.fullscreen,o=n.inheritColor,a={attach:function(){return e},fullscreen:null!=r&&r,inheritColor:null!=o&&o,loading:t.value};E(t.value)&&function(e,t){var n={};t=ao(t),uo(e,function(e,r,o){ge(n,t(e,r,o),e)})}(t.value,function(e,t){a[t]=e}),e[Nu]={options:a,instance:ku(a)}},Vu={mounted:function(e,t){t.value&&_u(e,t)},updated:function(e,t){var n,r=e[Nu],o=t.value;Ko(o,t.oldValue)||((null!==(n=null==o?void 0:o.loading)&&void 0!==n?n:o)?_u(e,t):null==r||r.instance.hide())},unmounted:function(e){var t;null===(t=e[Nu])||void 0===t||t.instance.hide()}},Du=Nl(xu,xu.name,{name:"loading",comp:Vu}),Eu={block:Boolean,content:{type:[String,Function]},default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},form:{type:String,default:void 0},ghost:Boolean,href:{type:String,default:""},icon:{type:Function},loading:Boolean,loadingProps:{type:Object},shape:{type:String,default:"rectangle",validator:function(e){return!e||["rectangle","square","round","circle"].includes(e)}},size:{type:String,default:"medium",validator:function(e){return!e||["extra-small","small","medium","large"].includes(e)}},suffix:{type:Function},tag:{type:String,validator:function(e){return!e||["button","a","div"].includes(e)}},theme:{type:String,validator:function(e){return!e||["default","primary","danger","warning","success"].includes(e)}},type:{type:String,default:"button",validator:function(e){return!e||["submit","reset","button"].includes(e)}},variant:{type:String,default:"base",validator:function(e){return!e||["base","outline","dashed","text"].includes(e)}},onClick:Function};function Fu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Tu(e){for(var t=1;t0)){var n=document.createElement("script");n.setAttribute("class",t),n.setAttribute("src",e),document.body.appendChild(n)}}(e,"".concat(Qf,"-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"),tp={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},np=t.defineComponent({name:"TLink",props:tp,emits:["click"],setup:function(e,n){var r=n.emit,o=Hl(),a=Rl(),l=ei("link"),u=ti(),c=u.STATUS,d=u.SIZE,v=Jl("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])}}}),rp=Nl(np),op={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"}},ap=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 lp(){var e=t.ref(ap(sl?0:window.innerWidth));return Ei("resize",function(){e.value=ap(sl?0:window.innerWidth)}),e}function ip(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function up(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 up(s(s(s(s(s(s({},"".concat(e),!0),"".concat(e,"-").concat(n),!Zo(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 Uo(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){Uo(e)&&l(e)},isArray:function(e){S(e)&&e.length&&(Uo(e[0])&&l(e[0]),E(e[0])&&e[0][n]&&l(e[0][n]))},isObject:function(e){E(e)&&!S(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]}})}}}),vp=Nl(cp),fp=Nl(dp),pp=t.defineComponent({name:"TLayout",setup:function(){var e=t.ref(!1),n=Rl(),r=ei("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")])}}}),mp={height:{type:String,default:""}},hp=t.defineComponent({name:"THeader",props:mp,setup:function(e){var n=ei("layout__header"),r=Rl();return function(){return t.createVNode("header",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),gp={height:{type:String,default:""}},yp=t.defineComponent({name:"TFooter",props:gp,setup:function(e){var n=ei("layout__footer"),r=Rl();return function(){return t.createVNode("footer",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),bp={width:{type:String,default:""}},wp=t.defineComponent({name:"TAside",props:bp,setup:function(e){var n=t.inject("layout",Object.create(null)).hasSide,r=ei("layout__sider"),o=Rl();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")])}}}),Op={content:{type:[String,Function]},default:{type:[String,Function]}},Cp=t.defineComponent({name:"TContent",props:Op,setup:function(){var e=ei("layout__content"),n=Hl();return function(){return t.createVNode("main",{class:e.value},[n("default","content")])}}}),xp=Nl(wp),Pp=Nl(pp),Sp=Nl(hp),jp=Nl(yp),kp=Nl(Cp),Np={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)}}},_p=t.defineComponent({name:"TDivider",props:Np,setup:function(e){var n=ei("divider"),r=Hl();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])])}}}),Vp=Nl(_p),Dp={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 Ep(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Fp(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return To(e)?e:H(e)?e(t.h,n):H(null==e?void 0:e.render)?e.render(t.h,n):e}function Hp(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 Wp(e,t){return e===Rp.props}var Kp=t.defineComponent({name:"TDescriptionsRow",props:{row:Array,itemType:String},setup:function(e){var n=t.inject(Lp),r=ei("descriptions"),o=Jl("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;Wp(e.itemType)?(c=i.label,s=i.span):(c=Hp(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;Wp(e.itemType)?(u=o.content,c=o.span):(u=Hp(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)])])})])])}}}),Up=t.defineComponent({name:"TDescriptions",props:Bp,setup:function(e){var n=ei("descriptions"),r=ti().SIZE,o=El(),a=Rl(),l=t.ref(Rp.props),i=function(){var t=e.column,n=e.layout,r=[];if(S(e.items))r=e.items.map(function(e){return{label:zp(e.label),content:zp(e.content),span:e.span||1}}),l.value=Rp.props;else{var a=o("TDescriptionsItem");0!==a.length&&(r=a,l.value=Rp.slots)}if("vertical"===n)return[r];var i=[],u=t,c=[];return r.forEach(function(e,n){var o,a=1;Wp(l.value)?a=(a=Yo(e.span)?a:e.span)>t?t:a:(e.props=e.props||{},a=(a=Yo(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&&(Wp(l.value)?e.span+=u:e.props.span+=u,c.push(i))}),c};t.provide(Lp,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(Kp,{"item-type":l.value,row:e},null)})])]))]);var o,u}}}),Yp={content:{type:[String,Function]},default:{type:[String,Function]},label:{type:[String,Function]},span:{type:Number,default:1}},$p=t.defineComponent({name:"TDescriptionsItem",props:Yp}),Zp=Nl(Up),qp=Nl($p);function Xp(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 Gp(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function l(e){Xp(a,r,o,l,i,"next",e)}function i(e){Xp(a,r,o,l,i,"throw",e)}l(void 0)})}}var Jp={exports:{}},Qp={exports:{}};!function(e){e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports}(Qp);var em=Qp.exports,tm={exports:{}},nm={exports:{}};!function(e){function t(n,r,o,a){var l=Object.defineProperty;try{l({},"",{})}catch(n){l=0}e.exports=t=function(e,n,r,o){if(n)l?l(e,n,{value:r,enumerable:!o,configurable:!o,writable:!o}):e[n]=r;else{var a=function(n,r){t(e,n,function(e){return this._invoke(n,r,e)})};a("next",0),a("throw",1),a("return",2)}},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r,o,a)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(nm);var rm=nm.exports;!function(e){var t=rm;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=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 je(e){return null!=e&&Se(e.length)&&!H(e)}function ke(e,t,n){if(!E(n))return!1;var r=u(t);return!!("number"==r?je(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,Mt=Object.prototype,It=Tt.toString,At=Mt.hasOwnProperty,Bt=It.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&&It.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+"]",Sn="(?:"+wn+"|"+On+")",jn="(?:"+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("|")+")",jn+"+"+Nn+"(?="+[gn,Pn+Sn,"$"].join("|")+")",Pn+"?"+Sn+"+"+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 Mn=RegExp("['\u2019]","g");function In(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)&&je(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=S(u),p=!f&&Le(u),m=!f&&!p&&$e(u);d=u,f||p||m?S(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)||Me(u)?(d=i,Me(i)?d=Oe(s=i,rt(s)):E(i)&&!H(i)||(d=jr(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}var Do=Math.max,Eo=Math.min;function Fo(e,t,n){return t=L(t),void 0===n?(n=t,t=0):n=L(n),function(e,t,n){return e>=Eo(t,n)&&e=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=Mr(n,7,oa));for(var o=t.length;o--;)ra(n,t[o]);return n}),la=aa;function ia(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=ca(t/2))&&(e+=e)}while(t);return n}var da=ro("length"),va="\\ud800-\\udfff",fa="["+va+"]",pa="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",ma="\\ud83c[\\udffb-\\udfff]",ha="[^"+va+"]",ga="(?:\\ud83c[\\udde6-\\uddff]){2}",ya="[\\ud800-\\udbff][\\udc00-\\udfff]",ba="(?:"+pa+"|"+ma+")"+"?",wa="[\\ufe0e\\ufe0f]?",Oa=wa+ba+("(?:\\u200d(?:"+[ha,ga,ya].join("|")+")"+wa+ba+")*"),Ca="(?:"+[ha+pa+"?",pa,ga,ya,fa].join("|")+")",xa=RegExp(ma+"(?="+ma+")|"+Ca+Oa,"g");function Pa(e){return Wt(e)?function(e){for(var t=xa.lastIndex=0;xa.test(e);)++t;return t}(e):da(e)}var Sa=Math.ceil;function ja(e,t,n){e=Ct(e);var r=(t=R(t))?Pa(e):0;return t&&r=200){var c=t?null:Ba(e);if(c)return Hr(c);l=!1,o=Lr,u=new Ar}else u=t?[]:i;e:for(;++r-1}function pl(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 To(e)?document.querySelector(e):H(e)?e():e};function yl(e){return e&&e===e.window}function bl(e,t){if(sl||!e)return 0;var n=t?"scrollLeft":"scrollTop",r=0;return yl(e)?r=e[t?"pageXOffset":"pageYOffset"]:e instanceof Document?r=e.documentElement[n]:e&&(r=e[n]),r}function wl(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?cl:l,u=bl(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);yl(r)?r.scrollTo(window.pageXOffset,l):r instanceof Document||"HTMLDocument"===r.constructor.name?r.documentElement.scrollTop=l:r.scrollTop=l,ul(on},Cl=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 xl(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 Pl(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 Sl(e){var t=e.parentNode;return!(!t||"HTML"===t.nodeName)&&("fixed"===Pl(e,"position")||Sl(t))}function jl(){var e=document.body,t=document.documentElement;return{scrollTop:window.pageYOffset||t.scrollTop||e.scrollTop,scrollLeft:window.pageXOffset||t.scrollLeft||e.scrollLeft}}var kl=function(e){return t.isVNode(e)&&e.type===t.Comment};function Nl(e,t,n){var r=e;return r.install=function(o,a){o.component(t||a||r.name,e),n&&o.directive(n.name,n.comp)},r}function _l(e){var n;return E(e)&&"defaultNode"in e?n=e.defaultNode:(t.isVNode(e)||To(e))&&(n=e),n}function Vl(e){var n=[],r=function(e){if(S(e))return e.forEach(function(e){if(e.children&&S(e.children)){if(e.type!==t.Fragment)return;r(e.children)}else n.push(e)}),n};return r(e)}function Dl(e){return E(e)&&"params"in e?e.params:{}}function El(){var e=t.getCurrentInstance();return function(t,n){var r,o;return n||(n=e.slots),Vl((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 Fl(){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&&S(e.children)&&e.type===t.Fragment?e.children:e}).flat()}}function Tl(){return function e(n){var r=[];return n.forEach(function(n){t.isVNode(n)&&n.type===t.Fragment&&Array.isArray(n.children)?r.push.apply(r,i(e(n.children))):t.isVNode(n)&&[t.Teleport,t.Comment].some(function(e){return e===n.type})||r.push(n)}),r}}var Ml=Object.prototype.hasOwnProperty,Il=function(e,t){return Ml.call(e,t)},Al=function(e,t){return Il(e,t)?e[t]:void 0};function Bl(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!kl(e)}).length||(i=null===(a=(l=e.slots)[Xo(t)])||void 0===a?void 0:a.call(l,n))&&i.filter(function(e){return!kl(e)}).length?i:null}function Ll(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 Rl=function(){var e=t.getCurrentInstance();return function(n,r){var o=Dl(r),a=_l(r),l=function(e){return!(!E(e)||!("slotFirst"in e))&&e.slotFirst}(r),i=e.slots[Bn(n)]||e.slots[Xo(n)];if(l&&i)return Bl(e,n,o);if(function(e,t){var n=(null==e?void 0:e.vnode.props)||{};return Il(n,Bn(t))||Il(n,Xo(t))}(e,n)){var u,c=e.props[Bn(n)]||e.props[Xo(n)],s=null===(u=e.type.props[n])||void 0===u?void 0:u.type;if((null==s?void 0:s.length)>1&&s.includes(Boolean)&&s.includes(Function)&&""===c&&!i)return a;if(!1===c||null===c)return;return!0===c?Bl(e,n,o)||a:H(c)?c(t.h,o):[void 0,""].includes(c)&&i?Bl(e,n,o):c}if(i)return Bl(e,n,o);var d=e.props[Bn(n)]||e.props[Xo(n)];return!1!==d&&null!==d?!0===d?a:H(d)?d(t.h,o):d:void 0}},zl=function(){var e=Rl();return function(t,n){var r=_l(n);return e(t,n)||r}},Hl=function(){var e=Rl();return function(t,n,r){var o=Dl(r),a=_l(r),l=o?{params:o}:void 0,i=e(t,l),u=e(n,l),c=Ll(i)?u:i;return Ll(c)?a:c}};var Wl={exports:{}},Kl={exports:{}};!function(e){e.exports=function(){var e=1e3,t=6e4,n=36e5,r="millisecond",o="second",a="minute",l="hour",i="day",c="week",s="month",d="quarter",v="year",f="date",p="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|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,g={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(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},y=function(e,t,n){var r=String(e);return!r||r.length>=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},S=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)},j=b;j.l=P,j.i=x,j.w=function(e,t){return S(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(j.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 j},g.isValid=function(){return!(this.$d.toString()===p)},g.isSame=function(e,t){var n=S(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return S(e)1?o-1:0),l=1;l0){var i=a[0],c=a[1];"number"==typeof i?(t=i,c&&"object"===u(c)?r=c:r.count=t):"object"===u(i)&&null!==i&&(r=i)}if(n.includes("|")){var s=n.split("|").map(function(e){return e.trim()});if("number"==typeof t){var d=function(e){return 0===e?0:1===e?1:2}(t);n=d0){n=n.replace(/\{\s*([\w-]+)\s*\}/g,function(e,t){return Object.prototype.hasOwnProperty.call(r,t)?String(r[t]):e})}return n}return""}var Gl=t.ref();function Jl(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,n=arguments.length>1?arguments[1]:void 0,r=t.getCurrentInstance()?t.inject(ql,null):Gl,o=t.computed(function(){return(null==r?void 0:r.value)||Zl}),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;o1?t-1:0),a=1;a1?t-1:0),o=1;o=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 li(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&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 Si(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;r1)||n===Array.from(t.popupStack[e]).pop()}),s(this,"getLastZIndex",function(){return t.zIndexStack[t.zIndexStack.length-1]})}),Bi=new Ai;function Li(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=Bi.add(e)},i=function(){Bi.delete(a.value,e)};return t.watch(function(){return null==r?void 0:r.value},function(e){e?l():i()},{immediate:!0}),o&&(t.onMounted(function(){l()}),t.onBeforeUnmount(function(){i()})),{zIndex:t.readonly(a),open:l,close:i,isTopInteractivePopup:function(){return!!Ii.includes(e)&&Bi.isTopInteractivePopup(e,a.value)}}}function Ri(e){var n=t.getCurrentInstance(),r=t.computed(function(){return n.props.readonly}),o=t.inject("formReadonly",Object.create(null));return t.computed(function(){var t,n,a;return Lo(null==e||null===(t=e.beforeReadonly)||void 0===t?void 0:t.value)?e.beforeReadonly.value:Lo(null==r?void 0:r.value)?r.value:Lo(null==e||null===(n=e.afterReadonly)||void 0===n?void 0:n.value)?e.afterReadonly.value:!!Lo(null===(a=o.readonly)||void 0===a?void 0:a.value)&&o.readonly.value})}function zi(e,n){if("undefined"!=typeof window&&(window&&window.ResizeObserver)){var r=null,o=function(){r&&e.value&&(r.unobserve(e.value),r.disconnect(),r=null)};e&&t.watch(e,function(e){o(),e&&function(e){(r=new ResizeObserver(n)).observe(e)}(e)},{immediate:!0,flush:"post"}),t.onBeforeUnmount(function(){o()})}}function Hi(e,t){Object.keys(t).forEach(function(n){e.style[n]=t[n]})}function Wi(e,n){var r,o,a=t.ref(null),l=ei(),i=(r=Jl("animation").globalConfig,{keepExpand:(o=function(e){var t,n,o=r.value;return o&&!(null!==(t=o.exclude)&&void 0!==t&&t.includes(e))&&(null===(n=o.include)||void 0===n?void 0:n.includes(e))})(_i),keepRipple:o(Vi),keepFade:o(Di)}).keepRipple,u=function(t){var r=e.value,o=function(e,t){var n;if(t)return t;if(null!=e&&null!==(n=e.dataset)&&void 0!==n&&n.ripple)return e.dataset.ripple;var r=getComputedStyle(e).getPropertyValue("--ripple-color");return r||"rgba(0, 0, 0, 0.35)"}(r,null==n?void 0:n.value);if(0===t.button&&e&&i&&!(r.classList.contains("".concat(l.value,"-is-active"))||r.classList.contains("".concat(l.value,"-is-disabled"))||r.classList.contains("".concat(l.value,"-is-checked"))||r.classList.contains("".concat(l.value,"-is-loading")))){var u=getComputedStyle(r),c=parseInt(u.borderWidth,10),s=c>0?c:0,d=r.offsetWidth,v=r.offsetHeight;null===a.value.parentNode&&(Hi(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");Hi(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;h4&&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,Xo(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;ro&&-1===u&&(u=p)-f.value.bufferSize>0&&(i=v-g-Ia(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=Qo([u-f.value.bufferSize,0]);return{startIndex:y,endIndex:na([d+f.value.bufferSize,n.value.data.length]),translateY:i-Ia(c.slice(0,Math.min(y,a)))}}(),r=t.startIndex,o=t.endIndex,i=t.translateY,u=Ya(f.value.fixedRows,2),d=u[0],p=u[1],m=d?n.value.data.slice(0,d):[];d&&r0&&(h=h.slice(g)),v.value.join()!==[r,o].join()&&r>=0&&(l.value=i,a.value=m.concat(n.value.data.slice(r,o),h),v.value=[r,o])},100),h=function(t){var n=t.index,r=t.top,o=void 0===r?0:r,a=t.behavior,l=Ia(c.slice(0,n+1))-o;e.value.scrollTo({top:l,behavior:a||"auto"})};return zi(t.computed(function(){return p.value?e.value:void 0}),function(t){var r=Ya(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=Ia(c),v.value=[0,0],m()}},{immediate:!0}),t.watch(function(){return s.value},function(){m()}),{visibleData:a,translateY:l,scrollHeight:u,isVirtualScroll:p,handleScroll:function(){p.value&&m()},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(h(e),!f.value.isFixedRowHeight)var t,n=null!==(t=e.time)&&void 0!==t?t:60,r=setTimeout(function(){h(e),clearTimeout(r)},n)}}}function qi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Xi(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:Gi,o=t.ref(Xi(Xi({},Gi),r)),a=null,l=function(){var t;if(e){var r=o.value,l=r.debounceTime,i=void 0===l?0:l,u=r.config,c=void 0===u?Gi.config:u,s=function(){for(var e=arguments.length,t=new Array(e),r=0;r0?po(s,i):s)).observe(e,c)}};t.watch(function(){return r},function(e){Ko(e,o.value)||(o.value=Xi(Xi({},Gi),e),l())},{deep:!0}),t.onMounted(l),t.onBeforeUnmount(function(){var e;return null===(e=a)||void 0===e?void 0:e.disconnect()})}(null===(n=document)||void 0===n?void 0:n.documentElement,function(t){t.some(function(t){return"attributes"===t.type&&"theme-mode"===t.attributeName&&(To(e)||Array.isArray(e)?o.forEach(function(e){r[e].value=cu(e)}):Object.entries(e).forEach(function(e){var t=Ya(e,2),n=t[0],o=t[1];r[n].value=cu(o)}),!0)})}),r}function du(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r-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 hu(e,t){var n=Uo(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 gu(e){return Uo(e)?"".concat(e,"px"):e}var yu=["padding-top","padding-bottom","padding-left","padding-right","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","border-width","box-sizing","line-height","letter-spacing"];function bu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wu(e){for(var t=1;t11){var v=l.match(/[\d.]+/g),f=v?"rgba(".concat(v[0],", ").concat(v[1],", ").concat(v[2],", 0)"):"";Hi(e,wu(wu({},o),{},{background:"conic-gradient(from 90deg at 50% 50%,".concat(f," 0deg, ").concat(l," 360deg)")}))}else Hi(e,wu(wu({},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)])])}}}),Cu={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}},xu=t.defineComponent({name:"TLoading",inheritAttrs:!1,props:Cu,setup:function(e,n){var r=n.slots,o=n.attrs,a=t.ref(!1),l={name:ei("loading"),centerClass:ei("loading--center"),fullscreenClass:ei("loading__fullscreen"),lockClass:ei("loading--lock"),overlayClass:ei("loading__overlay"),relativeClass:ei("loading__parent"),fullClass:ei("loading--full"),inheritColorClass:ei("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=ei(),g=Rl(),y=Hl(),b=ti().SIZE,w=function(){a.value=!1;var t=setTimeout(function(){a.value=!0,clearTimeout(t)},e.delay)},O=Ki(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)}),S=t.computed(function(){return e.preventScrollThrough&&e.fullscreen}),j=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,Al(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){Ya(e,1)[0]?(w(),S.value&&pl(document.body,d.value)):S.value&&ml(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(Ou,{size:e.size},null),s=D.value&&g("indicator",c),d=j.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}}}),Pu=null;function Su(e,n){var r=function(e){return ta({fullscreen:!1,attach:"body",loading:!0,preventScrollThrough:!0},e)}(e);if(r.fullscreen&&Pu)return Pu;var o=t.defineComponent({setup:function(){var e=t.reactive(r);return function(){return t.h(xu,e)}}}),a=hl(r.fullscreen?"body":r.attach),l=t.createVNode(o);(null!=n?n:ku._context)&&(l.appContext=null!=n?n:ku._context);var i=document.createElement("div");t.render(l,i);var u=ei("loading__parent--relative").value,c=ei("loading--lock");return r.preventScrollThrough&&r.fullscreen&&pl(document.body,c.value),a?pl(a,u):console.error("attach is not exist"),{hide:function(){ml(a,u),ml(document.body,c.value),t.render(null,i),i.remove()}}}function ju(e,t){return!0===e?Pu=Su({fullscreen:!0,loading:!0,attach:"body",preventScrollThrough:!0},t):!1===e?(null===(n=Pu)||void 0===n||n.hide(),void(Pu=null)):Su(e);var n}var ku=ju;ku.install=function(e){e.config.globalProperties.$loading=ju,ku._context=e._context};var Nu=Symbol("TdLoading"),_u=function(e,t){var n=t.modifiers,r=n.fullscreen,o=n.inheritColor,a={attach:function(){return e},fullscreen:null!=r&&r,inheritColor:null!=o&&o,loading:t.value};E(t.value)&&function(e,t){var n={};t=ao(t),uo(e,function(e,r,o){ge(n,t(e,r,o),e)})}(t.value,function(e,t){a[t]=e}),e[Nu]={options:a,instance:ku(a)}},Vu={mounted:function(e,t){t.value&&_u(e,t)},updated:function(e,t){var n,r=e[Nu],o=t.value;Ko(o,t.oldValue)||((null!==(n=null==o?void 0:o.loading)&&void 0!==n?n:o)?_u(e,t):null==r||r.instance.hide())},unmounted:function(e){var t;null===(t=e[Nu])||void 0===t||t.instance.hide()}},Du=Nl(xu,xu.name,{name:"loading",comp:Vu}),Eu={block:Boolean,content:{type:[String,Function]},default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},form:{type:String,default:void 0},ghost:Boolean,href:{type:String,default:""},icon:{type:Function},loading:Boolean,loadingProps:{type:Object},shape:{type:String,default:"rectangle",validator:function(e){return!e||["rectangle","square","round","circle"].includes(e)}},size:{type:String,default:"medium",validator:function(e){return!e||["extra-small","small","medium","large"].includes(e)}},suffix:{type:Function},tag:{type:String,validator:function(e){return!e||["button","a","div"].includes(e)}},theme:{type:String,validator:function(e){return!e||["default","primary","danger","warning","success"].includes(e)}},type:{type:String,default:"button",validator:function(e){return!e||["submit","reset","button"].includes(e)}},variant:{type:String,default:"base",validator:function(e){return!e||["base","outline","dashed","text"].includes(e)}},onClick:Function};function Fu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Tu(e){for(var t=1;t0)){var n=document.createElement("script");n.setAttribute("class",t),n.setAttribute("src",e),document.body.appendChild(n)}}(e,"".concat(Qf,"-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"),tp={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},np=t.defineComponent({name:"TLink",props:tp,emits:["click"],setup:function(e,n){var r=n.emit,o=Hl(),a=Rl(),l=ei("link"),u=ti(),c=u.STATUS,d=u.SIZE,v=Jl("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])}}}),rp=Nl(np),op={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"}},ap=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 lp(){var e=t.ref(ap(sl?0:window.innerWidth));return Ei("resize",function(){e.value=ap(sl?0:window.innerWidth)}),e}function ip(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function up(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 up(s(s(s(s(s(s({},"".concat(e),!0),"".concat(e,"-").concat(n),!Zo(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 Uo(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){Uo(e)&&l(e)},isArray:function(e){S(e)&&e.length&&(Uo(e[0])&&l(e[0]),E(e[0])&&e[0][n]&&l(e[0][n]))},isObject:function(e){E(e)&&!S(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]}})}}}),vp=Nl(cp),fp=Nl(dp),pp=t.defineComponent({name:"TLayout",setup:function(){var e=t.ref(!1),n=Rl(),r=ei("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")])}}}),mp={height:{type:String,default:""}},hp=t.defineComponent({name:"THeader",props:mp,setup:function(e){var n=ei("layout__header"),r=Rl();return function(){return t.createVNode("header",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),gp={height:{type:String,default:""}},yp=t.defineComponent({name:"TFooter",props:gp,setup:function(e){var n=ei("layout__footer"),r=Rl();return function(){return t.createVNode("footer",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),bp={width:{type:String,default:""}},wp=t.defineComponent({name:"TAside",props:bp,setup:function(e){var n=t.inject("layout",Object.create(null)).hasSide,r=ei("layout__sider"),o=Rl();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")])}}}),Op={content:{type:[String,Function]},default:{type:[String,Function]}},Cp=t.defineComponent({name:"TContent",props:Op,setup:function(){var e=ei("layout__content"),n=Hl();return function(){return t.createVNode("main",{class:e.value},[n("default","content")])}}}),xp=Nl(wp),Pp=Nl(pp),Sp=Nl(hp),jp=Nl(yp),kp=Nl(Cp),Np={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)}}},_p=t.defineComponent({name:"TDivider",props:Np,setup:function(e){var n=ei("divider"),r=Hl();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])])}}}),Vp=Nl(_p),Dp={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 Ep(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Fp(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return To(e)?e:H(e)?e(t.h,n):H(null==e?void 0:e.render)?e.render(t.h,n):e}function Hp(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 Wp(e,t){return e===Rp.props}var Kp=t.defineComponent({name:"TDescriptionsRow",props:{row:Array,itemType:String},setup:function(e){var n=t.inject(Lp),r=ei("descriptions"),o=Jl("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;Wp(e.itemType)?(c=i.label,s=i.span):(c=Hp(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;Wp(e.itemType)?(u=o.content,c=o.span):(u=Hp(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)])])})])])}}}),Up=t.defineComponent({name:"TDescriptions",props:Bp,setup:function(e){var n=ei("descriptions"),r=ti().SIZE,o=El(),a=Rl(),l=t.ref(Rp.props),i=function(){var t=e.column,n=e.layout,r=[];if(S(e.items))r=e.items.map(function(e){return{label:zp(e.label),content:zp(e.content),span:e.span||1}}),l.value=Rp.props;else{var a=o("TDescriptionsItem");0!==a.length&&(r=a,l.value=Rp.slots)}if("vertical"===n)return[r];var i=[],u=t,c=[];return r.forEach(function(e,n){var o,a=1;Wp(l.value)?a=(a=Yo(e.span)?a:e.span)>t?t:a:(e.props=e.props||{},a=(a=Yo(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&&(Wp(l.value)?e.span+=u:e.props.span+=u,c.push(i))}),c};t.provide(Lp,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(Kp,{"item-type":l.value,row:e},null)})])]))]);var o,u}}}),Yp={content:{type:[String,Function]},default:{type:[String,Function]},label:{type:[String,Function]},span:{type:Number,default:1}},$p=t.defineComponent({name:"TDescriptionsItem",props:Yp}),Zp=Nl(Up),qp=Nl($p);function Xp(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 Gp(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function l(e){Xp(a,r,o,l,i,"next",e)}function i(e){Xp(a,r,o,l,i,"throw",e)}l(void 0)})}}var Jp={exports:{}},Qp={exports:{}};!function(e){e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports}(Qp);var em=Qp.exports,tm={exports:{}},nm={exports:{}};!function(e){function t(n,r,o,a){var l=Object.defineProperty;try{l({},"",{})}catch(n){l=0}e.exports=t=function(e,n,r,o){if(n)l?l(e,n,{value:r,enumerable:!o,configurable:!o,writable:!o}):e[n]=r;else{var a=function(n,r){t(e,n,function(e){return this._invoke(n,r,e)})};a("next",0),a("throw",1),a("return",2)}},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r,o,a)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(nm);var rm=nm.exports;!function(e){var t=rm;function n(){ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ -var r,o,a="function"==typeof Symbol?Symbol:{},l=a.iterator||"@@iterator",i=a.toStringTag||"@@toStringTag";function u(e,n,a,l){var i=n&&n.prototype instanceof s?n:s,u=Object.create(i.prototype);return t(u,"_invoke",function(e,t,n){var a,l,i,u=0,s=n||[],d=!1,v={p:0,n:0,v:r,a:f,f:f.bind(r,4),d:function(e,t){return a=e,l=0,i=r,v.n=t,c}};function f(e,t){for(l=e,i=t,o=0;!d&&u&&!n&&o3?(n=p===t)&&(i=a[(l=a[4])?5:(l=3,3)],a[4]=a[5]=r):a[0]<=f&&((n=e<2&&ft||t>p)&&(a[4]=e,a[5]=t,v.n=p,l=0))}if(n||e>1)return c;throw d=!0,t}return function(n,s,p){if(u>1)throw TypeError("Generator is already running");for(d&&1===s&&f(s,p),l=s,i=p;(o=l<2?r:i)||!d;){a||(l?l<3?(l>1&&(v.n=-1),f(l,i)):v.n=i:v.v=i);try{if(u=2,a){if(l||(n="next"),o=a[n]){if(!(o=o.call(a,i)))throw TypeError("iterator result is not an object");if(!o.done)return o;i=o.value,l<2&&(l=0)}else 1===l&&(o=a.return)&&o.call(a),l<2&&(i=TypeError("The iterator does not provide a '"+n+"' method"),l=1);a=r}else if((o=(d=v.n<0)?i:e.call(t,v))!==c)break}catch(e){a=r,l=1,i=e}finally{u=1}}return{value:o,done:d}}}(e,a,l),!0),u}var c={};function s(){}function d(){}function v(){}o=Object.getPrototypeOf;var f=[][l]?o(o([][l]())):(t(o={},l,function(){return this}),o),p=v.prototype=s.prototype=Object.create(f);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,t(e,i,"GeneratorFunction")),e.prototype=Object.create(p),e}return d.prototype=v,t(p,"constructor",v),t(v,"constructor",d),d.displayName="GeneratorFunction",t(v,i,"GeneratorFunction"),t(p),t(p,i,"Generator"),t(p,l,function(){return this}),t(p,"toString",function(){return"[object Generator]"}),(e.exports=n=function(){return{w:u,m:m}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(tm);var om=tm.exports,am={exports:{}},lm={exports:{}},im={exports:{}};!function(e){var t=em,n=rm;e.exports=function e(r,o){function a(e,n,l,i){try{var u=r[e](n),c=u.value;return c instanceof t?o.resolve(c.v).then(function(e){a("next",e,l,i)},function(e){a("throw",e,l,i)}):o.resolve(c).then(function(e){u.value=e,l(u)},function(e){return a("throw",e,l,i)})}catch(e){i(e)}}var l;this.next||(n(e.prototype),n(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),n(this,"_invoke",function(e,t,n){function r(){return new o(function(t,r){a(e,n,t,r)})}return l=l?l.then(r,r):r()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports}(im);var um=im.exports;!function(e){var t=om,n=um;e.exports=function(e,r,o,a,l){return new n(t().w(e,r,o,a),l||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports}(lm);var cm=lm.exports;!function(e){var t=cm;e.exports=function(e,n,r,o,a){var l=t(e,n,r,o,a);return l.next().then(function(e){return e.done?e.value:l.next()})},e.exports.__esModule=!0,e.exports.default=e.exports}(am);var sm=am.exports,dm={exports:{}};!function(e){e.exports=function(e){var t=Object(e),n=[];for(var r in t)n.unshift(r);return function e(){for(;n.length;)if((r=n.pop())in t)return e.value=r,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports}(dm);var vm=dm.exports,fm={exports:{}},pm={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}(pm);var mm=pm.exports;!function(e){var t=mm.default;e.exports=function(e){if(null!=e){var n=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(t(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports}(fm);var hm=fm.exports;!function(e){var t=em,n=om,r=sm,o=cm,a=um,l=vm,i=hm;function u(){var c=n(),s=c.m(u),d=(Object.getPrototypeOf?Object.getPrototypeOf(s):s.__proto__).constructor;function v(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))}var f={throw:1,return:2,break:3,continue:3};function p(e){var t,n;return function(r){t||(t={stop:function(){return n(r.a,2)},catch:function(){return r.v},abrupt:function(e,t){return n(r.a,f[e],t)},delegateYield:function(e,o,a){return t.resultName=o,n(r.d,i(e),a)},finish:function(e){return n(r.f,e)}},n=function(e,n,o){r.p=t.prev,r.n=t.next;try{return e(n,o)}finally{t.next=r.n}}),t.resultName&&(t[t.resultName]=r.v,t.resultName=void 0),t.sent=r.v,t.next=r.n;try{return e.call(this,t)}finally{r.p=t.prev,r.n=t.next}}}return(e.exports=u=function(){return{wrap:function(e,t,n,r){return c.w(p(e),t,n,r&&r.reverse())},isGeneratorFunction:v,mark:c.m,awrap:function(e,n){return new t(e,n)},AsyncIterator:a,async:function(e,t,n,a,l){return(v(t)?o:r)(p(e),t,n,a,l)},keys:l,values:i}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=u,e.exports.__esModule=!0,e.exports.default=e.exports}(Jp);var gm=(0,Jp.exports)(),ym=gm;try{regeneratorRuntime=gm}catch(e){"object"===("undefined"==typeof globalThis?"undefined":u(globalThis))?globalThis.regeneratorRuntime=gm:Function("r","regeneratorRuntime = r")(gm)}var bm=Za(ym),wm={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},Om=t.defineComponent({name:"TAffix",props:wm,emits:["fixedChange"],setup:function(e,n){var r,o=ei("affix"),a=Rl(),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=!Zo(e.offsetTop)&&y<=e.offsetTop?g+e.offsetTop:!Zo(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=Gp(bm.mark(function n(){return bm.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=1,t.nextTick();case 1:if(!s.value){n.next=2;break}return n.abrupt("return");case 2:d.value=gl(e.container),dl(d.value,"scroll",p),dl(window,"resize",p),s.value=!0;case 3:case"end":return n.stop()}},n)}));return function(){return n.apply(this,arguments)}}(),h=function(){d.value&&s.value&&(vl(d.value,"scroll",p),vl(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")])])}}}),Cm=Nl(Om),xm={exports:{}};!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(Sm);if(t){var n=document.getElementById(t[1]);if(n)return n}},w=function(){var n=Gp(bm.mark(function n(r){var o;return bm.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(l.value!==r){n.next=1;break}return n.abrupt("return");case 1:return l.value=r,null===(o=e.onChange)||void 0===o||o.call(e,r,l.value),n.next=2,t.nextTick();case 2:O();case 3: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=Gp(bm.mark(function t(n){var r,o,a,l,c;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(r=b(n),w(n),r){t.next=1;break}return t.abrupt("return");case 1:return u.value=!0,o=e.targetOffset,a=bl(i.value),l=jm(r,i.value),c=a+l-o,t.next=2,wl(c,{container:i.value});case 2:u.value=!1;case 3:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}();return t.onMounted(Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(g(),!l.value){e.next=2;break}return e.next=1,t.nextTick();case 1:C(l.value);case 2:case"end":return e.stop()}},e)}))),t.onUnmounted(function(){i.value&&vl(i.value,"scroll",y)}),t.watchEffect(function(){i.value&&vl(i.value,"scroll",y),g()}),t.provide(Nm,t.reactive({registerLink:function(e){Sm.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(Cm,l,"function"==typeof(n=u)||"[object Object]"===Object.prototype.toString.call(n)&&!t.isVNode(n)?u:{default:function(){return[u]}}):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}function Dm(e){for(var t=1;t0&&kh(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&kh(r.height)/e.offsetHeight||1);var l=(wh(e)?bh(e):window).visualViewport,i=!_h()&&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 Dh(e){var t=Vh(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 Eh(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Ch(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Fh(e){return bh(e).getComputedStyle(e)}function Th(e){return["table","td","th"].indexOf(yh(e))>=0}function Mh(e){return((wh(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ih(e){return"html"===yh(e)?e:e.assignedSlot||e.parentNode||(Ch(e)?e.host:null)||Mh(e)}function Ah(e){return Oh(e)&&"fixed"!==Fh(e).position?e.offsetParent:null}function Bh(e){for(var t=bh(e),n=Ah(e);n&&Th(n)&&"static"===Fh(n).position;)n=Ah(n);return n&&("html"===yh(n)||"body"===yh(n)&&"static"===Fh(n).position)?t:n||function(e){var t=/firefox/i.test(Nh());if(/Trident/i.test(Nh())&&Oh(e)&&"fixed"===Fh(e).position)return null;var n=Ih(e);for(Ch(n)&&(n=n.host);Oh(n)&&["html","body"].indexOf(yh(n))<0;){var r=Fh(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 Lh(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Rh(e,t,n){return Sh(e,jh(t,n))}function zh(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Hh(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Wh={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=Ph(n.placement),u=Lh(i),c=[uh,ih].indexOf(i)>=0?"height":"width";if(a&&l){var s=function(e,t){return zh("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Hh(e,sh))}(o.padding,n),d=Dh(a),v="y"===u?ah:uh,f="y"===u?lh:ih,p=n.rects.reference[c]+n.rects.reference[u]-l[u]-n.rects.popper[c],m=l[u]-n.rects.reference[u],h=Bh(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=Rh(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)))&&Eh(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Kh(e){return e.split("-")[1]}var Uh={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Yh(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=uh,w=ah,O=window;if(c){var C=Bh(n),x="clientHeight",P="clientWidth";if(C===bh(n)&&"static"!==Fh(C=Mh(n)).position&&"absolute"===i&&(x="scrollHeight",P="scrollWidth"),o===ah||(o===uh||o===ih)&&a===vh)w=lh,m-=(d&&C===O&&O.visualViewport?O.visualViewport.height:C[x])-r.height,m*=u?1:-1;if(o===uh||(o===ah||o===lh)&&a===vh)b=ih,f-=(d&&C===O&&O.visualViewport?O.visualViewport.width:C[P])-r.width,f*=u?1:-1}var S,j=Object.assign({position:i},c&&Uh),k=!0===s?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:kh(n*o)/o||0,y:kh(r*o)/o||0}}({x:f,y:m},bh(n)):{x:f,y:m};return f=k.x,m=k.y,u?Object.assign({},j,((S={})[w]=y?"0":"",S[b]=g?"0":"",S.transform=(O.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",S)):Object.assign({},j,((t={})[w]=y?m+"px":"",t[b]=g?f+"px":"",t.transform="",t))}var $h={passive:!0};var Zh={left:"right",right:"left",bottom:"top",top:"bottom"};function qh(e){return e.replace(/left|right|bottom|top/g,function(e){return Zh[e]})}var Xh={start:"end",end:"start"};function Gh(e){return e.replace(/start|end/g,function(e){return Xh[e]})}function Jh(e){var t=bh(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Qh(e){return Vh(Mh(e)).left+Jh(e).scrollLeft}function eg(e){var t=Fh(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function tg(e){return["html","body","#document"].indexOf(yh(e))>=0?e.ownerDocument.body:Oh(e)&&eg(e)?e:tg(Ih(e))}function ng(e,t){var n;void 0===t&&(t=[]);var r=tg(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),a=bh(r),l=o?[a].concat(a.visualViewport||[],eg(r)?r:[]):r,i=t.concat(l);return o?i:i.concat(ng(Ih(l)))}function rg(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function og(e,t,n){return t===fh?rg(function(e,t){var n=bh(e),r=Mh(e),o=n.visualViewport,a=r.clientWidth,l=r.clientHeight,i=0,u=0;if(o){a=o.width,l=o.height;var c=_h();(c||!c&&"fixed"===t)&&(i=o.offsetLeft,u=o.offsetTop)}return{width:a,height:l,x:i+Qh(e),y:u}}(e,n)):wh(t)?function(e,t){var n=Vh(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):rg(function(e){var t,n=Mh(e),r=Jh(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=Sh(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),l=Sh(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),i=-r.scrollLeft+Qh(e),u=-r.scrollTop;return"rtl"===Fh(o||n).direction&&(i+=Sh(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:l,x:i,y:u}}(Mh(e)))}function ag(e,t,n,r){var o="clippingParents"===t?function(e){var t=ng(Ih(e)),n=["absolute","fixed"].indexOf(Fh(e).position)>=0&&Oh(e)?Bh(e):e;return wh(n)?t.filter(function(e){return wh(e)&&Eh(e,n)&&"body"!==yh(e)}):[]}(e):[].concat(t),a=[].concat(o,[n]),l=a[0],i=a.reduce(function(t,n){var o=og(e,n,r);return t.top=Sh(o.top,t.top),t.right=jh(o.right,t.right),t.bottom=jh(o.bottom,t.bottom),t.left=Sh(o.left,t.left),t},og(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 lg(e){var t,n=e.reference,r=e.element,o=e.placement,a=o?Ph(o):null,l=o?Kh(o):null,i=n.x+n.width/2-r.width/2,u=n.y+n.height/2-r.height/2;switch(a){case ah:t={x:i,y:n.y-r.height};break;case lh:t={x:i,y:n.y+n.height};break;case ih:t={x:n.x+n.width,y:u};break;case uh:t={x:n.x-r.width,y:u};break;default:t={x:n.x,y:n.y}}var c=a?Lh(a):null;if(null!=c){var s="y"===c?"height":"width";switch(l){case dh:t[c]=t[c]-(n[s]/2-r[s]/2);break;case vh:t[c]=t[c]+(n[s]/2-r[s]/2)}}return t}function ig(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?fh:c,d=n.elementContext,v=void 0===d?ph:d,f=n.altBoundary,p=void 0!==f&&f,m=n.padding,h=void 0===m?0:m,g=zh("number"!=typeof h?h:Hh(h,sh)),y=v===ph?"reference":ph,b=e.rects.popper,w=e.elements[p?y:v],O=ag(wh(w)?w:w.contextElement||Mh(e.elements.popper),u,s,l),C=Vh(e.elements.reference),x=lg({reference:C,element:b,strategy:"absolute",placement:o}),P=rg(Object.assign({},b,x)),S=v===ph?P:C,j={top:O.top-S.top+g.top,bottom:S.bottom-O.bottom+g.bottom,left:O.left-S.left+g.left,right:S.right-O.right+g.right},k=e.modifiersData.offset;if(v===ph&&k){var N=k[o];Object.keys(j).forEach(function(e){var t=[ih,lh].indexOf(e)>=0?1:-1,n=[ah,lh].indexOf(e)>=0?"y":"x";j[e]+=N[n]*t})}return j}function ug(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?hh:u,s=Kh(r),d=s?i?mh:mh.filter(function(e){return Kh(e)===s}):sh,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]=ig(e,{placement:n,boundary:o,rootBoundary:a,padding:l})[Ph(n)],t},{});return Object.keys(f).sort(function(e,t){return f[e]-f[t]})}var cg={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=Ph(h),y=u||(g===h||!p?[qh(h)]:function(e){if(Ph(e)===ch)return[];var t=qh(e);return[Gh(e),t,Gh(t)]}(h)),b=[h].concat(y).reduce(function(e,n){return e.concat(Ph(n)===ch?ug(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],S=0;S=0,V=_?"width":"height",D=ig(t,{placement:j,boundary:s,rootBoundary:d,altBoundary:v,padding:c}),E=_?N?ih:uh:N?lh:ah;w[V]>O[V]&&(E=qh(E));var F=qh(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=j,x=!1;break}C.set(j,T)}if(x)for(var M=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"},I=p?3:1;I>0;I--){if("break"===M(I))break}t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function sg(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 dg(e){return[ah,ih,lh,uh].some(function(t){return e[t]>=0})}var vg={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=hh.reduce(function(e,n){return e[n]=function(e,t,n){var r=Ph(e),o=[uh,ah].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,[uh,ih].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 fg={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=ig(t,{boundary:u,rootBoundary:c,padding:d,altBoundary:s}),g=Ph(t.placement),y=Kh(t.placement),b=!y,w=Lh(g),O="x"===w?"y":"x",C=t.modifiersData.popperOffsets,x=t.rects.reference,P=t.rects.popper,S="function"==typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,j="number"==typeof S?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),k=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,N={x:0,y:0};if(C){if(a){var _,V="y"===w?ah:uh,D="y"===w?lh:ih,E="y"===w?"height":"width",F=C[w],T=F+h[V],M=F-h[D],I=f?-P[E]/2:0,A=y===dh?x[E]:P[E],B=y===dh?-P[E]:-x[E],L=t.elements.arrow,R=f&&L?Dh(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=Rh(0,x[E],R[E]),U=b?x[E]/2-I-K-H-j.mainAxis:A-K-H-j.mainAxis,Y=b?-x[E]/2+I+K+W+j.mainAxis:B+K+W+j.mainAxis,$=t.elements.arrow&&Bh(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=Rh(f?jh(T,F+U-q-Z):T,F,f?Sh(M,X):M);C[w]=G,N[w]=G-F}if(i){var J,Q="x"===w?ah:uh,ee="x"===w?lh:ih,te=C[O],ne="y"===O?"height":"width",re=te+h[Q],oe=te-h[ee],ae=-1!==[ah,uh].indexOf(g),le=null!=(J=null==k?void 0:k[O])?J:0,ie=ae?re:te-x[ne]-P[ne]-le+j.altAxis,ue=ae?te+x[ne]+P[ne]-le-j.altAxis:oe,ce=f&&ae?function(e,t,n){var r=Rh(e,t,n);return r>n?n:r}(ie,te,ue):Rh(f?ie:re,te,f?ue:oe);C[O]=ce,N[O]=ce-te}t.modifiersData[r]=N}},requiresIfExists:["offset"]};function pg(e,t,n){void 0===n&&(n=!1);var r,o=Oh(t),a=Oh(t)&&function(e){var t=e.getBoundingClientRect(),n=kh(t.width)/e.offsetWidth||1,r=kh(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),l=Mh(t),i=Vh(e,a,n),u={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(o||!o&&!n)&&(("body"!==yh(t)||eg(l))&&(u=(r=t)!==bh(r)&&Oh(r)?function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}(r):Jh(r)),Oh(t)?((c=Vh(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):l&&(c.x=Qh(l))),{x:i.left+u.scrollLeft-c.x,y:i.top+u.scrollTop-c.y,width:i.width,height:i.height}}function mg(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 hg={placement:"bottom",modifiers:[],strategy:"absolute"};function gg(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:[]).forEach(function(n){S(n)?e.push.apply(e,i(n)):n.type===t.Fragment?e.push.apply(e,i(Og(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 Cg(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 xg=t.defineComponent({name:"TPopupTrigger",props:{forwardRef:Function},emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots,a=Cg(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)}),zi(a,function(e){var t=Ya(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=Og(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]}}}),Pg=t.defineComponent({name:"TPopupContent",emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots;return zi(Cg(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()])}}}),Sg=t.defineComponent({name:"TPopupContainer",inheritAttrs:!1,props:{parent:Object,visible:Boolean,attach:wg.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 hl(e.attach,i.value)};return t.createVNode(t.Fragment,null,[t.createVNode(xg,{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(Pg,{onResize:c,onVnodeMounted:function(){return r("contentMounted")}},{default:function(){return[a.content&&a.content()]}})]}})])}}});function jg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function kg(e){for(var t=1;tn.x&&t.xn.y&&t.y0&&(Gg(l.value)||Gg(u.value))?(pi("Breadcrumb","\u9700\u8981\u8bbe\u7f6e itemsBeforeCollapse \u548c itemsAfterCollapse \u5c5e\u6027\u6765\u63a7\u5236\u7701\u7565\u53f7\u524d\u540e\u7684\u663e\u793a\u9879\u6570\u3002"),!1):!(r<=0||o<=r||i>=o)}),s=t.computed(function(){var e=n.value;if(!c.value)return e;var t=e.length,o=e.slice(0,l.value),a=e.slice(t-u.value,t);return[].concat(i(o),[{content:r,disabled:!0,isEllipsisItem:!0}],i(a))}),d=t.computed(function(){var e=n.value;if(!c.value)return[];var t=e.slice(l.value,e.length-u.value);return t.map(function(e,n){return Xg(Xg({},e),{},{isLast:n===t.length-1})})});return{getDisplayItems:s,getEllipsisItems:d}}(e,r,c),f=s.getDisplayItems.value.map(function(e,n){return"object"===u(e)&&"content"in e?t.createVNode(Zg,t.mergeProps({key:n},e),{default:function(){return[e.content]}}):e});return t.createVNode("div",{class:a.value},[f])}}}),ty=Nl(ey),ny=Nl(Zg),ry={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 oy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ay(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(ly,{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(Vp,null,null):null])):f=t.createVNode("div",{key:i},[t.createVNode(ly,{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(Vp,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 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;t0?vy(m):null})}).filter(function(e){return!!e.content}):S(e)&&S(null===(n=e[0])||void 0===n?void 0:n.children)?vy(null===(r=e[0])||void 0===r?void 0:r.children):[]};function fy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function py(e){for(var t=1;t0?e.options:vy(u)})}(e),f=py(py(py({},r),{},{disabled:e.disabled,placement:e.placement,trigger:e.trigger},la(e.popupProps,["onVisibleChange","on-visible-change"])),{},{overlayInnerClassName:[a.value,null===(u=e.popupProps)||void 0===u?void 0:u.overlayInnerClassName]});return t.createVNode(Fg,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(cy,t.mergeProps(la(e,"onClick"),{options:v.value,onClick:c}),null):null,o("panelBottomContent")])}})}}}),hy=Nl(my),gy=Nl(ly),yy=Nl(cy),by={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 wy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 Oy=function(e,t,n){if(e)for(var r=0;r0)for(var n=0,r=e.children.length;n0){var o=xy(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=Oy(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=Cy(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=xy(this.data,e);return t?t.children:[]}}])}();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 jy(e){for(var t=1;t1}),C=t.computed(function(){return c.valueMath.abs(n)?E(c.value+t):E(c.value+n)}},M=function(){setTimeout(function(){E(function(e,t,n){var r,o=e.navsContainer,a=e.activeTab,l=e.rightOperations,i=e.leftOperations,u=Ey(a),c=Ey(o),s=(null==(r=a)?void 0:r.offsetLeft)||0,d=Ey(l),v=Ey(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)},I=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,Ey(t)-Ey(n)+Ey(r)-Ey(o))})};t.watch([function(){return e.placement},function(){return e.panels}],I),t.watch([function(){return e.scrollPosition}],M),function(e,n){Ei("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 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,M())},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=ui(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),I(),M()});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(Fy,{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:j.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(Ty,{placement:e.placement,value:e.value,navs:r},null),r])])]))]);var r}}}),By=t.defineComponent({name:"TTabs",props:Dy,setup:function(e){var n=ei("tabs"),r=ei(),o=Rl(),a=t.toRefs(e),l=Ya(Ui(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&&S(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(Ay,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(Vy,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()]])}}}),Ly=Nl(By),Ry=Nl(Vy),zy={content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function},popupProps:{type:Object},title:{type:[String,Function]},value:{type:[String,Number]}},Hy=t.defineComponent({name:"TFakeArrow",props:{isActive:{type:Boolean},overlayClassName:{type:[String,Object,Array]},overlayStyle:{type:Object||String}},setup:function(e){var n=ei("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 Wy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 Ky=t.defineComponent({name:"TSubmenu",props:zy,setup:function(e,n){var r=n.attrs,o=n.slots,a=ei(),l=Rl(),u=Hl(),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),S=t.ref(!1),j=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=ei("slide-down");Wi(D,j);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]}),M=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]}),I=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);S.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;S.value=!1,o(r)||(P.value=!1),null==w||w(e)}},Y=function(){S.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(Fg,t.mergeProps(null!==(r=e.popupProps)&&void 0!==r?r:{},{overlayInnerClassName:i(T.value),overlayClassName:i(M.value),visible:P.value,placement:o}),function(e){for(var t=1;t0&&(d=h?(n=l("icon"),r=[t.createVNode("div",{ref:D,class:I.value,onClick:$},[n,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")])],i="popup"===O.value&&N.value,s=[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),t.createVNode(Hy,{overlayClassName:/menu/i.test(null==c?void 0:c.parent.proxy.$options.name)?B.value:null,overlayStyle:{transform:"rotate(".concat(i?-90:0,"deg)")}},null)],"normal"===O.value?r:Z(s)):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:I.value,onClick:$},[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),e&&t.createVNode(Hy,{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(Hy,{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},v),[d,e])}}});function Uy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 Yy=t.defineComponent({name:"THeadMenu",props:Ny,setup:function(e,n){var r,o,a,l,u=ei(),c=t.getCurrentInstance().proxy;t.watchEffect(function(){n.slots.options&&fi("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=Ya(Ui(v,f,e.defaultValue,e.onChange),2),h=m[0],g=m[1],y=Ya(ni(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),j=t.reactive([]),k=new Py({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);j.length=0,j.push.apply(j,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=j.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(),M=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=hu(t,c);if(E(s))return s.characters}}}}function cb(e,t){return"number"===t?e||0===e?Number(e):void 0:e}function sb(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=Ri(),f=Ya(Ui(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=ub(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}),S=function(){var e;g.value=!0,null===(e=b.value)||void 0===e||e.focus()},j=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(cb(o,e.type),{e:n,trigger:"input"}),t.nextTick(function(){"number"===e.type&&/\.(\d+)?0$/.test(o)?j(o):j(p.value)})},N=t.inject(ib,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:S,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})()?S():(e.format&&(l.value="number"==typeof p.value||"number"===e.type?p.value:e.format(p.value)),g.value=!1,i.value&&(i.value=!1,u.value=""),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 db(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)};zi(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 vb=["isHover","tStatus","inputRef","renderType","showClear","focused","inputValue","isComposition","compositionValue","innerValue","limitNumber"];function fb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function pb(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 xb(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return-1!==e.indexOf(".")?(pi("InputNumber","num is not a integer number."),e):!e||"0"===e&&t?"":"0"===e?e:(t?e.replace(/0+$/,""):e.replace(/^0+/,""))||"0"}function Pb(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=xb(e,n),o=xb(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 Sb(e,t){var n=Ya(e.split("."),2),r=n[0],o=void 0===r?"0":r,a=n[1],l=void 0===a?"0":a,i=Ya(t.split("."),2),u=i[0],c=void 0===u?"0":u,s=i[1],d=void 0===s?"0":s,v=Pb(o,c);if("0"===l&&"0"===d)return v;var f=xb(l,!0),p=xb(d,!0),m=Pb(f,p,!0),h=m.length;return h>f.length&&h>p.length?[xb(Pb(v,"1")),xb(m.slice(1),!0)].filter(function(e){return e}).join("."):[xb(v),xb(m,!0)].filter(function(e){return e}).join(".")}function jb(e,t){var n=xb(e),r=xb(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 kb(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 Nb(e){var t=Ya(e.split("e"),2),n=t[0],r=t[1];if(!r)return e;var o=Ya(e.split("."),2),a=o[0],l=o[1],i=void 0===l?"":l,u=Number(r),c=Ya(i.split("e"),1)[0];if(u>c.length){var s=Ob(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 _b(e){return[-1/0,1/0].includes(Number(e))}function Vb(e){return Number(e)Number.MIN_SAFE_INTEGER}function Db(e,t,n){var r=Vb(e)&&Vb(t)&&!n,o=_b(e)||_b(t);return r||o?Number(e)===Number(t)?0:Number(e)>Number(t)?1:-1:function(e,t){var n=Ya(Nb(e).split("."),2),r=n[0],o=n[1],a=Ya(Nb(t).split("."),2),l=a[0],i=a[1],u=jb(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?kb(o,i):u}(String(e),String(t))}function Eb(e,t,n){if(e===t)return"0";for(var r=n||{},o=r.decimal,a=r.stayZero,l=xb(e),i=xb(t),u=jb(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+/,"")),xb(u?y:"-".concat(y))}function Fb(e,t){if(e===t)return"0";var n=Db(e,t,!0)>0,r=n?t:e,o=Ya((n?e:t).split("."),2),a=o[0],l=o[1],i=void 0===l?"0":l,u=Ya(r.split("."),2),c=u[0],s=u[1],d=void 0===s?"0":s,v=Eb(a,c);if("0"===i&&"0"===d)return n?v:"-".concat(v);var f="",p=i;i.length=0?f=Eb(p,d,{decimal:!0}):(i.length2&&void 0!==arguments[2])||arguments[2])return e.toFixed(t);var n=Ya(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)?Tb(e,t.places,null===(n=t.enableRound)||void 0===n||n):Tb(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(!To(e))return String(e);var l=Ya(e.split("."),2),i=l[0],u=l[1];if(!u)return o>0&&a?[e,Ob(o)].join("."):e;if(0===o)return a&&Number(u[0])>=5?Sb(i,"1"):i;var c=u.slice(0,o);if(u.length=5;c=f?Sb(c,"1"):c,d&&f&&d+c.length>=o&&(c="".concat(Ob(o-c.length)).concat(c)),v&&c.length>o&&(i=(Number(i)+1).toString(),c=Ob(o))}return[i,c].join(".")}function Ib(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 Ab(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 Bb(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 pi("InputNumber","step must be larger than 0."),r;var i,u,c,s=Uo(n)?String(n):n;return"add"===t?l&&To(r)?i=function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r)return Fb(t,e.slice(1));if(n&&r){var o=Sb(t.slice(1),e.slice(1));return"-".concat(o)}return!n&&r?Fb(e,t.slice(1)):Sb(e,t)}(String(r),String(s)):(u=Number(r||0),c=Number(n),i=u<0&&c>0?Ab(c,Math.abs(u)):u<0&&c<0?-1*Ib(Math.abs(u),Math.abs(c)):u>0&&c<0?Ab(u,Math.abs(c)):Ib(u,c)):"reduce"===t&&(i=l&&To(r)?function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r){var o=Sb(e.slice(1),t);return"-".concat(o)}return n&&r?Fb(t.slice(1),e.slice(1)):!n&&r?Sb(e,t.slice(1)):Fb(e,t)}(String(r),String(s)):function(e,t){return e<0&&t>0?-1*Ib(Math.abs(e),t):e<0&&t<0?Ab(Math.abs(t),Math.abs(e)):e>0&&t<0?Ib(e,Math.abs(t)):Ab(e,t)}(Number(r||0),Number(n))),Zo(r)&&(i=function(e,t){if(""!==e){var n=t.max,r=t.min,o=t.lastValue,a=t.largeNumber;return Cb(e)?!a||!To(n)&&n!==1/0||!To(r)&&r!==-1/0?Math.max(Number(r),Math.min(Number(n),Number(e))):Db(n,e,a)<0?n:Db(r,e,a)>0?r:e:o}}(i,{max:o,min:a,lastValue:r,largeNumber:l})),l?i:Number(i)}function Lb(e){var t=e.largeNumber,n=e.value,r=e.max,o=e.min;if(!Zo(n)&&!Zo(t))return t&&Uo(n)&&vi("InputNumber","largeNumber value must be a string."),Db(n,r,t)>0?"exceed-maximum":Db(n,o,t)<0?"below-minimum":void 0}var Rb=["-",".","e","E","+"];function zb(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=Nb(a)),void 0!==n&&(a=Mb(a,n,r)),r||o?a:parseFloat(a)}}function Hb(e){var n=ti(),r=n.classPrefix,o=n.SIZE,a=n.STATUS,l=t.toRefs(e),i=l.value,u=l.modelValue,c=l.max,d=l.min,v=Ya(Ui(i,u,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=t.ref(),h=t.ref(""),g=oi(),y=Ri(),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&&To(e)?Db(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&&To(e)?Db(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&&Cb(e)||!Number.isNaN(Number(e))||Rb.includes(e.slice(-1)))||/e/i.test(e)&&(!/\de/i.test(e)||/e\./.test(e)))}(a,e.largeNumber)){var l=a;if(void 0!==e.decimalPlaces&&""!==a&&a.includes(".")){var i=a.split("."),u="number"==typeof e.decimalPlaces?e.decimalPlaces:e.decimalPlaces.places;i[1]&&i[1].length>u&&(l="".concat(i[0],".").concat(i[1].substring(0,u)))}if(h.value=l,e.largeNumber)p(l,{type:"input",e:o});else{var c=""===l?void 0:Number(l);(function(e,t){return parseFloat(e)!==t&&!Number.isNaN(Number(e))})(l,Number(f.value))&&p(c,{type:"input",e:o})}}},isReadonly:y}}function Wb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 Kb=t.defineComponent({name:"TInputNumber",props:wb,setup:function(e,n){var r=si({AddIcon:Ju,RemoveIcon:Yv,ChevronDownIcon:Zc,ChevronUpIcon:Ps}),o=r.AddIcon,a=r.RemoveIcon,l=r.ChevronDownIcon,i=r.ChevronUpIcon,u=Hb(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=gw(e,360),t=gw(t,100),n=gw(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=hw(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 Jb(e,t,n){e=gw(e,255),t=gw(t,255),n=gw(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(Gb(r));return a}function fw(e,t){t=t||6;for(var n=Gb(e).toHsv(),r=n.h,o=n.s,a=n.v,l=[],i=1/t;t--;)l.push(Gb({h:r,s:o,v:a})),a=(a+i)%1;return l}Gb.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=hw(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=Qb(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=Qb(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=Jb(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=Jb(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 ew(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=[ww(Math.round(e).toString(16)),ww(Math.round(t).toString(16)),ww(Math.round(n).toString(16)),ww(Cw(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*gw(this._r,255))+"%",g:Math.round(100*gw(this._g,255))+"%",b:Math.round(100*gw(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*gw(this._r,255))+"%, "+Math.round(100*gw(this._g,255))+"%, "+Math.round(100*gw(this._b,255))+"%)":"rgba("+Math.round(100*gw(this._r,255))+"%, "+Math.round(100*gw(this._g,255))+"%, "+Math.round(100*gw(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(mw[ew(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+tw(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var o=Gb(e);n="#"+tw(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 Gb(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(aw,arguments)},brighten:function(){return this._applyModification(lw,arguments)},darken:function(){return this._applyModification(iw,arguments)},desaturate:function(){return this._applyModification(nw,arguments)},saturate:function(){return this._applyModification(rw,arguments)},greyscale:function(){return this._applyModification(ow,arguments)},spin:function(){return this._applyModification(uw,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(vw,arguments)},complement:function(){return this._applyCombination(cw,arguments)},monochromatic:function(){return this._applyCombination(fw,arguments)},splitcomplement:function(){return this._applyCombination(dw,arguments)},triad:function(){return this._applyCombination(sw,[3])},tetrad:function(){return this._applyCombination(sw,[4])}},Gb.fromRatio=function(e,t){if("object"==Zb(e)){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:Ow(e[r]));e=n}return Gb(e,t)},Gb.equals=function(e,t){return!(!e||!t)&&Gb(e).toRgbString()==Gb(t).toRgbString()},Gb.random=function(){return Gb.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Gb.mix=function(e,t,n){n=0===n?0:n||50;var r=Gb(e).toRgb(),o=Gb(t).toRgb(),a=n/100;return Gb({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})},Gb.readability=function(e,t){var n=Gb(e),r=Gb(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)},Gb.isReadable=function(e,t,n){var r,o,a=Gb.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},Gb.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=Gb(t[c]));return Gb.isReadable(e,i,{level:a,size:l})||!o?i:(n.includeFallbackColors=!1,Gb.mostReadable(e,["#fff","#000"],n))};var pw=Gb.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"},mw=Gb.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(pw);function hw(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function gw(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 yw(e){return Math.min(1,Math.max(0,e))}function bw(e){return parseInt(e,16)}function ww(e){return 1==e.length?"0"+e:""+e}function Ow(e){return e<=1&&(e=100*e+"%"),e}function Cw(e){return Math.round(255*parseFloat(e)).toString(16)}function xw(e){return bw(e)/255}var Pw,Sw,jw,kw=(Sw="[\\s|\\(]+("+(Pw="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+Pw+")[,|\\s]+("+Pw+")\\s*\\)?",jw="[\\s|\\(]+("+Pw+")[,|\\s]+("+Pw+")[,|\\s]+("+Pw+")[,|\\s]+("+Pw+")\\s*\\)?",{CSS_UNIT:new RegExp(Pw),rgb:new RegExp("rgb"+Sw),rgba:new RegExp("rgba"+jw),hsl:new RegExp("hsl"+Sw),hsla:new RegExp("hsla"+jw),hsv:new RegExp("hsv"+Sw),hsva:new RegExp("hsva"+jw),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 Nw(e){return!!kw.CSS_UNIT.exec(e)}var _w={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},Vw=t.defineComponent({name:"TTag",props:_w,setup:function(e){var n=Jl("tag").globalConfig,r=ei("tag"),o=si({CloseIcon:Ts}).CloseIcon,a=Rl(),l=Hl(),i=ti().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:Gb(t).getLuminance()>.5?"black":"white"};if("outline"!==n&&"light-outline"!==n||(i.borderColor=t),"outline"!==n){i.backgroundColor="dark"===n?t:(r=Gb(t).toRgb(),o=r.r,a=r.g,l=r.b,"rgba(".concat(o,", ").concat(a,", ").concat(l,", 0.1)"))}return"dark"!==n&&(i.color=t),i},p=function(t){var n;e.disabled||null===(n=e.onClick)||void 0===n||n.call(e,{e:t})};return function(){var i=function(){if(!e.closable)return null;var a="".concat(r.value,"__icon-close");return n.value.closeIcon?t.h(n.value.closeIcon(t.h),{class:a}):t.createVNode(o,{onClick:function(t){var n,r=t.e;r&&r.stopPropagation(),null===(n=e.onClose)||void 0===n||n.call(e,{e:r})},class:a},null)}(),s=l("default","content"),f=a("icon"),m=function(e){var t=u.props||{};return Reflect.has(t,"title")?t.title||void 0:e||void 0}(To(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])}}}),Dw={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};function Ew(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Fw(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}}(Ww(Ww({},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=Rl(),r=ei(),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=Ya(Ui(a,l,e.defaultValue||[],e.onChange),2),m=p[0],h=p[1],g=t.computed(function(){return m.value||[]}),y=t.ref(),b=oi(),w=Ri(),O=function(e){var t,n=i(g.value),r=Ya(n.splice(e.index,1),1)[0];h(n,zw(zw({trigger:"tag-remove"},e),{},{item:r})),null===(t=u.value)||void 0===t||t.call(u,zw(zw({},e),{},{item:r,trigger:"tag-remove",value:n}))};return{tagValue:g,clearAll:function(e){h([],{trigger:"clear",e:e.e})},onClose:O,onInnerEnter:function(t,n){var r,o=t?String(t).trim():"",a=c&&g.value.length>=c.value,l=g.value;!a&&o&&(l=g.value.concat(String(o)),h(l,{trigger:"enter",index:l.length-1,item:o,e:n.e})),null==e||null===(r=e.onEnter)||void 0===r||r.call(e,l,zw(zw({},n),{},{inputValue:t}))},onInputBackspaceKeyUp:function(e){g.value.length&&(y.value=e)},onInputBackspaceKeyDown:function(e,t){var n=t.e;if(g.value.length&&"Process"!==n.key&&!w.value){var r=/(Backspace|NumpadDelete)/i.test(n.code)||/(Backspace|NumpadDelete)/i.test(n.key);if(!e&&r){var o,a=g.value.length-1,l=g.value[a],i="backspace",c=g.value.slice(0,-1);h(c,{e:n,index:a,item:l,trigger:i}),null===(o=u.value)||void 0===o||o.call(u,{e:n,index:a,item:l,trigger:i,value:c})}y.value=e}},renderLabel:function(e){var o=e.displayNode,a=e.label,l=s.value?g.value.slice(0,s.value):g.value,i=o?[o]:l.map(function(e,r){var o,a=n("tag",{params:{value:e}});return t.createVNode(Aw,t.mergeProps({key:r,size:d.value,disabled:b.value,onClose:function(e){return O({e:e.e,index:r})},closable:!w.value&&!b.value},null===(o=f.value)||void 0===o?void 0:o.call(f,r,e),v.value),{default:function(){return[null!=a?a:e]}})})||[];if([null,void 0,""].includes(a)||i.unshift(t.createVNode("div",{class:"".concat(r.value,"-tag-input__prefix"),key:"label"},[a])),l.length!==g.value.length){var u=g.value.length-l.length,c=n("collapsedItems",{params:{value:g.value,count:g.value.length-s.value,collapsedTags:g.value.slice(s.value,g.value.length),collapsedSelectedItems:g.value.slice(s.value,g.value.length),onClose:O}});i.push(null!=c?c:t.createVNode(Aw,t.mergeProps({key:"more",size:d.value},v.value),{default:function(){return["+",u]}}))}return i}}}(t.reactive(Ww(Ww({},t.toRefs(e)),{},{getDragProps:R}))),X=q.tagValue,G=q.onInnerEnter,J=q.onInputBackspaceKeyUp,Q=q.onInputBackspaceKeyDown,ee=q.clearAll,te=q.renderLabel,ne=q.onClose,re=t.computed(function(){var t=!(S(X.value)&&X.value.length);return[l.value,s(s(s(s({},c.value,"break-line"===_.value),"".concat(A.value,"-is-empty"),t),"".concat(A.value,"-tag-input--with-tag"),!t),"".concat(A.value,"-tag-input--drag-sort"),e.dragSort&&!f.value&&!v.value)]}),oe=t.computed(function(){var e;return null!==(e=X.value)&&void 0!==e&&e.length?"":D.value}),ae=t.computed(function(){var e;return Boolean(!f.value&&!v.value&&V.value&&F.value&&((null===(e=X.value)||void 0===e?void 0:e.length)||j.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"}),!I.value&&G(e,n),t.nextTick(function(){W(),I.value=!1})},ie=function(e,t){var n,r;I.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;I.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){M(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,Ww(Ww({},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(yb,t.mergeProps({ref:$,borderless:g.value,readonly:p,showInput:!p||!X.value||!(null!==(n=X.value)&&void 0!==n&&n.length),value:j.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})}}}),Uw=Nl(Kw),Yw=["tips"];function $w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Zw(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),Gw({width:"".concat(Math.min(o,1e3),"px")},a)},s=function(e,t){var n;return Gw({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 Qw=["tips"];function eO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tO(e){for(var t=1;t=0||e.multiple&&(null===(r=M.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:S.value},a=t.createVNode(Fg,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},lO(lO({onVisibleChange:j,onOverlayClick:R},b.value),{},{overlayInnerStyle:P.value})),lO({default:function(){return[m.value?I({commonInputProps:_.value,onInnerClear:V,popupVisible:o.visible,allowInput:O.value}):D(o.visible)]}},lO(lO({},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])])}}}),uO=Nl(iO),cO={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]}},sO={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},dO=Symbol("CheckboxGroupProvide");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;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 wO(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}),S=function(){O=Math.min(w+h+2*c,n.value.length),v.visibleData=n.value.slice(w,O)},j=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),S=0;S=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,j,{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:S(),r.value&&(r.value.scrollTop=0)});var k=!1,N=function(){k&&(h=Math.ceil(r.value.offsetHeight/i),S())};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)}}),$i($i({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),j(),w>y-c&&(w=Math.max(0,y-c))}S()}}},handleRowMounted:function(){f.value&&p.value++},refreshContainer:N,fixedHeight:a,calculateScrollY:j})}({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}};function DO(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 EO(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)?EO(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 EO(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 BO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n-1},v=t.ref([]),f=function(e,t){return e.filter(function(e){if(!e.checkAll)return S(t)?t.includes(e.value):t===e.value})},p=t.computed(function(){var e=f(c.value,o.value);v.value=Ra([].concat(i(v.value),i(e)),"value");var t=f(v.value,o.value);return Ra([].concat(i(t),i(c.value)),"value")}),m=t.computed(function(){if(e.onSearch&&e.filterable)return u.value;if(!r.value||!e.filterable&&!H(e.filter))return u.value;var t,n=[];if(u.value.forEach(function(e){e.children&&n.push(TO(TO({},e),{},{children:e.children.filter(d)})),!0===(null==e?void 0:e.checkAll)&&(t=e),d(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:u,optionsMap:s,optionsList:c,optionsCache:l,displayOptions:m,filterMethods:d,searchDisplayOptions:p}}(e,N,w,V),E=D.optionsMap,F=D.optionsList,T=D.optionsCache,M=D.displayOptions,I=D.filterMethods,A=D.searchDisplayOptions,B=function(t,n){if(_.value){var r=N.value,o=r.value,a=r.label,l=function(e){if(void 0!==e){var t=E.value.get(e);return s(s({},o,jt(t,"value")),a,jt(t,"label"))}};t=e.multiple?t.map(function(e){return l(e)}):l(t)}var i;t!==x.value&&(e.multiple&&!e.reserveKeyword&&"check"==n.trigger&&O(""),P(t,RO({selectedOptions:J(t)},n)),e.multiple&&"uncheck"===n.trigger&&n.option&&(null===(i=e.onRemove)||void 0===i||i.call(e,{value:jt(n.option,N.value.value),data:n.option,e:n.e})))},L=Ya(ni(m,!1,function(t,n){var r;null===(r=e.onPopupVisibleChange)||void 0===r||r.call(e,t,n)},"popupVisible"),2),R=L[0],z=L[1],W=t.computed(function(){var t;return null!==(t=!e.multiple&&R.value&&OO(V.value,$.value,he,E)||e.placeholder)&&void 0!==t?t:f(v.value.placeholder)}),K=t.computed(function(){return e.multiple?function(e,t,n,r){var o,a=[],l=bO(e);try{for(l.s();!(o=l.n()).done;){var i=o.value,u=OO(i,t,n,r);u&&a.push(u)}}catch(e){l.e(e)}finally{l.f()}return a}(V.value,$.value,he,E):OO(V.value,$.value,he,E)}),U=t.computed(function(){if(!e.multiple)return RO(RO({},E.value.get(V.value)),{},{value:V.value,label:K.value});var t=S(V.value)?V.value.map(function(e){return E.value.get(e)}):[],n={value:t,onClose:e.multiple?function(e){return Z(e)}:function(){}};return e.minCollapsedNum&&S(V.value)?RO(RO({},n),{},{displayValue:Array.isArray(t)?t.slice(0,e.minCollapsedNum):[]}):n}),Y=t.computed(function(){return Boolean(e.filterable||v.value.filterable||H(e.filter))}),$=t.computed(function(){return Boolean((e.filterable||v.value.filterable)&&H(e.onSearch))}),Z=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=Ir(V.value),c=u[t];if(u.splice(t,1),"backspace"===i){for(var s,d=-1,v=t,f=Q();v>=0;){var p;if(null===(p=f[v])||void 0===p||!p.disabled){d=v;break}v-=1}if(d<0)return;var m=f[d],h=f.filter(function(e){return e.value!==m.value});return B(h.map(function(e){return e.value}),{selectedOptions:h,trigger:i,e:a}),void(null===(s=e.onRemove)||void 0===s||s.call(e,{value:m.value,data:m,e:a}))}"clear"!==i&&B(u,{selectedOptions:J(u),trigger:i,e:a}),null===(r=e.onRemove)||void 0===r||r.call(e,{value:c,data:E.value.get(c),e:a})},q=function(){var t;w.value&&(null===(t=e.onCreate)||void 0===t||t.call(e,w.value),R.value||O(""))},X=t.computed(function(){var e;return null===(e=k.value)||void 0===e?void 0:e.popupRef.getOverlay()}),G=t.computed(function(){return F.value.filter(function(e){return!e.disabled&&!(e["check-all"]||""===e["check-all"])&&!e.checkAll&&I(e)})}),J=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:V.value;return F.value.filter(function(t){if(!t.checkAll)return S(e)?e.includes(t.value):e===t.value})},Q=function(){var e=[],t=_.value?x.value:V.value;return(S(t)?t:[t]).forEach(function(t){var n=E.value.get(_.value?t.value:t);n?e.push(n):e.push(_.value?t:{value:t})}),e},ee=function(t){if(e.multiple){var n=N.value.value,r=V.value.filter(function(e){return F.value.find(function(t){return t.value===e&&t.disabled})}),o=G.value.map(function(e){return e.value}),a=_.value?x.value.map(function(e){return jt(e,n)}):x.value,l=i(t?new Set([].concat(i(a),i(o),i(r))):r);B(l,{selectedOptions:J(l),trigger:t?"check":"clear"})}},te=t.computed(function(){return 0!==ie.value&&ie.value===($.value?A.value.length:G.value.length)}),ne=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=ei();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 S=CO(v.value,P);if(m>0&&S.value.length>m)return;var j=c(S.value);s(S.value,{option:j.find(function(e){return e.value==P}),selectedOptions:j,trigger:S.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:M,optionsList:F,innerPopupVisible:R,setInnerPopupVisible:z,selectPanelRef:j,isFilterable:Y,isRemoteSearch:$,getSelectedOptions:J,setInnerValue:B,onCheckAllChange:ee,isCheckAll:te,innerValue:V,popupContentRef:X,multiple:e.multiple,max:e.max}),re=ne.hoverIndex,oe=ne.virtualFilteredOptions,ae=ne.handleKeyDown,le=ne.filteredOptions,ie=t.computed(function(){var e=G.value.map(function(e){return e.value});return Bo(V.value,e).length}),ue=t.computed(function(){return!te.value&&0!==ie.value}),ce=t.computed(function(){return{max:e.max,multiple:e.multiple,hoverIndex:re.value,selectValue:V.value,reserveKeyword:e.reserveKeyword,handleValueChange:B,handlerInputChange:O,handlePopupVisibleChange:z,handleCreate:q,size:e.size,popupContentRef:X,indeterminate:ue.value,isCheckAll:te.value,onCheckAllChange:ee,getSelectedOptions:J,displayOptions:M.value,emitBlur:fe}});t.provide(xO,ce);var se=function(){!e.multiple&&S(x.value)&&P(void 0,{selectedOptions:[],trigger:"default"}),e.multiple&&!S(x.value)&&P([],{selectedOptions:[],trigger:"default"})},de=po(function(t,n){var r,o=n.e;null===(r=e.onSearch)||void 0===r||r.call(e,"".concat(t),{e:o})},300),ve=function(e,n){e&&!R.value&&z(!0,{e:n.e}),O(e),de("".concat(e),{e:n.e}),t.nextTick(function(){var e,t;oe.value=null===(e=j.value)||void 0===e?void 0:e.visibleData,le.value=null===(t=j.value)||void 0===t?void 0:t.displayOptions})},fe=function(t){var n;null===(n=e.onBlur)||void 0===n||n.call(e,{e:t,value:V.value})},pe=function(e,t){z(e,t),e&&"trigger-element-click"===t.trigger&&O("")},me=function(){var t=Gp(bm.mark(function t(n){var r,o,a;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(a=e.popupProps,!e.loading){t.next=1;break}return t.abrupt("return");case 1: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 2:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}();t.watch(x,function(n){se(),t.nextTick(function(){!function(t){if(e.multiple){var n,r=[],o=AO(t||[]);try{for(o.s();!(n=o.n()).done;){var a=n.value,l=E.value.get(a);l&&r.push(l)}}catch(e){o.e(e)}finally{o.f()}T.value=Array.from(new Set([].concat(r,i(T.value))))}else{var u=E.value.get(t);u&&(T.value=Array.from(new Set([u].concat(i(T.value)))))}}(n)})},{immediate:!0}),t.watch(function(){return e.multiple},function(){se()});var he=t.computed(function(){return $.value?A.value:Q()}),ge=function(){return u("valueDisplay",{params:U.value})||function(){var n,r,o;if(e.multiple&&!1!==(null===(n=e.selectInputProps)||void 0===n?void 0:n.multiple))return null===(r=(o=V.value.slice(0,e.minCollapsedNum?e.minCollapsedNum:V.value.length)).map)||void 0===r?void 0:r.call(o,function(n,r){var o,i=he.value.find(function(e){if(e.value===n)return!0});return t.createVNode(Aw,t.mergeProps({key:r,closable:!(null!=i&&i.disabled||a.value||l.value),size:e.size},e.tagProps,{onClose:function(t){var n,o,a=t.e;a.stopPropagation(),null===(n=e.tagProps)||void 0===n||null===(o=n.onClose)||void 0===o||o.call(n,{e:a}),Z(r)}}),{default:function(){return[i?null!==(o=i.label)&&void 0!==o?o:null==i?void 0:i.value:n]}})})}()};return t.provide("updateScrollTop",function(e){var n;if(j.value){var r=null===(n=j.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=du(n,IO);return t.createVNode("div",{class:"".concat(c.value,"__wrap")},[t.createVNode(uO,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:K.value,disabled:a.value,popupVisible:R.value,inputValue:R.value?w.value:"",placeholder:"".concat(W.value),allowInput:Y.value,"collapsed-items":e.collapsedItems,inputProps:RO(RO({size:e.size,autofocus:e.autofocus},e.inputProps),{},{onkeydown:ae}),tagInputProps:RO({size:e.size},e.tagInputProps),onTagChange:function(e,t){Z(t.index,t)},tagProps:RO({},e.tagProps),popupProps:RO(RO({overlayClassName:["".concat(c.value,"__dropdown"),o]},i),{},{onScrollToBottom:me}),label:e.label,prefixIcon:e.prefixIcon,suffix:e.suffix,suffixIcon:function(){return e.suffixIcon||r.suffixIcon?u("suffixIcon"):e.showArrow&&t.createVNode(Hy,{overlayClassName:"".concat(c.value,"__right-icon"),isActive:R.value},null)},valueDisplay:ge,onPopupVisibleChange:pe,onInputChange:ve,onClear:function(t){var n,r=t.e;B(e.multiple?[]:void 0,{option:null,selectedOptions:J(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:V.value}),q()},0)},onBlur:function(t,n){var r,o=n.e;null===(r=e.onBlur)||void 0===r||r.call(e,{e:o,value:V.value})},onFocus:function(t,n){var r,o=n.e;null===(r=e.onFocus)||void 0===r||r.call(e,{e:o,value:V.value})}},e.selectInputProps),{label:r.label,prefixIcon:r.prefixIcon,suffix:r.suffix,panel:function(){return t.createVNode(MO,t.mergeProps({ref:j},Na(e,["multiple","empty","loading","loadingText","filterable","creatable","panelTopContent","panelBottomContent","filter","scroll","keys"]),{inputValue:w.value}),r)},collapsedItems:r.collapsedItems})])}}}),HO=Nl(zO),WO=Nl(jO),KO=Nl(NO),UO={append:{type:[String,Function]},prepend:{type:[String,Function]}},YO=t.defineComponent({name:"TInputAdornment",props:UO,setup:function(e,n){var r=n.slots,o=ei("input-adornment"),a=Rl(),l=function(e,n,a){var l,i=To(a)||Uo(a);return r[n]||!To(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]}}}),$O=Nl(YO),ZO={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 qO=["pageCount"],XO=t.defineComponent({name:"TPagination",props:ZO,setup:function(e){var n=t.getCurrentInstance().emit,r=t.toRefs(e),o=r.modelValue,a=r.pageSize,l=r.current,i=Rl(),u=Ya(Ui(l,o,e.defaultCurrent,e.onCurrentChange,"current"),2),c=u[0],d=u[1],v=Ya(ni(a,e.defaultPageSize,e.onPageSizeChange,"pageSize"),2),f=v[0],p=v[1],m=Jl("pagination"),h=m.t,g=m.globalConfig,y=ei("pagination"),b=si({PageFirstIcon:Dv,PageLastIcon:Iv,ChevronLeftIcon:os,ChevronRightIcon:bs,ChevronLeftDoubleIcon:Qc,ChevronRightDoubleIcon:ps,EllipsisIcon:ad}),w=b.PageFirstIcon,O=b.PageLastIcon,C=b.ChevronLeftIcon,x=b.ChevronRightIcon,P=b.ChevronLeftDoubleIcon,S=b.ChevronRightDoubleIcon,j=b.EllipsisIcon,k=function(e,n,r,o){var a=ti(),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"),mu()<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,_=du(k,qO),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,M=V.nextMore,I=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&&I.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=I.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);Uo(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($O,{append:"/ ".concat(N.value," ").concat(h(g.value.page))},{default:function(){return[t.createVNode(Ub,{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,n)])),l&&r.length>0&&t.createVNode(HO,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(j,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&&I.value&&z.value?t.createVNode("li",{class:_.btnMoreClass.value,onClick:function(){return K("nextMorePage")},onMouseover:function(){return M.value=!0},onMouseout:function(){return M.value=!1}},[M.value?t.createVNode(S,null,null):t.createVNode(j,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])}}}),GO={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};var JO=t.defineComponent({name:"TPaginationMini",props:GO,setup:function(e){var n=ei("pagination-mini"),r=si({ChevronLeftIcon:os,RoundIcon:nf,ChevronRightIcon:bs,ChevronUpIcon:Ps,ChevronDownIcon:Zc}),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}}),v=function(e,n){return e?t.createVNode(Kg,{content:e,showArrow:!1},"function"==typeof(r=n)||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}}):n;var r};return function(){var r=[n.value,s({},"".concat(n.value,"--outline"),"outline"===e.variant)];return t.createVNode("div",{class:r},[v(c.value.prev,t.createVNode(Iu,{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&&v(c.value.current,t.createVNode(Iu,{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)),v(c.value.next,t.createVNode(Iu,{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))])}}}),QO=Nl(XO),eC=Nl(JO),tC={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},nC={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 rC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function oC(e){for(var t=1;tr)return"finish"}return(void 0===t.value?n:t.value)===a.value?"process":"default"},c=El(),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 nC&&!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(aC,t.mergeProps(r,{index:a,status:u(r,o),key:r.value||o}),null)}))]);var n}}}),iC=Nl(lC),uC=Nl(aC),cC={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},sC={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 dC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vC(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(ou.test(e.code)||ou.test(e.key))&&l.value&&r("select",l.value,{e:e})},h=function(){dl(document,"keydown",m)},g=function(){vl(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},[To(s)&&e.highlightKeyword?t.createVNode(xC,{content:s,keyword:e.value},null):s])})]):t.createVNode("div",{class:"".concat(u.value,"-auto-complete__panel--empty")},[e.empty||c.value.empty])}}});function kC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 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;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 NC({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,NC(NC({},r),{},{value:n})),t.nextTick(function(){var e;null===(e=g.value)||void 0===e||e.addKeyboardListener()}))},S=function(t,n){var r;null===(r=e.onBlur)||void 0===r||r.call(e,NC(NC({},n),{},{value:t}))},j=function(t,n){var r;null===(r=e.onCompositionend)||void 0===r||r.call(e,NC(NC({},n),{},{value:t}))},k=function(t,n){var r;null===(r=e.onCompositionstart)||void 0===r||r.call(e,NC(NC({},n),{},{value:t}))},N=function(t,n){var r;null===(r=e.onEnter)||void 0===r||r.call(e,NC(NC({},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(yb,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:S,onClear:e.onClear,onCompositionend:j,onCompositionstart:k,onEnter:N},x.value),r),i=Array.isArray(e.options)&&t.createVNode(jC,{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=NC(NC({},e.popupProps),{},{overlayInnerStyle:y,overlayInnerClassName:O.value,overlayClassName:w.value});return t.createVNode("div",{class:b.value},[t.createVNode(Fg,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]}}))])}}}),VC=Nl(_C),DC=Nl(xC);function EC(e,t,n){var r=n.disabled;return["".concat(e,"-cascader__icon"),s({},t.disabled,r)]}function FC(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 TC(e){var t=e.value,n=e.multiple,r=e.treeStore,o=e.showAllLevels;if(n||0!==t&&!t)return"";if(S(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 MC(e){var t=[];return e.forEach(function(e){t[e.level]?t[e.level].push(e):t[e.level]=[e]}),t}function IC(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 AC=function(e){var t=[];return S(e)?e.length>0&&E(e[0])?t=e.map(function(e){return e.value}):e.length&&(t=e):BC(e)||(t=E(e)?[e.value]:[e]),t};function BC(e){return!(Uo(e)&&!isNaN(e))&&Wo(e)}function LC(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=Ir(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 RC={node:{type:Object,default:function(){return{}}},optionChild:{type:[Object,Array]},cascaderContext:{type:Object},onChange:Function,onClick:Function,onMouseenter:Function},zC=t.defineComponent({name:"TCascaderItem",props:RC,setup:function(e){var n=t.ref();Wi(n);var r=ei("cascader__item"),o=ei(),a=si({ChevronRightIcon:bs}).ChevronRightIcon,l=ti(),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(FC(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(FC(t,n,r)))}(o.value,e.node,u.value,e.cascaderContext)});function f(e,n){var o=n.inputVal,a=o?IC(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?IC(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(Du,{class:v.value,size:"small"},null):t.createVNode(a,{class:v.value},null))])}}}),HC={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},WC=t.defineComponent({name:"TCascaderSubPanel",props:{option:HC.option,empty:HC.empty,trigger:HC.trigger,onChange:HC.onChange,loading:HC.loading,loadingText:HC.loadingText,cascaderContext:{type:Object}},setup:function(e){var n=zl(),r=ei("cascader"),o=Jl("cascader").globalConfig,a=t.computed(function(){return MC(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(),r.inputVal||(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=Ya(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(zC,{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(Uo(r)&&r<0&&console.warn("TDesign Warn:","max should > 0"),!(d.length>r&&Uo(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 KC="__tdesign_tree-node__",UC=function(){return Ti(function e(t){Mi(this,e),s(this,KC,void 0),this[KC]=t},[{key:"value",get:function(){return this[KC].value}},{key:"label",get:function(){return this[KC].label}},{key:"data",get:function(){return this[KC].data}},{key:"actived",get:function(){return this[KC].actived}},{key:"expanded",get:function(){return this[KC].expanded}},{key:"checked",get:function(){return this[KC].checked}},{key:"indeterminate",get:function(){return this[KC].indeterminate}},{key:"loading",get:function(){return this[KC].loading}},{key:"disabled",get:function(){return this[KC].isDisabled()}},{key:"getLevel",value:function(){return this[KC].getLevel()}},{key:"getIndex",value:function(){return this[KC].getIndex()}},{key:"isFirst",value:function(){return this[KC].isFirst()}},{key:"isLast",value:function(){return this[KC].isLast()}},{key:"isLeaf",value:function(){return this[KC].isLeaf()}},{key:"insertBefore",value:function(e){return this[KC].insertBefore(e)}},{key:"insertAfter",value:function(e){return this[KC].insertAfter(e)}},{key:"appendData",value:function(e){return this[KC].append(e)}},{key:"getPath",value:function(){return this[KC].getPath().map(function(e){return e.getModel()})}},{key:"getParent",value:function(){var e;return null===(e=this[KC].parent)||void 0===e?void 0:e.getModel()}},{key:"getParents",value:function(){return this[KC].getParents().map(function(e){return e.getModel()})}},{key:"getRoot",value:function(){var e=this[KC].getRoot();return null==e?void 0:e.getModel()}},{key:"getSiblings",value:function(){return this[KC].getSiblings().map(function(e){return e.getModel()})}},{key:"getChildren",value:function(e){var t=this[KC],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 Lo(r)&&(n=r);return n}},{key:"remove",value:function(e){var t=this[KC];if(e){var n=t.tree.getNode(e);if(n)n.getParents().map(function(e){return e.value}).indexOf(t.value)<0?fi("Tree","`".concat(e,"` is not a childNode of current node")):n.remove();else fi("Tree","`".concat(e,"` is not exist"))}else t.remove()}},{key:"setData",value:function(e){var t=this[KC],n=["value","label","disabled"],r=la(e,["children"].concat(n)),o=t.tree.config.keys;n.forEach(function(t){var n=jt(e,(null==o?void 0:o[t])||t);Zo(n)||(r[t]=n)}),Object.assign(t.data,r),Object.assign(t,r),t.update()}}])}();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 $C(e){for(var t=1;t0?this.append(n):this.children=!1,this.update();case 2: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){(ZC.call(qC,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 Lo(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=!!jt(this,"tree.config.draggable");return"boolean"==typeof this.draggable&&(e=this.draggable),e}},{key:"isExpandMutex",value:function(){var e=!!jt(this,"tree.config.expandMutex");return"boolean"==typeof this.expandMutex&&(e=this.expandMutex),e}},{key:"isActivable",value:function(){var e=!!jt(this,"tree.config.activable");return"boolean"==typeof this.activable&&(e=this.activable),e}},{key:"isCheckable",value:function(){var e=!!jt(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()||($o(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=$C({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=$C({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=$C({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=$C({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=$C({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 UC(this),this.model=e),e}}]);var t}();function ex(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tx(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 To(e)||Uo(e)?t=this.nodeMap.get(e):e instanceof QC&&(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(To(e)||Uo(e)?r=e:e instanceof QC&&(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=tx({filter:null,level:1/0},t);Uo(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 QC(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 To(e)||Uo(e)?(n=e,r=this.getNode(n),o=t):e instanceof QC&&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 QC?n.data.appendTo(this,n.node):S(n.data)?n.node.append(n.data):n.node.append([n.data]),n.node.updateRelated()):n.data instanceof QC?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[JC],"changed"):this.getNodes().forEach(function(e){o.set(e[JC],"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=tx({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 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 ox(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=AC(t);if(e){if(S(r)&&0===n.length){var o=new Map,a=Ya(r,1)[0];if(!BC(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(AC(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 nx({keys:ox(ox({},o),{},{children:To(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&&!S(e)||!n&&S(e)&&"single"===o&&!r})(u.value,p.value)&&t(n?[]:"","invalid-value"),BC(u.value)?m.scopeVal=n?[]:"":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 lx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ix(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 yx(e,t,n,r){if(""===e||null===e)return Yl();var o=e;if(/[w|W]/g.test(t)){To(o)||(o=Yl(o).locale(r||"zh-cn").format(t));var a=o.split(/[-/.\s]/)[0],l=o.split(/[-/.\s]/)[1],i=t.split(/[-/.\s]/)[1],u=Yl(a,"YYYY").locale(r||"zh-cn").startOf("year");(u.day()>4||0===u.day())&&(u=u.add(1,"week"));for(var c=Yl(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)){To(o)||(o=Yl(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=Yl(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=Yl(o,t).isValid()?Yl(o,t):Yl(o);return y.isValid()?y:(pi("DatePicker","Check whether the format\u3001value format is valid.\n value: '".concat(e,"', format: '").concat(t,"'")),Yl())}function bx(e,t){return Array.isArray(e)?e.every(function(e){return""===e||(Yl(e,t).isValid()||Yl(e).isValid())}):""===e||(Yl(e,t).isValid()||Yl(e).isValid())}function wx(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&&yx(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()})?(pi("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=yx(t,n).locale(o);return a.isValid()?"time-stamp"===r?a.toDate().getTime():"Date"===r?a.toDate():a.format(r||n):(pi("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 Ox(e,t){if(e&&t){var n=e.split(":"),r=t.split(":");return n.slice(0,r.length).join(":")}return e}function Cx(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?Yl(e,"string"==typeof e?t:void 0).format(n):Ox(r[o],n)}),a=a.length?a:r.map(function(e){return Ox(e,n)}),Array.isArray(e)?a:null===(o=a)||void 0===o?void 0:o[0]}function xx(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:hx}:"month"===n?{format:r||"YYYY-MM",valueType:o||r||"YYYY-MM",timeFormat:hx}:"quarter"===n?{format:r||"YYYY-[Q]Q",valueType:o||r||"YYYY-[Q]Q",timeFormat:hx}:"week"===n?{format:r||"gggg-wo",valueType:o||r||"gggg-wo",timeFormat:hx}:"date"===n?{format:r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),valueType:o||r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),timeFormat:gx(r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""))||hx}:(pi("DatePicker","Invalid mode: ".concat(n)),{})}function Px(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:[Yl().year(),Yl().year()],month:[Yl().month(),Yl().month()],time:[Yl().format(l),Yl().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 yx(e,o).year()}),month:t.map(function(e){return yx(e,o).month()}),time:t.map(function(e){return yx(e,o).format(l)})}:u}function Sx(e){var n,r,o,a,l=t.toRefs(e),i=Ya(Ui(l.value,l.modelValue,e.defaultValue,e.onChange),2),u=i[0],c=i[1],s=t.computed(function(){return xx({mode:e.mode,format:e.format,enableTimePicker:!e.multiple&&e.enableTimePicker})});e.enableTimePicker&&(gx(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(Cx(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(yx(e.multiple?null===(r=u.value)||void 0===r?void 0:r[0]:u.value,s.value.format).month()),f=t.ref(yx(e.multiple?null===(o=u.value)||void 0===o?void 0:o[0]:u.value,s.value.format).year()),p=t.ref(wx(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?bx(u.value,s.value.format)&&(p.value=wx(u.value,{format:s.value.format}),d.value=Cx(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 jx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 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;t25){var a=o(this).startOf(t).add(1,t).date(r),l=o(this).endOf(e);if(a.isBefore(l))return 1}var i=o(this).startOf(t).date(r).startOf(e).subtract(1,"millisecond"),u=this.diff(i,e,!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)}}}()}(Dx);var Ex=Za(Dx.exports),Fx={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}}}(Fx);var Tx=Za(Fx.exports),Mx={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)}}}(Mx);var Ix=Za(Mx.exports),Ax={exports:{}};!function(e){e.exports=function(){var e="month",t="quarter";return function(n,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(n,r){return n=Number(n),this.$utils().p(r)===t?this.add(3*n,e):a.bind(this)(n,r)};var l=o.startOf;o.startOf=function(n,r){var o=this.$utils(),a=!!o.u(r)||r;if(o.p(n)===t){var i=this.quarter()-1;return a?this.month(3*i).startOf(e).startOf("day"):this.month(3*i+2).endOf(e).endOf("day")}return l.bind(this)(n,r)}}}()}(Ax);var Bx=Za(Ax.exports),Lx={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)}}}(Lx);var Rx=Za(Lx.exports),zx={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)}}}()}(zx);var Hx=Za(zx.exports);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;t2&&void 0!==arguments[2]?arguments[2]:"zh-cn";return Zx(e,t)&&Yl(e).locale(n).week()===Yl(t).locale(n).week()}function Xx(e,t){return Zx(e,t)&&e.getDate()===t.getDate()}function Gx(e,t){var n=e.getTime(),r=t.getTime();return nr?1:0}function Jx(e,t){var n,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"zh-cn";return{isSameYear:Yx,isSameQuarter:$x,isSameMonth:Zx,isSameWeek:qx,isSameDate:Xx}["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 Qx(e,t,n){return t&&-1===Gx(e,t)||n&&1===Gx(e,n)}function eP(){var e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0)}function tP(e,t){return Yl(e).subtract(t,"month").toDate()}function nP(e,t){return Yl(e).add(t,"month").toDate()}function rP(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,Ux({year:t,month:n}))}({year:n,month:r}),g=Ux({year:n,month:r}),y=[],b=1,w=eP();b<=g;b++){var O=new Date(n,r,b);y.push({text:b,active:!1,value:O,disabled:H(u)&&u(O)||!p&&Qx(O,c,s),now:Jx(w,O),firstDayOfMonth:1===b,lastDayOfMonth:b===g,type:"current-month",dayjsObj:Yl(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&&Qx(m,c,s),additional:!0,type:"prev-month",dayjsObj:Yl(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&&Qx(h,c,s),additional:!0,type:"next-month",dayjsObj:Yl(h).locale(v)});var C=zn(y,7);return l&&C.forEach(function(e){e.unshift(Kx(Kx({},e[0]),{},{active:!1,value:e[0].value,text:Yl(e[0].value).locale(v).week(),dayjsObj:Yl(e[0].value).locale(v)}))}),C}function oP(e,t){var n=Nx({},(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&&Jx(r,n,u),c=a&&Jx(a,n,u),s=o&&Jx(o,n,u),d=l&&Jx(l,n,u);return t.active=(i||s)&&!t.additional,r&&o&&(t.highlight=Yl(n).isBetween(r,o,u,"[]")&&!t.additional,t.startOfRange=i,t.endOfRange=s),a&&l&&(t.hoverHighlight=Yl(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 Jx(Yl(e).toDate(),n.value,u)&&!n.additional}):n.active=r&&Jx(e.value,r,u)&&!n.additional;return n})})}function aP(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.match(/[ap]m/i)||[""],n=Ya((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]}}Yl.extend(Ex),Yl.extend(Tx),Yl.extend(Ix),Yl.extend(Bx),Yl.extend(Rx),Yl.extend(Hx),Yl.extend(Vx);var lP={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},iP=t.defineComponent({name:"TDatePickerHeader",props:{mode:{type:String,default:"date"},year:Number,month:Number,internalYear:Array,partial:String,onMonthChange:Function,onYearChange:Function,onJumperClick:Function},setup:function(e){var n=Jl("classPrefix").classPrefix,r=ei("date-picker__header"),o=Jl("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,n="end"===e.partial&&"year"===e.mode&&Number(e.internalYear[1])-Number(e.internalYear[0])<=9?9:0;return(null===(t=a.value.find(function(t){return t.value-(e.year+n)<=9&&t.value-(e.year+n)>=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(HO,{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(HO,{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(eC,{tips:v.value[e.mode],size:"small",onChange:e.onJumperClick},null)])}}}),uP=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:Ul.Dayjs},setup:function(e){var n=ei("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=aP(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=aP(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 cP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sP(e){for(var t=1;t=f&&y<=m&&b>p&&b1}).length;return i.value?Yl(i.value,u.value):e?Yl().hour(0).minute(0).second(0):Yl()});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=gP.meridiem,r=gP.hour,o=gP.minute,a=gP.second,l=gP.milliSecond;return e.match(yP).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=NP.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(NP.includes(t)){var r=NP.indexOf(t),o=l.value[r]||1;n=t===gP.hour?bP.test(u.value)?11:23:t===gP.milliSecond?999:59;var a=Fa(0,n+1,Number(o)).map(function(e){return ja(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 pP},w=function(e,t){e===gP.hour&&/[h]{1}/.test(u.value)&&(t%=12);var n=b(e).indexOf(ja(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)+_P,f=g(),p=f.offsetHeight+f.margin,O=Math.abs(Math.round(d/p+.5)),C=pP[Math.min(O-1,1)].toLowerCase();if(Number.isNaN(O)&&(O=1),NP.includes(t)){var x=59;t===gP.hour?x=/[h]{1}/.test(u.value)?11:23:t===gP.milliSecond&&(x=999);var P=NP.indexOf(t),S=Fa(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]}(S,Number(b(t)[Math.min(O-1,x+1,S.length-1)]),Number(l.value[P])||1),Number.isNaN(c)&&(c=S[S.length-1]),t===gP.hour&&v.value.includes(gP.meridiem)&&h.value.hour()>=12&&(c=Number(c)+12)}else c=C;var j=w(t,c);if(Yl(h.value).isValid()&&(!i.value||Yl(i.value,u.value,!0).isValid())){if(NP.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===vP&&_>=12?h.value.hour(_-12).format(u.value):C===fP&&_<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)),j!==d){var V,D=m[v.value.indexOf(t)];if(!D||D.scrollTop===j)return;null===(V=D.scrollTo)||void 0===V||V.call(D,{top:j,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,NP.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===gP.meridiem?h.value.format("a")===t:(o=null===(n=(r=h.value)[e])||void 0===n?void 0:n.call(r),e===gP.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(NP.includes(t))t===gP.hour&&h.value.format("a")===fP&&v.value.includes(gP.meridiem)&&(n=Number(n)+12),C(t,n,r,"smooth");else{var a,l=h.value.hour();if(n===vP&&l>=12)null===(a=e.onChange)||void 0===a||a.call(e,h.value.hour(l-12).format(u.value),o);else if(n===fP&&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)}},[NP.includes(a)?bP.test(u.value)&&a===gP.hour&&"00"===i?"12":i:n.value[i===vP?"anteMeridiem":"postMeridiem"]])})])})])}}});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}function EP(e){for(var t=1;t1}).length}),d=t.computed(function(){s.value;var t=Yl(e.value,e.format);return e.value&&t.isValid()?t.format(e.format):Yl().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 Zo(e.presets)?s.value?null:t.createVNode(Mu,{theme:"primary",variant:"text",size:"small",onClick:function(){var t;return null===(t=e.onChange)||void 0===t?void 0:t.call(e,Yl().format(e.format))}},{default:function(){return[n.value.now]}}):Object.keys(e.presets||[]).map(function(n){return t.createVNode(Mu,{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]):pi("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(VP,t.mergeProps(e,{ref:c,format:e.format||"HH:mm:ss",steps:e.steps||hP,value:Yl(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(Mu,{theme:"primary",variant:"base",disabled:!e.value,onClick:function(t){var n;return null===(n=e.handleConfirmClick)||void 0===n?void 0:n.call(e,t,d.value)},size:"small"},{default:function(){return[n.value.confirm]}}),p()]):null])}}});function TP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function MP(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 pS=t.defineComponent({name:"TDateRangePicker",props:JP,setup:function(e,n){var r=n.slots,o=ei("date-range-picker"),a=function(e){var n=ei("date-range-picker"),r=Jl("datePicker").globalConfig,o=si({CalendarIcon:Nc}).CalendarIcon,a=Rl(),l=t.ref(!1),i=t.ref(),u=zP(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 xx({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(wx(e.value,{format:g.value.format})),C=Ri(),x=t.computed(function(){return WP(WP({},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:KP[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:KP[a],e:o}),w.value="first"===a?0:1},onChange:function(e,t){if(t.e,t.position,O.value=e,bx(e,g.value.format)){m.value=e;var n=[],r=[],o=[];e.forEach(function(e){n.push(yx(e,g.value.format).year()),r.push(yx(e,g.value.format).month()),o.push(yx(e,g.value.format).format(g.value.timeFormat))}),p.value=n,f.value=r,v.value=o}},onEnter:function(e){(bx(e,g.value.format)||bx(c.value,g.value.format))&&(y.value=!1,bx(e,g.value.format)?null==d||d(wx(e,{format:g.value.format,targetFormat:g.value.valueType,autoSwap:!0}),{dayjsValue:e.map(function(e){return yx(e,g.value.format)}),trigger:"enter"}):bx(c.value,g.value.format)?O.value=wx(c.value,{format:g.value.format}):O.value=[])}})}),P=t.computed(function(){var t,r,o;return WP(WP({expandAnimation:!0},la(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?bx(e,g.value.format)&&(O.value=wx(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=Ri(),x=t.computed(function(){return xx({mode:e.mode,enableTimePicker:e.enableTimePicker,format:e.format,valueType:e.valueType})}),P=t.ref(!1);function j(e){y.value=!0;var t=i(l.value);t[g.value]=wx(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]=wx(t,{format:x.value.format}),h.value=a,l.value=a,!e.enableTimePicker){var c=a.findIndex(function(e){return!e||!bx(e,x.value.format)});if(-1===c&&2===a.length&&(!b.value&&yx(a[0],x.value.format).isAfter(yx(a[1],x.value.format))?(a[g.value?0:1]="",h.value=a,l.value=a):null==w||w(wx(a,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:a.map(function(e){return yx(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=tP(a,o):"current"===n?l=new Date:"next"===n&&(l=nP(a,o));var u=i(f.value);u[r]=l.getFullYear();var c=i(p.value);c[r]=l.getMonth();var s=fS(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=aP(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=Yl(s,x.value.format).isValid()?Yl(s,x.value.format):Yl().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=wx(c,{format:x.value.format}),h.value=wx(c,{format:x.value.format})}t.watch(u,function(t){if(t)if(P.value=!1,h.value=wx(v.value||[],{format:x.value.valueType,targetFormat:x.value.format}),m.value=Cx(v.value||[Yl().format(x.value.timeFormat),Yl().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 yx(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 yx(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 yx(e,x.value.format).month()});f.value=v.value.map(function(e){return yx(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=Px({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,e.needConfirm?l.value=wx(v.value,{format:x.value.valueType,targetFormat:x.value.format}):D()});var D=function(t){var n,r=i(l.value);-1===r.findIndex(function(e){return!e||!bx(e,x.value.format)})&&2===r.length&&(!b.value&&yx(r[0],x.value.format).isAfter(yx(r[1],x.value.format))?(r[g.value?0:1]="",h.value=r,l.value=r):(null==e||null===(n=e.onConfirm)||void 0===n||n.call(e,{date:r.map(function(e){return Yl(e).toDate()}),e:t||null,partial:g.value?"end":"start"}),null==w||w(wx(r,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:r.map(function(e){return yx(e,x.value.format)}),trigger:"confirm"})))};function E(e){var t=e.e;D(t);var n=i(l.value),r=n.findIndex(function(e){return!e||!bx(e,x.value.format)});if(b.value&&g.value)2===n.length&&(u.value=!1);else{var o=r;-1===o&&(o=g.value?0:1),g.value=o,b.value=!!n[0]}}function F(t,n){var r,o=t;(H(t)&&(o=t()),S(o))?(null==w||w(wx(o,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:o.map(function(e){return yx(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 T(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=fS(r,o,a,l);o=u.nextYear,a=u.nextMonth,f.value=o,l||(p.value=a)}function M(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}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,needConfirm:e.needConfirm,onCellClick:N,onCellMouseEnter:j,onCellMouseLeave:k,onJumperClick:_,onConfirmClick:E,onPresetClick:F,onYearChange:T,onMonthChange:M,onTimePickerChange:V}});return function(){return t.createVNode("div",{class:o.value},[t.createVNode(cS,{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(vS,I.value,null)}},null)])}}}),mS={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 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}var gS=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 Yl(e).toDate()}),trigger:"month-select"})}t.onMounted(function(){if(2===r.value.length&&!e.enableTimePicker){var t=r.value.map(function(e){return yx(e,d.value.format).month()});o.value=r.value.map(function(e){return yx(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 j=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(vS,j.value,null)}}}),yS=Nl(ZP),bS=Nl(GP),wS=Nl(pS),OS=Nl(gS),CS={colon:Boolean,data:{type:Object,default:function(){return{}}},disabled:{type:Boolean,default:void 0},errorMessage:{type:Object},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,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},xS={exports:{}},PS={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}(PS,PS.exports);var SS=PS.exports;!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){t="string"==typeof t?(0,r.default)({format:t},i):(0,r.default)(t,i);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,l=t.delimiters.find(function(e){return-1!==t.format.indexOf(e)}),u=t.strictMode?l:t.delimiters.find(function(t){return-1!==e.indexOf(t)}),c=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: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 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}}}}(c);try{for(d.s();!(n=d.n()).done;){var v=o(n.value,2),f=v[0],p=v[1];if(!f||!p||f.length!==p.length)return!1;s[p.charAt(0)]=f}}catch(e){d.e(e)}finally{d.f()}var m=s.y;if(m.startsWith("-"))return!1;if(2===s.y.length){var h=parseInt(s.y,10);if(isNaN(h))return!1;m=h<(new Date).getFullYear()%100?"20".concat(s.y):"19".concat(s.y)}var g=s.m;1===s.m.length&&(g="0".concat(s.m));var y=s.d;return 1===s.d.length&&(y="0".concat(s.d)),new Date("".concat(m,"-").concat(g,"-").concat(y,"T00:00:00.000Z")).getUTCDate()===+s.d}if(!t.strictMode)return"[object Date]"===Object.prototype.toString.call(e)&&isFinite(e);return!1};var n,r=(n=SS)&&n.__esModule?n:{default:n};function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||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}}(e,t)||a(e,t)||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.")}()}function a(e,t){if(e){if("string"==typeof e)return l(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)?l(e,t):void 0}}function l(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=_S)&&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}(ES,ES.exports);var FS=ES.exports,TS={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(_S),r=o(SS);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}(TS,TS.exports);var MS=TS.exports,IS={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]:{};(0,r.default)(t);var a=("object"===o(n)?n.version:arguments[1])||"";if(!a)return e(t,{version:4})||e(t,{version:6});if("4"===a.toString())return i.test(t);if("6"===a.toString())return c.test(t);return!1};var n,r=(n=_S)&&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)}var a="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",l="(".concat(a,"[.]){3}").concat(a),i=new RegExp("^".concat(l,"$")),u="(?:[0-9a-fA-F]{1,4})",c=new RegExp("^("+"(?:".concat(u,":){7}(?:").concat(u,"|:)|")+"(?:".concat(u,":){6}(?:").concat(l,"|:").concat(u,"|:)|")+"(?:".concat(u,":){5}(?::").concat(l,"|(:").concat(u,"){1,2}|:)|")+"(?:".concat(u,":){4}(?:(:").concat(u,"){0,1}:").concat(l,"|(:").concat(u,"){1,3}|:)|")+"(?:".concat(u,":){3}(?:(:").concat(u,"){0,2}:").concat(l,"|(:").concat(u,"){1,4}|:)|")+"(?:".concat(u,":){2}(?:(:").concat(u,"){0,3}:").concat(l,"|(:").concat(u,"){1,5}|:)|")+"(?:".concat(u,":){1}(?:(:").concat(u,"){0,4}:").concat(l,"|(:").concat(u,"){1,6}|:)|")+"(?::((?::".concat(u,"){0,5}:").concat(l,"|(?::").concat(u,"){1,7}|:))")+")(%[0-9a-zA-Z.]{1,})?$");e.exports=t.default,e.exports.default=t.default}(IS,IS.exports);var AS=IS.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,i.default)(t,s)).validate_length&&e.length>t.max_allowed_length)return!1;if(!t.allow_fragments&&(0,o.default)(e,"#"))return!1;if(!t.allow_query_components&&((0,o.default)(e,"?")||(0,o.default)(e,"&")))return!1;var u,v,f,p,m,h,g,y;if(g=e.split("#"),e=g.shift(),g=e.split("?"),e=g.shift(),(g=e.split("://")).length>1){if(u=g.shift().toLowerCase(),t.require_valid_protocol&&-1===t.protocols.indexOf(u))return!1}else{if(t.require_protocol)return!1;if("//"===e.slice(0,2)){if(!t.allow_protocol_relative_urls)return!1;g[0]=e.slice(2)}}if(""===(e=g.join("://")))return!1;if(g=e.split("/"),""===(e=g.shift())&&!t.require_host)return!0;if((g=e.split("@")).length>1){if(t.disallow_auth)return!1;if(""===g[0])return!1;if((v=g.shift()).indexOf(":")>=0&&v.split(":").length>2)return!1;var b=v.split(":"),w=(P=2,function(e){if(Array.isArray(e))return e}(x=b)||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}}(x,P)||function(e,t){if(e){if("string"==typeof e)return c(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)?c(e,t):void 0}}(x,P)||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.")}()),O=w[0],C=w[1];if(""===O&&""===C)return!1}var x,P;p=g.join("@"),h=null,y=null;var S=p.match(d);S?(f="",y=S[1],h=S[2]||null):(f=(g=p.split(":")).shift(),g.length&&(h=g.join(":")));if(null!==h&&h.length>0){if(m=parseInt(h,10),!/^[0-9]+$/.test(h)||m<=0||m>65535)return!1}else if(t.require_port)return!1;if(t.host_whitelist)return(0,r.default)(f,t.host_whitelist);if(""===f&&!t.require_host)return!0;if(!((0,l.default)(f)||(0,a.default)(f,t)||y&&(0,l.default)(y,6)))return!1;if(f=f||y,t.host_blacklist&&(0,r.default)(f,t.host_blacklist))return!1;return!0};var n=u(_S),r=u(DS),o=u(zS),a=u(MS),l=u(AS),i=u(SS);function u(e){return e&&e.__esModule?e:{default:e}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=t:hu(e)>=t},len:function(e,t){return hu(String(e))===t},number:function(e){return Uo(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 YS(e,t){return $S.apply(this,arguments)}function $S(){return $S=Gp(bm.mark(function e(t,n){var r,o,a,l,i,u,c;return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r={result:!0},o=Object.keys(n),i=0;case 1: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:l.value.requiredMarkPosition}),g=t.computed(function(){return r.label||e.label}),y=t.computed(function(){return!(null==v||!v.colon||!g.value)}),b=ei("form__label"),w=t.computed(function(){return Yo(e.labelAlign)?null==v?void 0:v.labelAlign:e.labelAlign}),O=t.computed(function(){return Yo(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=Uo(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])}},j=function(){var e=function(e){return t.createVNode("span",{class:a.value.status},[t.createVNode(e,null,null)])},n=D.value;if(F.value===ab.SUCCESS)return e(u);if(null!=n&&n[0]){var r=n[0].type||"error";return e({error:c,warning:d,success:u}[r])}return null},k=function(){if(!1!==e.statusIcon){var n=o("statusIcon",{defaultNode:j()});if(n)return t.createVNode("span",{class:a.value.status},[n]);if(!1!==n)return(n=null==v?void 0:v.renderContent("statusIcon",{defaultNode:j(),params:e}))||void 0}},N=t.computed(function(){if(!q.value)return"";if(F.value===ab.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=Uo(O.value)?{marginLeft:"".concat(O.value,"px")}:{marginLeft:O.value}),e}),D=t.ref([]),E=t.ref([]),F=t.ref(ab.TO_BE_VALIDATED),T=t.ref(!1),M=t.ref(!1),I=function(){M.value=!1,D.value=[],E.value=[],F.value=ab.TO_BE_VALIDATED},A=function(){var t,n=Object.prototype.toString.call(jt(null==v?void 0:v.data,e.name));return"[object String]"===n&&(t=""),"[object Array]"===n&&(t=[]),"[object Object]"===n&&(t={}),t},B=function(){var n=Gp(bm.mark(function n(){var r,o=arguments;return bm.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=1;break}return n.abrupt("return");case 1:return"empty"===r?Ma(null==v?void 0:v.data,e.name,A()):"initial"===r&&Ma(null==v?void 0:v.data,e.name,U.value),n.next=2,t.nextTick();case 2:T.value?M.value=!0:I();case 3:case"end":return n.stop()}},n)}));return function(){return n.apply(this,arguments)}}(),L=t.computed(function(){var e;return null!==(e=null==v?void 0:v.errorMessage)&&void 0!==e?e:l.value.errorMessage}),R=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 jt(null==v?void 0:v.rules,e.name)||jt(null==v?void 0:v.rules,r)||[]}),z=function(){var t=Gp(bm.mark(function t(n){var r,o;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if((o={successList:[],errorList:[],rules:[],resultList:[],allowSetValue:!1}).rules="all"===n?R.value:R.value.filter(function(e){return(e.trigger||"change")===n}),!R.value.length||null!==(r=o.rules)&&void 0!==r&&r.length){t.next=1;break}return t.abrupt("return",o);case 1:return o.allowSetValue=!0,t.next=2,ZS(K.value,o.rules);case 2: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&&L.value[n]){var r=To(e.label)?e.label:e.name;t.message=(o=L.value[n],a={name:r,validate:t[n]},o.replace(/\${(.*?)}/g,function(e,t){var n;return null!==(n=a[t.trim()])&&void 0!==n?n:""}))}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 3:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}(),H=function(){var t=Gp(bm.mark(function t(n,r){var o,a,l,i,u;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return T.value=!0,Z.value=r,t.next=1,z(n);case 1: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?ab.FAIL:ab.SUCCESS),M.value&&I(),T.value=!1,t.abrupt("return",s({},e.name,0===l.length||u));case 2:case"end":return t.stop()}},t)}));return function(e,n){return t.apply(this,arguments)}}(),W=function(){var t=Gp(bm.mark(function t(n){var r,o,a;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=1,z(n);case 1:return r=t.sent,o=r.errorList,a=r.resultList,t.abrupt("return",s({},e.name,0===o.length||a));case 2:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}(),K=t.computed(function(){return(null==v?void 0:v.data)&&jt(null==v?void 0:v.data,e.name)}),U=t.ref(void 0),Y=t.toRefs(e).name,$=t.reactive({name:Y,resetHandler:I,resetField:B,validate:H,validateOnly:W,setValidateMessage:function(e){(e||S(e))&&(0===e.length&&(D.value=[],F.value=ab.SUCCESS),D.value=e.map(function(e){return ej(ej({},e),{},{result:!1})}),F.value=ab.FAIL)}});t.onMounted(function(){U.value=Ir(K.value),null==v||v.children.push($)}),t.onBeforeUnmount(function(){v&&(v.children=null==v?void 0:v.children.filter(function(e){return e!==$}))}),t.watch(K,Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,H("change");case 1:case"end":return e.stop()}},e)})),{deep:!0}),t.watch(function(){return[e.name,JSON.stringify(e.rules)].join(",")},function(){H("change")});var Z=t.ref(void 0),q=t.computed(function(){return Lo(Z.value)?Z.value:Lo(e.showErrorMessage)?e.showErrorMessage:null==v?void 0:v.showErrorMessage}),X=t.computed(function(){return[a.value.formItem,XS(p.value,e.name),s(s({},a.value.formItemWithHelp,G.value),a.value.formItemWithExtra,J.value)]}),G=t.computed(function(){var e=o("help");return e?t.createVNode("div",{class:a.value.help},[e]):null}),J=t.computed(function(){var e,n=function(e){return t.createVNode("div",{class:a.value.extra,title:e},[e])},r=D.value;return q.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}),Q=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])}),ee=function(){var e=Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,H("blur");case 1:case"end":return e.stop()}},e)}));return function(){return e.apply(this,arguments)}}();return t.provide(ib,{handleBlur:ee}),function(){return t.createVNode("div",{class:X.value},[P(),t.createVNode("div",{class:_.value,style:V.value},[t.createVNode("div",{class:a.value.controlsContent},[o("default"),k()]),G.value,Q.value,J.value])])}}}),nj=Nl(GS),rj=Nl(tj),oj={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},aj=Symbol("RadioGroupProvide"),lj=Symbol("RadioButtonProvide"),ij=t.defineComponent({name:"TRadio",inheritAttrs:!1,props:oj,setup:function(e,n){var r=n.attrs,o=t.ref(),a=t.toRefs(e),l=Ya(Ui(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(aj,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 fu({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 la(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=Ri({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=ti().STATUS,P=t.inject(lj,void 0),S=ei("radio-button"),j=ei("radio"),k=t.computed(function(){return P?S.value:j.value}),N=t.computed(function(){return["".concat(k.value),s(s({},x.value.checked,C.value.checked),x.value.disabled,C.value.disabled)]}),_=Hl();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":To(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")])])}}}),uj={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 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 sj(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},l=a.window,i=void 0===l?fj:l,u=du(a,vj),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 mj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hj(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if("outline"!==e.variant){var n=l.value.querySelector(p.value),r=t?"none":"all";if(n){var o=n.offsetWidth,a=n.offsetHeight,i=n.offsetLeft,u=n.offsetTop;o?m.value={"transition-property":r,width:"".concat(o,"px"),height:"".concat(a,"px"),left:"".concat(i,"px"),top:"".concat(u,"px")}:function(){var e=document.createElement("div");e.setAttribute("style","position: absolute; visibility: hidden;"),e.appendChild(l.value.cloneNode(!0)),document.body.appendChild(e);var t=e.querySelector(p.value),n=t.offsetWidth,r=t.offsetHeight,o=t.offsetLeft,a=t.offsetTop;m.value=hj(hj({},m.value),{},{width:"".concat(n,"px"),height:"".concat(r,"px"),left:"".concat(o,"px"),top:"".concat(a,"px")}),document.body.removeChild(e)}()}else m.value={"transition-property":r,width:"0px",height:"9px",left:"0px",top:"0px"}}};t.watch(o,Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,t.nextTick();case 1:h();case 2:case"end":return e.stop()}},e)}))),t.onMounted(function(){h(!0),zi(l,Aa(Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,t.nextTick();case 1:h();case 2:case"end":return e.stop()}},e)})),300));var e=l.value.querySelector("".concat(p.value," .").concat(i.value,"__label"));e&&(f=pj(e,function(e){e.forEach(function(e){"characterData"===e.type&&h()})},{attributes:!0,childList:!0,characterData:!0,subtree:!0}))}),t.onUnmounted(function(){var e;null===(e=f)||void 0===e||e.stop()});var g=t.toRefs(e),y=g.name,b=g.disabled,w=g.readonly;t.provide(aj,t.reactive({name:y,disabled:b,readonly:w,value:o,allowUncheck:e.allowUncheck,setValue:v}));var O=ei("radio-group"),C=zl(),x=function(){if(e.variant.includes("filled")&&!Yo(o.value))return t.createVNode("div",{style:m.value,class:"".concat(O.value,"__bg-block")},null)},P=t.computed(function(){return["".concat(O.value),d.value[e.size],s(s(s({},"".concat(O.value,"__outline"),"outline"===e.variant),"".concat(O.value,"--filled"),e.variant.includes("filled")),"".concat(O.value,"--primary-filled"),"primary-filled"===e.variant)]});return function(){return t.createVNode("div",{ref:l,class:P.value},[C("default")||(null===(n=e.options)||void 0===n?void 0:n.map(function(n){var r=n;(Uo(n)||To(n))&&(r={value:n,label:n.toString()});var a="button"===e.theme?dj:ij;return t.createVNode(a,{key:"radio-group-options-".concat(r.value,"-").concat(Math.random()),name:e.name,checked:o.value===r.value,disabled:"disabled"in r?r.disabled:e.disabled,value:r.value},{default:function(){return[H(r.label)?r.label(t.h):r.label]}})})),x()]);var n}}}),yj=Nl(ij),bj=Nl(gj),wj=Nl(dj),Oj={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},Cj=function(e,t){return t?{top:"calc(".concat(100-e,"% - 1px)")}:{left:"".concat(e,"%")}},xj=function(e,t){return"first"===t?e instanceof Array?e[0]:e:e instanceof Array?e[1]:0};function Pj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 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 S=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)}},j=function(e){var t=e.code;e.preventDefault(),"ArrowDown"!==t&&"ArrowLeft"!==t||S("sub"),"ArrowUp"!==t&&"ArrowRight"!==t||S("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:j},[t.createVNode(Kg,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)]}})])}}}),Vj=t.defineComponent({name:"TSliderMark",props:{mark:{type:[Object,Array,String,Number]},point:{type:Number},onClickMarkPoint:{type:Function,default:function(){}}},setup:function(e){var n=ei("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 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;te.max)return[];if(0===e.step)return console.warn("[Element Warn][Slider]step should not be 0."),[];for(var t=j.value/e.step,n=100*e.step/j.value,r=[],o=1;o100*(N.value-e.max)/j.value}):r.filter(function(t){return t>100*(m.value-e.min)/j.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&&S(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),M=function(){var t;e.range?(S(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)):(Uo(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)},I=function(t){var n,r=t*j.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,I(o)}else{var a=v.value.getBoundingClientRect().left;o=(t.clientX-a)/y.value*100,I(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/j.value*100);I(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(S(t)&&e.range){var n=Ya(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]&&M()}),t.onMounted(function(){M(),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(S(e.marks)){var n=Ir(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&&mi("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:Cj(e.position,R.value.vertical),key:n},null)})]),t.createVNode("div",{class:"".concat(z,"__mark")},[H.value.map(function(n,r){return t.createVNode(Vj,{mark:n.mark,point:n.point,key:r,style:Cj(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(!Lo(r.inputNumberProps)){var o,a=null===(o=r.inputNumberProps)||void 0===o?void 0:o.theme;n=Ej(Ej({},n),la(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(Ub,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(Nj,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(_j,{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(_j,{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:Cj(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=Nl(Tj),Ij=Nl(_j),Aj={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},Bj=t.defineComponent({name:"TSwitch",props:Aj,setup:function(e,n){var r=n.slots,o=oi(),a=ei("switch"),l=ti(),i=l.STATUS,u=l.SIZE,c=t.toRefs(e),d=Ya(Ui(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 ".concat(t," 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(To(e.label))return e.label;if(S(e.label)&&e.label.length){var n=v.value===p.value?e.label[0]:e.label[1];if(!n)return;if(To(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(Du,{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])])}}}),Lj=Nl(Bj),Rj={allowInputOverMax:Boolean,autofocus:Boolean,autosize:{type:[Boolean,Object],default:!1},disabled:{type:Boolean,default:void 0},maxcharacter:{type:Number},maxlength:{type:[String,Number]},name:{type:String,default:""},placeholder:{type:String,default:void 0},readonly:{type:Boolean,default:void 0},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},tips:{type:[String,Function]},value:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number]},onBlur:Function,onChange:Function,onFocus:Function,onKeydown:Function,onKeypress:Function,onKeyup:Function,onValidate:Function};function zj(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;Fj||(Fj=document.createElement("textarea"),document.body.appendChild(Fj));var o=function(e){if("undefined"==typeof window)return{paddingSize:0,borderSize:0,boxSizing:0,sizingStyle:""};var t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing")||t.getPropertyValue("-moz-box-sizing")||t.getPropertyValue("-webkit-box-sizing");return{paddingSize:parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),borderSize:parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width")),boxSizing:n,sizingStyle:yu.map(function(e){return"".concat(e,":").concat(t.getPropertyValue(e))}).join(";")}}(e),a=o.paddingSize,l=o.borderSize,i=o.boxSizing,u=o.sizingStyle;Fj.setAttribute("style","".concat(u,";").concat("\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n")),Fj.value=e.value||e.placeholder||"";var c=Fj.scrollHeight,s={},d="border-box"===i;d?c+=l:"content-box"===i&&(c-=a),Fj.value="";var v=Fj.scrollHeight-a;null===(t=Fj)||void 0===t||null===(t=t.parentNode)||void 0===t||t.removeChild(Fj),Fj=null;var f=function(e){var t=v*e;return d&&(t=t+a+l),t};if(!$o(n)){var p=f(n);c=Math.max(p,c),s.minHeight="".concat(p,"px")}return $o(r)||(c=Math.min(f(r),c)),s.height="".concat(c,"px"),s}var Hj=t.defineComponent({name:"TTextarea",inheritAttrs:!1,props:Rj,setup:function(e,n){var r=n.attrs,o=n.expose,a=ei(),l=ei("textarea"),i=t.computed(function(){return"".concat(l.value,"__tips")}),c=t.computed(function(){return"".concat(l.value,"__limit")}),d=t.toRefs(e),v=Ya(Ui(d.value,d.modelValue,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=oi(),h=Ri(),g=t.ref({}),y=t.ref(),b=t.ref(!1),w=t.ref(!1),O=function(){var n;if(!0===e.autosize)t.nextTick(function(){g.value=zj(y.value)});else if(e.autosize&&"object"===u(e.autosize)){var o=e.autosize,a=o.minRows,l=o.maxRows;t.nextTick(function(){g.value=zj(y.value,a,l)})}else r.rows?g.value={height:"auto",minHeight:"auto"}:r.style&&null!==(n=y.value)&&void 0!==n&&null!==(n=n.style)&&void 0!==n&&n.height&&(g.value={height:y.value.style.height})},C=function(n){var r=n.target.value;if(e.maxcharacter&&e.maxcharacter>=0){var o=hu(r,e.maxcharacter);e.allowInputOverMax||(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},S=function(e){w.value=!1,C(e)},j=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){j("keydown",e)},N=function(e){j("keyup",e)},_=function(e){j("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(ib,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)]}),M=t.computed(function(){return fu({autofocus:e.autofocus,disabled:m.value,readonly:h.value,placeholder:e.placeholder,maxlength:!e.allowInputOverMax&&e.maxlength||void 0,name:e.name||void 0})}),I=t.computed(function(){var e=hu(String(f.value||""));return"object"===u(e)?e.length:e}),A=ub(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)?Hi(y.value,ta(t,e)):Hi(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=Rl();return function(){var n,o=fu({onFocus:V,onBlur:F,onKeydown:k,onKeyup:N,onKeypress:_}),d=ti().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))]}),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(I.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},la(r,["style"])),[t.createVNode("textarea",t.mergeProps({onInput:x,onCompositionstart:P,onCompositionend:S,ref:y,value:f.value,class:v.value},o,M.value),null),h||g?t.createVNode("div",{class:["".concat(l.value,"__info_wrapper"),s({},"".concat(l.value,"__info_wrapper_align"),!h)]},[h,g]):null])}}}),Wj=Nl(Hj);function Kj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 Uj="source",Yj="target";function $j(e){return S(e)?{source:e[0],target:e[1]}:{source:e,target:e}}function Zj(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=Zj(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 qj(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(Zo(e[a]))throw new Error("".concat(a," is not in DataOption ").concat(JSON.stringify(e)));if(Zo(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=qj(e.children,t,!0)),u});return r}function Xj(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 Xj(e,t,n)}):!n:!n}function Gj(e,t,n,r){e.forEach(function(e){var o;!function(e,t,n){return!!t.includes(e.value)&&n}(e,n,r)?Xj(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?null==t?void 0: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 Gj(e,r,t,n),r}function Qj(e){var t=0;return e.forEach(function(e){e.children&&e.children.length>0?t+=Qj(e.children):t+=1}),t}var ek=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=ei(),r=si({SearchIcon:uf}).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(yb,t.mergeProps(a,{defaultValue:e.value,onChange:o,placeholder:e.placeholder}),{default:function(){return[t.createVNode(r,{slot:"suffix-icon"},null)]}})])}}});function tk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nk(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)?nk(nk(nk({},{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=Zj(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)}))}),j=t.computed(function(){return!P.value&&e.checkedValue.length>0}),k=t.computed(function(){return Qj(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=Ir(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))},(S(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=Zj(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=zl(),M=function(){var r,o,a=e.draggable&&e.listType===Yj,l=null;a?l=t.createVNode(yO,{value:e.checkedValue,onChange:V},rk(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(gO,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),rk(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(yO,{value:e.checkedValue,onChange:V},rk(o=h.value.map(function(r,o){var a;return t.createVNode(gO,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),rk(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}})])},I=function(){var r=e.empty||a(l.value.empty),o=To(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=To(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(gO,{disabled:e.disabled||!e.dataSource.length,checked:P.value,indeterminate:j.value,onChange:D},null),t.createVNode("span",null,[a(l.value.title,{checked:e.checkedValue.length,total:k.value})])]),(r=e.title&&To(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(ek,{searchValue:c.value,placeholder:a(l.value.placeholder),onChange:F,disabled:e.disabled,search:e.search},null),h.value.length>0?M():I()]),e.pagination&&f.value>0&&m.value>0&&t.createVNode("div",{class:"".concat(n.value,"-transfer__list-pagination")},[t.createVNode(QO,t.mergeProps(g.value,{onChange:_}),null)]),A()]);var r,o}}}),lk={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},ik=t.defineComponent({name:"TTransferOperations",props:{leftDisabled:{type:Boolean,required:!0},rightDisabled:{type:Boolean,required:!0},operation:lk.operation},emits:["moveToRight","moveToLeft"],setup:function(e,n){var r=n.slots,o=n.emit,a=ei(),l=si({ChevronRightIcon:bs,ChevronLeftIcon:os}),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(S(e.operation)){var a=Ya(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(Iu,{variant:"outline",size:"small",shape:S(e.operation)&&To(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||S(e.operation)&&e.operation[1]?p(t.h,"right"):null]}}),t.createVNode(Iu,{variant:"outline",size:"small",shape:S(e.operation)&&To(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||S(e.operation)&&e.operation[0]?p(t.h,"left"):null]}})])}}});var uk=t.defineComponent({name:"TTransfer",props:lk,setup:function(e,n){var r=n.slots,o=oi(),a=ei(),l=t.toRefs(e),u=l.value,c=l.modelValue,d=l.checked,v=Ya(Ui(u,c,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=Ya(ni(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 qj(e.data,e.keys,g.value)}),O=t.computed(function(){return Jj(w.value,h.value,!1,g.value)}),C=t.computed(function(){return Jj(w.value,h.value,!0,g.value)}),x=t.computed(function(){return s(s({},Uj,Zj(O.value,m.value,{isTreeMode:g.value})),Yj,Zj(C.value,m.value,{isTreeMode:g.value}))}),P=t.computed(function(){return!!r.footer||!!e.footer}),S=t.computed(function(){return!!e.pagination&&!r.content}),j=t.computed(function(){return!!e.search}),k=t.computed(function(){return $j(e.footer||"")}),N=t.computed(function(){return $j(e.empty)}),_=t.computed(function(){return $j(e.search)}),V=t.computed(function(){return $j(e.showCheckAll)}),D=t.computed(function(){return $j(o.value)}),E=t.computed(function(){return $j(e.title)}),F=t.computed(function(){return $j(e.pagination)}),T=function(t,n){var r,o=n===Uj?t:x.value[Uj],a=n===Yj?t:x.value[Yj],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)},M=function(t){var n,r=JSON.parse(JSON.stringify(h.value)),o=t===Yj?x.value[Uj]:x.value[Yj];if(t===Uj)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=Zj(w.value,r.concat(o),{isTreeMode:g.value,remainValue:a})}else n="unshift"===e.targetSort?o.concat(r):r.concat(o);T([],t===Uj?Yj:Uj),p(n,{type:t,movedValue:o})},I=function(){M(Yj)},A=function(){M(Uj)},B=function(t){var n;null===(n=e.onSearch)||void 0===n||n.call(e,t)},L=function(e,t){p(e,{type:Yj,movedValue:t})},R=function(n){var o,a=Na(r,["title","empty","footer","operation","transferItem","default","tree"]);return t.createVNode(ak,{checkboxProps:e.checkboxProps,transferItem:e.transferItem,"list-type":n,title:E.value[n],"data-source":n===Uj?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===Yj},"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"),j.value?"".concat(a.value,"-transfer__search"):"",P.value?"".concat(a.value,"-transfer__footer"):"",S.value?"".concat(a.value,"-transfer__pagination"):"",g.value?"".concat(a.value,"-transfer--with-tree"):""]},[R(Uj),t.createVNode(ik,{leftDisabled:D.value[Yj]||y.value||0===x.value[Yj].length,rightDisabled:D.value[Uj]||b.value||0===x.value[Uj].length,operation:e.operation,onMoveToRight:I,onMoveToLeft:A},{operation:r.operation}),R(Yj)])}}}),ck=Nl(uk);function sk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dk(e){for(var t=1;t2&&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?Ui(t[n],a,e[r],e[o],n):ni(t[n],e[r],e[o],n)}var xk=function(e){return e[e.Before=-1]="Before",e[e.Inside=0]="Inside",e[e.After=1]="After",e}(xk||{});function Pk(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=Aa(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=Lo(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=Mk(Mk({},p),{},{disabled:b}),O=m;m=t.createVNode(gO,{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,title:l.label},"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 Ak(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Bk(e){var n=e.treeScope,r=e.treeItemRef,o=n.virtualConfig,a=n.treeContentRef,l=n.scrollProps,i=ei().value,u=ei("tree").value,c=Ek(e).handleClick,d=Fk(e).renderIcon,v=Ik(e).renderLabel,f=function(e){var n=ei("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=_k(u,{createElement:r,node:o});return s}}}(e),p=f.renderLine,m=function(e){var n=ei("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()}):_k(i,{createElement:r,node:o}))&&(u=t.createVNode("span",{class:"".concat(n,"__operations"),ignore:"active,expand"},[u])),u}}}(e),h=m.renderOperations,g=Pk(e),y=g.dragStates,b=g.handleDragStart,w=g.handleDragEnd,O=g.handleDragOver,C=g.handleDragLeave,x=g.handleDrop,P=function(e,n,r){var o=t.computed(function(){return Math.max(r.rowHeight||48,48)}),a=t.ref(!1),l=t.computed(function(){return"lazy"===(null==r?void 0:r.type)&&!a.value}),i=!sl&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},u=function(){a.value||i(function(){a.value=!0})};return t.onMounted(function(){"lazy"===(null==r?void 0:r.type)&&t.nextTick(function(){var t=Math.max(10,r.bufferSize||10),a=o.value*t;ci(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)}},[S.value?[t.createVNode("div",null,null)]:N(n)])}}}function Lk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Rk(e){for(var t=1;t=0&&("trigger"===e?(c=!0,d=!0):"ignore"===e&&(c=!1)),n.indexOf("active")>=0&&"ignore"===e&&(s=!1)}),!c||(a(u),!d)){s&&l(u);var v={node:u.getModel(),e:o};jk(n,r,"click",v),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[JC];return t.createVNode(Hk,{key:i,rowIndex:l,stateId:a,itemKey:i,treeScope:r,onClick:u,onChange:c},null)}(0,e,o,n)});return o}}}function Kk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Uk(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}}(d),m=p.store,h=p.updateStoreConfig,g=p.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};jk(t,n,"drag-start",l)},handleDragEnd:function(e){var r=e.dragEvent,o=e.node;a=o;var l={node:o.getModel(),e:r};jk(t,n,"drag-end",l)},handleDragOver:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};jk(t,n,"drag-over",o)},handleDragLeave:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};jk(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===xk.Inside?a.appendTo(o,e):u===xk.Before?i.insertBefore(a):i.insertAfter(a),!0)}),jk(t,n,"drop",c))}}};r.drag=l}(d);var y=Dk(d),b=y.setActived,w=y.setExpanded,O=y.setChecked,C=Yk(d),x=C.onInnerVirtualScroll,P=C.virtualConfig,S=C.scrollToElement,j=Wk(d),k=j.renderTreeNodes,N=j.nodesEmpty,_=function(e){var n=e.props,r=ei("tree").value,o=ei().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:$k(u.value),maxHeight:$k(c.value),overflowY:$k(u.value)||$k(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}})}}(d);return{t:o,global:a,classPrefix:l,componentName:u,state:d,store:m,treeClasses:_.treeClasses,treeContentRef:v,renderTNodeJSX:c,rebuild:g,updateStoreConfig:h,setActived:b,setExpanded:w,setChecked:O,renderTreeNodes:k,nodesEmpty:N,isScrolling:f,onInnerVirtualScroll:x,treeContentStyles:_.treeContentStyles,scrollStyles:_.scrollStyles,cursorStyles:_.cursorStyles,virtualConfig:P,scrollToElement:S,scrollTo:S}},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=Vk(n,r);o?n.appendNodes(e,o):n.appendNodes(e,t)})},insertBefore:function(e,t){var n=this.store,r=Vk(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=Vk(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=Xk(Xk({},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=Ok(),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):this.renderTNodeJSX("empty");x=t.createVNode("div",{class:"".concat(O,"__empty")},[P])}else w.length<=0&&(x=t.createVNode("div",null,null));var S,j=null;j=!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(S=w)||"[object Object]"===Object.prototype.toString.call(S)&&!t.isVNode(S)?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||j,C&&_])}}),Jk=Nl(Gk),Qk={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 eN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tN(e){for(var t=1;t=0}}),I=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?S(j.value)?j.value.map(function(e){return e.value}):[]:S(j.value)?j.value.map(function(e){return e}):[]:[]}),W=t.computed(function(){return e.multiple&&!!e.max&&S(j.value)&&e.max<=j.value.length}),K=t.computed(function(){var t;return Wo(e.treeProps)||Wo(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 Wo(e.treeProps)||Wo(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 Wo(e.treeProps)||Wo(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.children)||"children":e.treeProps.keys.children||"children"});t.onMounted(Gp(bm.mark(function t(){var n;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:T(),!j.value&&e.defaultValue&&$(e.defaultValue,null,"uncheck"),R.value?m.value=S(j.value)?j.value.map(function(e){return null==e?void 0:e.value}):[null===(n=j.value)||void 0===n?void 0:n.value]:m.value=S(j.value)?j.value:[j.value],ne();case 1: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&&j.value!==n.node.data[U.value]){var r=t;if(R.value){var o=Wo(t)?"":t[0];r=ae(o)}else r=Wo(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)&&S(j.value)&&j.value.splice(a,1),null===(r=e.onRemove)||void 0===r||r.call(e,{value:t,data:null,e:n&&n.e}),$(j.value,null,o)},te=function(e,t){V(e,t),e&&"trigger-element-click"===t.trigger&&F("")},ne=function(){var t=Gp(bm.mark(function t(){return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:e.multiple?e.multiple?S(j.value)?g.value=oe():g.value=[]:g.value=null:j.value||0===j.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?j.value.value:j.value;return ae(e)},oe=function(){return j.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 tN(tN({},n.data),{},{label:n.data[K.value],value:n.data[U.value]})}var r=le(e.data,t);return r||{label:t,value:t}},le=function(e,t){for(var n=0,r=e.length;n0&&void 0!==arguments[0]?arguments[0]:"RGB",n=arguments.length>1?arguments[1]:void 0;if(e=n&&Object.keys(bN).find(function(e){return e in bN&&bN[e]===t})||t,!wN[e])return[];var r=i(wN[e]);return n&&"CMYK"!==t&&r.push({type:"inputNumber",key:"a",min:0,max:100,format:function(e){return"".concat(e,"%")},flex:1.15}),r},qN=function(e){var n=ei("color-picker");return t.computed(function(){return e?"".concat(n.value,"-").concat(e):n.value})},XN={borderless:Boolean,clearable:Boolean,colorModes:{type:Array,default:function(){return["monochrome","linear-gradient"]}},disabled:{type:Boolean,default:void 0},enableAlpha:Boolean,enableMultipleGradient:{type:Boolean,default:!0},format:{type:String,default:"RGB",validator:function(e){return!e||["HEX","HEX8","RGB","RGBA","HSL","HSLA","HSV","HSVA","CMYK","CSS"].includes(e)}},inputProps:{type:Object},popupProps:{type:Object},recentColors:{type:Array,default:void 0},defaultRecentColors:{type:Array,default:function(){return[]}},selectInputProps:{type:Object},showPrimaryColorPreview:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},swatchColors:{type:Array,default:void 0},value:{type:String,default:void 0},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},onChange:Function,onClear:Function,onPaletteBarChange:Function,onRecentColorsChange:Function};function GN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function JN(e){for(var t=1;t2&&r>=0&&r<=o-1){n.splice(r,1),n[r]||(r=n[r+1]?r+1:n[r-1]?r-1:0);var a=n[r];p(n,!0),f(null==a?void 0:a.id)}}},y=function(t){if(!e.disabled&&e.enableMultipleGradient){var n=t.offsetX/a.width*100,r=EN(n,e.color.rgba);s.value.push(r),p(s.value,!0),f(r.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=DN({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(Ub,{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)])])}}}),g_=t.defineComponent({name:"SaturationPanel",props:r_,setup:function(e){var n=qN(),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 HN(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 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 b_(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 O_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 C_=t.defineComponent({name:"ColorPanel",props:function(e){for(var t=1;t-1&&e.splice(n,1),e.unshift(t),e.length>100&&(e.length=100),j(e)}},j=function(e){y(e)},k=function(t){var n=x.value.getFormattedColor(e.format,e.enableAlpha);m(n,{color:MN(x.value),trigger:t||"palette-saturation-brightness"})};t.watch(function(){return p.value},function(t){var n=b(t);w.value=n,x.value.isGradient="linear-gradient"===n,x.value.getFormattedColor(e.format,e.enableAlpha)!==t&&x.value.update(t)});var N=function(e){w.value=e;var t="linear-gradient"===e;x.value.isGradient=t,t?x.value.update(x.value.gradientColors.length>0?x.value.linearGradient:hN):x.value.update(x.value.rgba),k()},_=function(e){var t=e.saturation,n=e.value,r=x.value,o=r.saturation,a=r.value,l="palette-saturation-brightness";if(n!==a&&t!==o)x.value.saturation=t,x.value.value=n,l="palette-saturation-brightness";else if(t!==o)x.value.saturation=t,l="palette-saturation";else{if(n===a)return;x.value.value=n,l="palette-brightness"}k(l)},V=function(t){var n;x.value.hue=t,k("palette-hue-bar"),null===(n=e.onPaletteBarChange)||void 0===n||n.call(e,{color:MN(x.value)})},D=function(e){x.value.alpha=e,k("palette-alpha-bar")},E=function(e,t){x.value.update(e),x.value.alpha=t,k("input")},F=function(e){var t=e.key,n=e.payload,r="palette-saturation-brightness";switch(t){case"degree":x.value.gradientDegree=n,r="input";break;case"selectedId":x.value.gradientSelectedId=n;break;case"colors":x.value.gradientColors=n}k(r)},T=function(e,t){var n=b(e);w.value=n,x.value.isGradient="linear-gradient"===n,x.value.update(e),k(t)};return function(){var r={color:x.value,disabled:e.disabled},o=1===e.colorModes.length&&e.colorModes.includes("linear-gradient"),c=g.value;o&&Array.isArray(c)&&(c=c.filter(function(e){return FN.isGradientColor(e)}));var s=!!Array.isArray(c),d=e.swatchColors;Zo(d)&&(d=i(gN)),$o(d)&&(d=[]),o&&(d=d.filter(function(e){return FN.isGradientColor(e)}));var v=Array.isArray(d)&&d.length;return t.createVNode("div",{class:["".concat(n.value,"__panel"),!!e.disabled&&u.disabled]},[t.createVNode(d_,t.mergeProps(e,{mode:w.value,onModeChange:N}),null),t.createVNode("div",{class:["".concat(n.value,"__body")]},[O.value?t.createVNode(h_,t.mergeProps(r,{onChange:F,enableMultipleGradient:e.enableMultipleGradient}),null):null,t.createVNode(g_,t.mergeProps(r,{onChange:_}),null),t.createVNode("div",{class:["".concat(n.value,"__sliders-wrapper")]},[t.createVNode("div",{class:["".concat(n.value,"__sliders")]},[t.createVNode(v_,t.mergeProps(r,{onChange:V}),null),e.enableAlpha?t.createVNode(i_,t.mergeProps(r,{onChange:D}),null):null]),e.showPrimaryColorPreview?t.createVNode("div",{class:["".concat(n.value,"__sliders-preview"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"".concat(n.value,"__sliders-preview-inner"),style:{background:O.value?x.value.linearGradient:x.value.rgba}},null)]):null]),t.createVNode(n_,t.mergeProps(e,{color:x.value,format:P.value,onInputChange:E}),null),v||s?t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"".concat(n.value,"__swatches-wrap")},[s?t.createVNode(w_,t.mergeProps(r,{title:a(l.value.recentColorTitle),editable:!0,colors:c,handleAddColor:S,onSetColor:function(e){return T(e,"recent")},onChange:j}),null):null,v?t.createVNode(w_,t.mergeProps(r,{title:a(l.value.swatchColorTitle),colors:d,onSetColor:function(e){return T(e,"preset")}}),null):null])]):null])])}}});function x_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function P_(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:A_({},g.value)},[l]),d&&(l=[d,v?"":l]),b&&c.value&&(l=t.createVNode(M_,t.mergeProps({style:A_({},h.value),src:b,alt:w,onError:y},e.imageProps),null)),t.createVNode("div",{ref:i,class:O,style:A_({},m.value)},[l])}}}),L_={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 R_=t.defineComponent({name:"TAvatarGroup",props:L_,setup:function(e){t.provide("avatarGroup",e);var n=Rl(),r=ei("avatar"),o=ei("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(B_,{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(Vl(l))]:[l];return t.createVNode("div",{class:c},[d])}}}),z_=Nl(B_),H_=Nl(R_),W_={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)}}},K_=t.defineComponent({name:"TBadge",inheritAttrs:!1,props:W_,setup:function(e,n){var r=n.attrs,o=Hl(),a=Rl(),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=ei(),u=ei("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=Ya(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])])}}}),U_=Nl(K_),Y_={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},$_="calendar",Z_=1970,q_={1:"\u4e00",2:"\u4e8c",3:"\u4e09",4:"\u56db",5:"\u4e94",6:"\u516d",7:"\u65e5"},X_=function(e){var t=Yl(e).day();return 0===t&&(t=7),t},G_=function(e,t){var n=new Date(e);return n.setDate(n.getDate()+t),n},J_=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=Yl("".concat(n,"-").concat(r)).startOf("month").toDate(),d=Yl(Yl("".concat(n,"-").concat(r)).endOf("month").format("YYYY-MM-DD")).toDate(),v=d.getDate(),f=function(e,t){var n=X_(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:X_(n),weekOrder:r,date:n,formattedDate:Yl(n).format(i),filterDate:null,formattedFilterDate:null,isShowWeekend:!0}},g=function(e){return u?!!l.find(function(t){return t.isSame(Yl(e))}):a.isSame(Yl(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(Q_().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=Q_();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 tV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nV(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 oV(e,n){var r=Jl($_),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 q_&&(t=q_[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(Yl(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(sV({},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=Yl(m.value.from).year(),n=Yl(m.value.to).year()),t0&&void 0!==arguments[0]?arguments[0]:document.body;return e===document.body?window.innerWidth-document.documentElement.clientWidth:e.offsetWidth-e.clientWidth}function IV(e){return Number.isNaN(Number(e))?e:"".concat(Number(e),"px")}var AV={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 BV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function LV(e){for(var t=1;tr||i>o||(document.addEventListener("mousemove",u),document.addEventListener("mouseup",c),document.addEventListener("dragend",c))}))}},props:LV(LV({},DV),AV),setup:function(e,n){var r=n.expose,o=t.ref(null),a=ei("dialog"),l=ei(),i=Rl(),u=Hl(),c=Jl("dialog").globalConfig,s=si({CloseIcon:Ts,InfoCircleFilledIcon:hv,CheckCircleFilledIcon:Bc,ErrorCircleFilledIcon:sd}),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=TV({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})},S=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 j=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?LV({},e.dialogStyle):LV({width:IV(e.width)},e.dialogStyle)});return function(){return t.withDirectives(t.createVNode("div",{key:"dialog",ref:o,class:j.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:S},[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:S},[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:S},[E]))]))]),[[t.resolveDirective("draggable"),C.value&&e.draggable]]);var n,r,s,m,b,N,_,V,D,E}}}),HV=["theme","onConfirm","onCancel","onCloseBtnClick"];"undefined"!=typeof window&&window.document&&window.document.documentElement&&document.documentElement.addEventListener("click",function(e){RV={x:e.clientX,y:e.clientY},setTimeout(function(){RV=null},100)},!0);var WV=1,KV=t.defineComponent({name:"TDialog",inheritAttrs:!1,props:DV,emits:["update:visible"],setup:function(e,n){var r=ei("dialog"),o=ei(),a=t.ref(null),l=Jl("dialog").globalConfig,i=function(t){var n;null===(n=e.onConfirm)||void 0===n||n.call(e,t)},u=function(t){var n;null===(n=e.onCancel)||void 0===n||n.call(e,t),L({e:t.e,trigger:"cancel"})},c=Ki(function(){return e.attach});ri();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:IV(t)});return n}),O=Li("dialog",{visible:h}).isTopInteractivePopup,C=t.ref(!1);function x(){var e,t;null===(e=v.value.parentNode)||void 0===e||null===(t=e.removeChild)||void 0===t||t.call(e,v.value)}t.watch(function(){return e.visible},function(n){var r;n?(C.value=!0,(f.value&&!e.showInAttachedElement||m.value)&&(e.preventScrollThrough&&document.body.appendChild(v.value),t.nextTick(function(){var e;if(RV&&null!==(e=a.value)&&void 0!==e&&e.$el){var t=a.value.$el;t.style.transformOrigin="".concat(RV.x-t.offsetLeft,"px ").concat(RV.y-t.offsetTop,"px")}})),null===(r=document.activeElement)||void 0===r||r.blur()):(clearTimeout(d.value),d.value=setTimeout(function(){x()},150));k(n)});var P,S,j,k=function(t){t?(document.addEventListener("keydown",_),e.confirmOnEnter&&document.addEventListener("keydown",N)):(document.removeEventListener("keydown",_),e.confirmOnEnter&&document.removeEventListener("keydown",N))},N=function(t){if("input"!==t.target.tagName.toLowerCase()){var n,r=t.code;if(("Enter"===r||"NumpadEnter"===r)&&O())null===(n=e.onConfirm)||void 0===n||n.call(e,{e:t})}},_=function(t){var n,r;"Escape"===t.code&&O()&&(null===(n=e.onEscKeydown)||void 0===n||n.call(e,{e:t}),(null!==(r=e.closeOnEscKeydown)&&void 0!==r?r:l.value.closeOnEscKeydown)&&(L({e:t,trigger:"esc"}),t.stopImmediatePropagation()))},V=(P=function(t){var n,r;e.showOverlay&&(null!==(n=e.closeOnOverlayClick)&&void 0!==n?n:l.value.closeOnOverlayClick)&&(null===(r=e.onOverlayClick)||void 0===r||r.call(e,{e:t}),L({e:t,trigger:"overlay"}))},S=!1,j=!1,{onClick:function(e){S&&j&&(null==P||P(e)),S=!1,j=!1},onMousedown:function(e){S=e.target===e.currentTarget},onMouseup:function(e){j=e.target===e.currentTarget}}),D=V.onClick,E=V.onMousedown,F=V.onMouseup,T=function(t){var n;null===(n=e.onCloseBtnClick)||void 0===n||n.call(e,t),L({trigger:"close-btn",e:t.e})},M=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)},A=function(){var t;null===(t=e.onBeforeClose)||void 0===t||t.call(e)},B=function(){var t,n,r;null===(t=a.value)||void 0===t||null===(n=t.resetPosition)||void 0===n||n.call(t),null===(r=e.onClosed)||void 0===r||r.call(e)},L=function(t){var r;null===(r=e.onClose)||void 0===r||r.call(e,t),n.emit("update:visible",!1)};t.onMounted(function(){var e=document.documentElement.scrollHeight>document.documentElement.clientHeight?MV():0;v.value=document.createElement("style"),v.value.dataset.id="td_dialog_".concat(+new Date,"_").concat(WV+=1),v.value.innerHTML="\n html body {\n overflow-y: hidden;\n width: calc(100% - ".concat(e,"px);\n }\n ")}),t.onBeforeUnmount(function(){k(!1),x()});var R=t.computed(function(){var t=e.destroyOnClose,n=e.visible,r=e.lazy;return C.value?n||!t:!r});return function(){var o=[(f.value||m.value)&&t.createVNode("div",{key:"mask",class:g.value},null),function(){var r=e.theme;e.onConfirm,e.onCancel,e.onCloseBtnClick;var o=du(e,HV);return t.createVNode("div",{class:b.value},[t.createVNode("div",{class:y.value,style:w.value,onClick:D,onMousedown:E,onMouseup:F},[t.createVNode(zV,t.mergeProps({ref:a,theme:r},o,{onConfirm:i,onCancel:u,onCloseBtnClick:T}),n.slots)])])}()],l={zIndex:e.zIndex},d=["".concat(r.value,"__ctx"),s(s(s({},"".concat(r.value,"__ctx--fixed"),f.value||m.value),"".concat(r.value,"__ctx--absolute"),f.value&&e.showInAttachedElement),"".concat(r.value,"__ctx--modeless"),p.value)];return t.createVNode(t.Teleport,{disabled:!e.attach||!c.value,to:c.value},{default:function(){return[t.createVNode(t.Transition,{duration:300,name:"".concat(r.value,"-zoom__vue"),onBeforeEnter:M,onAfterEnter:I,onBeforeLeave:A,onAfterLeave:B},{default:function(){return[R.value&&t.withDirectives(t.createVNode("div",t.mergeProps({class:d,style:l},n.attrs),[o]),[[t.vShow,e.visible]])]}})]}})}}});function 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;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=Aa(function(){var e=Ib(l.value,o);s(e)},50),u=Aa(function(){var e=Ab(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,M=D.resetScale,I=function(){var e=t.ref(0);return{rotate:e,onRotate:function(){e.value+=90},resetRotate:function(){e.value=0}}}(),A=I.rotate,B=I.onRotate,L=I.resetRotate,R=function(){V(),M(),L()},z=t.computed(function(){return rD(e.images)}),H=t.computed(function(){var e;return null!==(e=z.value[m.value])&&void 0!==e?e:{mainImage:""}}),W=Li("dialog",{visible:y}).isTopInteractivePopup,K=function(){var e=m.value-1;R(),h(e<0?0:e,{trigger:"prev"})},U=function(){var e=m.value+1;R(),h(e>=z.value.length?m.value:e,{trigger:"next"})},Y=function(t){e.onDownload?e.onDownload(t):function(e){var t,n,r,o=new Image,a=(null==e||null===(t=e.split)||void 0===t||null===(t=t.call(e,"?"))||void 0===t||null===(t=t[0])||void 0===t||null===(n=t.split)||void 0===n||null===(n=n.call(t,"#"))||void 0===n||null===(n=n[0])||void 0===n||null===(r=n.split)||void 0===r?void 0:r.call(n,"/").pop())||Math.random().toString(32).slice(2);o.setAttribute("crossOrigin","anonymous"),o.onload=function(){var e=document.createElement("canvas");e.width=o.width,e.height=o.height,e.getContext("2d").drawImage(o,0,0,o.width,o.height),e.toBlob(function(e){var t=URL.createObjectURL(e),n=document.createElement("a");n.download=a,n.href=t,n.click(),n.remove(),URL.revokeObjectURL(t)})},o.src=e}(t)},$=function(){b(!0)},Z=function(t){var n;b(!1),null===(n=e.onClose)||void 0===n||n.call(e,t)},q=function(e){Z({e:e,trigger:"close-btn"})},X=function(t){e.closeOnOverlay&&Z({e:t,trigger:"overlay"})},G=function(t){switch(t.stopPropagation(),t.code){case tD.left:K();break;case tD.right:U();break;case tD.up:F();break;case tD.down:T();break;case tD.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(VV,{icon:function(){return t.createVNode(Zc,null,null)},class:"".concat(o.value,"__header-pre-bt"),onClick:j},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(M_,{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(os,{style:{transform:"rotate(".concat(n,"deg)")},size:"24px"},null));return t.createVNode(VV,{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(Ts,{size:"24px"},null))])};return function(){return"modeless"===e.mode?t.createVNode(t.Fragment,null,[a("trigger",{params:{open:$}}),t.createVNode(eD,{zIndex:S.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:S.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(QV,{onZoomIn:F,onZoomOut:T,onMirror:_,onReset:R,onRotate:B,onDownload:Y,scale:E.value,currentImage:H.value},null),t.createVNode(_V,{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]])]}})]}})])}}}),aD=Nl(oD),lD={action:{type:[String,Function]},content:{type:[String,Function]},default:{type:[String,Function]}},iD=t.defineComponent({name:"TListItem",props:lD,setup:function(){var e=ei("list-item"),n=Rl();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])])])}}}),uD={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},cD="load-more";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 dD(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 fD(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=r.value.length?pi("List","".concat(a," does not exist in data, check `index` or `key` please.")):o.scrollToElement(mD(mD({},e),{},{index:a-1})):pi("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 To(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&&To(e.asyncLoading)){if("loading"===e.asyncLoading)return t.createVNode("div",null,[t.createVNode(Du,null,null),t.createVNode("span",null,[l.value.loadingText])]);if(e.asyncLoading===cD)return t.createVNode("span",null,[l.value.loadingMoreText])}return c("asyncLoading")},x=function(t){var n;To(e.asyncLoading)&&e.asyncLoading!==cD||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(iD,la(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])}}}),gD={avatar:{type:[String,Function]},description:{type:[String,Function]},image:{type:[String,Function]},title:{type:[String,Function]}},yD=t.defineComponent({name:"TListItemMeta",props:gD,setup:function(e,n){var r=ei("list-item__meta"),o=Hl(),a=Rl(),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 To(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])}}}),bD=Nl(hD),wD=Nl(iD),OD=Nl(yD),CD="line",xD="plump",PD="circle",SD="small",jD="medium",kD="large",ND=72,_D=112,VD=160,DD=14/ND,ED=20/_D,FD=36/VD,TD=["success","error","warning"],MD={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:""}},ID=t.defineComponent({name:"TProgress",props:MD,setup:function(e){var n=Rl(),r=ei("progress"),o=si({CloseCircleFilledIcon:_s,CheckCircleFilledIcon:Bc,ErrorCircleFilledIcon:sd,CloseIcon:Ts,CheckIcon:Wc,ErrorIcon:md}),a=o.CloseCircleFilledIcon,l=o.CheckCircleFilledIcon,i=o.ErrorCircleFilledIcon,u=o.CloseIcon,c={success:o.CheckIcon,warning:o.ErrorIcon,error:u},d={success:l,warning:i,error:a},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=To(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&&pu(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=_D;if(!e.size)return t;var n=SD,r=kD,o=jD;switch(e.size){case n:t=ND;break;case o:t=_D;break;case r:t=VD;break;default:var a=Number(e.size);t=!isNaN(a)&&a>0?a:_D}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!==PD)return{};var t=g.value*ED;return g.value<=ND?t=g.value*DD:g.value>=VD&&(t=g.value*FD),{width:"".concat(g.value,"px"),height:"".concat(g.value,"px"),fontSize:"".concat(t,"px")}}),O=t.computed(function(){var t=e.size===SD?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=t.computed(function(){return e.theme===PD?c:d}),P=function(){var n="".concat(e.percentage,"%"),o=e.status||"";if(TD.includes(o)&&e.theme!==xD){var a=x.value[o];a&&(n=t.createVNode(a,{class:["".concat(r.value,"__icon")]},null))}return n},S=t.ref(!0),j=t.ref(null),k=t.computed(function(){return S.value?"".concat(r.value,"--over-ten"):"".concat(r.value,"--under-ten")});function N(){return(N=Gp(bm.mark(function n(){var o;return bm.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(e.theme!==xD){n.next=3;break}if(j.value&&!1!==e.label){n.next=1;break}return n.abrupt("return");case 1:return n.next=2,t.nextTick();case 2:o=j.value.querySelector(".".concat(r.value,"__info"))||j.value.nextElementSibling,S.value=j.value.clientWidth>(null==o?void 0:o.clientWidth)+10;case 3:case"end":return n.stop()}},n)}))).apply(this,arguments)}return zi(j,function(){return N.apply(this,arguments)}),function(){var o=t.createVNode("div",{class:"".concat(r.value,"__info")},[n("label",P())]);return t.createVNode("div",{class:r.value},[e.theme===CD&&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===xD&&t.createVNode("div",{class:["".concat(r.value,"__bar ").concat(r.value,"--plump ").concat(k.value),s({},"".concat(r.value,"--status--").concat(v.value),v.value)],style:f.value},[t.createVNode("div",{class:"".concat(r.value,"__inner"),ref:j,style:p.value},[S.value&&o]),!S.value&&o]),e.theme===PD&&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)])])])}}}),AD=Nl(ID),BD={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)}}},LD={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"}]]},RD=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=Uo(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},zD=t.defineComponent({name:"TSkeleton",props:BD,setup:function(e,n){var r=n.slots,o=t.ref(!1),a=ei("skeleton"),l=Hl(),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,(S(n)?n:Uo(n)?new Array(n).fill({type:"text"}):[n]).map(function(e){return t.createVNode("div",{class:i(e),style:RD(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(LD[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])}}}}),HD=Nl(zD),WD={animation:{type:Object},animationStart:Boolean,color:{type:String,default:""},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}},KD=function(e){return 1-Math.abs(Math.pow(e-1,4))},UD=function(){return Ti(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;Mi(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=Ya(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=Ya(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=KD(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=KD(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(),mu()<10?this.polyfillStart():this.normalStart()}},{key:"stop",value:function(){mu()<10?clearInterval(this.timer):cancelAnimationFrame(this.timer),this.timer=null}}])}(),YD={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 $D=t.defineComponent({name:"TStatistic",props:WD,setup:function(e,n){var r,o,a=n.expose,l=ei("statistic"),i=Rl(),u=si({ArrowTriangleUpFilledIcon:uc,ArrowTriangleDownFilledIcon:rc}),c=u.ArrowTriangleUpFilledIcon,s=u.ArrowTriangleDownFilledIcon,d={increase:t.createVNode(c,null,null),decrease:t.createVNode(s,null,null)},v=t.computed(function(){return Uo(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 UD({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(){return{color:YD[e.color]||e.color}});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,contentStyle:b}),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(HD,{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])])}}}),ZD=Nl($D),qD={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 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 GD(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-QD*e.cardScale)-QD+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 tE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 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){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]}),S=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)}),j=t.computed(function(){var t=e.height?"".concat(e.height,"px"):"".concat(M("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=nE(nE({},e),n.props);return t.createVNode(eE,t.mergeProps({index:r,currentIndex:p.value,isSwitching:g.value,getWrapAttribute:M,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&&(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)},M=function(e){var t;return null===(t=b.value)||void 0===t||null===(t=t.parentNode)||void 0===t?void 0:t[e]},I=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:S.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:j.value},[k()])]),I(),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])])}}}),aE=Nl(oE),lE=Nl(eE),iE={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 uE(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 cE(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 dE(){var e=ei();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 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}var fE=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=Hl(),l=t.computed(function(){return["".concat(e.classPrefix,"-table__ellipsis"),"".concat(e.classPrefix,"-text-ellipsis")]}),i=t.computed(function(){return["".concat(e.classPrefix,"-table__ellipsis-content"),e.overlayClassName]});t.onMounted(function(){o.value=Ol(n.value)}),t.onUpdated(function(){o.value=Ol(n.value)});var u=function(e){e||(r.value=!1)},c=po(function(e){"mouseleave"===e.type?n.value:n.value&&(r.value=!0)},80);return function(){var d,v=a("default","content"),f=t.createVNode("div",{ref:n,class:l.value,onMouseenter:c,onMouseleave:c,style:{textOverflow:o.value?"ellipsis":"clip"}},[v]),p=null,m=e.tooltipProps;if(o.value&&r.value){var h=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=Ya(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(fE,{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 yE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bE(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=Uo(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,S=P.getBoundingClientRect(),j=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,S,j):C(t,k,S,j),V=_.resizeLinePos,D=_.minResizeLineLeft,E=_.maxResizeLineLeft;if(y.isDragging=!0,y.draggingStart=e.x,null!=f&&f.value){b.display="block",b.height="".concat(j.bottom-S.top,"px"),b.left="".concat(V,"px");var F=a.value.parentElement.getBoundingClientRect();b.bottom="".concat(F.bottom-j.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,S&&(C[k.colKey]+=a)):"prev"===y.effectCol&&(S&&(C[x.colKey]+=a),N&&(C[N.colKey]-=a)),u(C);var j=function(e){var t=0;return m.value.forEach(function(n){t+=e[n.colKey]}),t}(C);c(Math.round(j)),d(),y.isDragging=!1,y.draggingCol=null,y.effectCol=null,P.style.cursor="",b.display="none",b.left="0",vl(document,"mouseup",T),vl(document,"mousemove",M),document.onselectstart=n,document.ondragstart=r,null==v||v({columnsWidth:C})}}},M=function(e){if(y.isDragging){var t=V+e.x-y.draggingStart;b.left="".concat(Math.min(Math.max(t,D),E),"px")}};dl(document,"mouseup",T),dl(document,"mousemove",M),document.onselectstart=function(){return!1},document.ondragstart=function(){return!1}}},setEffectColMap:g}}function wE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 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&&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=jt(u[b],d),C=n.get(O)||{},x=jt(u[b+1],d),P=n.get(x)||{},S=0;b===u.length-1&&(S=(null==o?void 0:o.getBoundingClientRect().height)||0),C.bottom=(P.bottom||S)+(P.height||0),n.set(O,OE(OE({},C),{},{height:(null==w?void 0:w.getBoundingClientRect().height)||0}))}}(o.children,n,r,a),S.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;j.left===o&&j.right===r||(j.left=o&&F.value,j.right=r&&E.value)}}},H=function(){var e=I(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)},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),mu()<=11&&(t=12),t}();P.value=e,Z();var t=D.value||O.value||!M.value||!y.value.length,n="undefined"!=typeof window&&void 0!==window.ResizeObserver;(t&&mu()<11||!n)&&dl(window,"resize",G)}),t.onBeforeUnmount(function(){var e,t;"undefined"!=typeof window&&vl(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:j,rowAndColFixedPosition:S,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&&(mu()<11||void 0===window.ResizeObserver||(vl(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 PE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function SE(e,n){var r=t.toRefs(e),o=r.pagination,a=r.data,l=r.disableDataPage,i=Jl().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=null===(t=n.value)||void 0===t?void 0:t.getBoundingClientRect();if(p){var m,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=Lo(m=e.headerAffixProps||e.headerAffixedTop)?0:m.offsetTop||0,O=(null==b?void 0:b.height)||0,C=Math.abs(p.top)-1*g.height),i.value=C}if(e.footerAffixedBottom&&null!=o&&o.value)u.value=h(b,p,y);else if(e.horizontalScrollAffixedBottom&&null!=a&&a.value){var x=a.value.getBoundingClientRect();u.value=h(x,p,y)}if(e.paginationAffixedBottom&&l.value){var P=l.value.getBoundingClientRect();c.value=h(P,p,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(){dl(o.value,"scroll",b)},P=function(){vl(o.value,"scroll",b)},S=function(){dl(r.value,"scroll",w),F()},j=function(){s||vl(r.value,"scroll",w),T()},k=function(){dl(a.value,"scroll",O)},N=function(){vl(a.value,"scroll",O)},_=function(){dl(n.value,"scroll",C),F()},V=function(){s||vl(n.value,"scroll",C),T()},D=function(){s=!0},E=function(){s=!1,d||(vl(r.value,"scroll",w),vl(n.value,"scroll",C))},F=function(){d=!0},T=function(){d=!1},M=[],I=function(e){var t=po(function(t){vl(e,"scroll",t)},200);function n(){m(e),t(n)}function r(r){r.composedPath().includes(e)&&(M.forEach(function(e){return e()}),M.length=0,dl(e,"scroll",n),t(n),M.push(function(){vl(e,"scroll",n)}))}return dl(e,"touchstart",r),{removeElementTouchScrollListener:function(){vl(e,"touchstart",r)}}},A=[],B=function(){vl(window,"mousedown",D),vl(window,"mouseup",E),A.forEach(function(e){return e()}),A.length=0,r.value&&(vl(r.value,"mouseenter",S),vl(r.value,"mouseleave",j)),o.value&&(vl(o.value,"mouseenter",x),vl(o.value,"mouseleave",P)),n.value&&(vl(n.value,"mouseenter",_),vl(n.value,"mouseleave",V)),a.value&&(vl(a.value,"mouseenter",k),vl(a.value,"mouseleave",N))},L=function(){if(f.value||e.paginationAffixedBottom)var t=setTimeout(function(){f.value||e.paginationAffixedBottom?dl(document,"scroll",y):vl(document,"scroll",y),clearTimeout(t)})};t.watch([r,o,a,n],function(){!function(){if(dl(window,"mousedown",D),dl(window,"mouseup",E),B(),r.value){dl(r.value,"mouseenter",S),dl(r.value,"mouseleave",j);var t=I(r.value).removeElementTouchScrollListener;A.push(t)}if(e.footerAffixedBottom&&o.value){dl(o.value,"mouseenter",x),dl(o.value,"mouseleave",P);var l=I(o.value).removeElementTouchScrollListener;A.push(l)}if(e.horizontalScrollAffixedBottom&&a.value){dl(a.value,"mouseenter",k),dl(a.value,"mouseleave",N);var i=I(a.value).removeElementTouchScrollListener;A.push(i)}if((f.value||v.value)&&n.value){dl(n.value,"mouseenter",_),dl(n.value,"mouseleave",V);var u=I(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(){vl(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 kE(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}}(jt(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 kE(e.rowAttributes,{row:e.row,rowIndex:e.rowIndex,type:"body"})||{}}),b=t.computed(function(){var t,n=NE(e.rowClassName,{row:e.row,rowKey:e.rowKey,rowIndex:e.rowIndex,type:"body"},e.rowKey||"id");return[null===(t=g.value)||void 0===t?void 0:t.classes,n,s(s({},"".concat(e.classPrefix,"-table__row--active"),a.value),"".concat(e.classPrefix,"-table__row--hover"),l.value)].filter(function(e){return e})}),w=function(e,n,r){var o=t.computed(function(){return Math.max(r.rowHeight||48,48)}),a=t.ref(!1),l=t.computed(function(){return"lazy"===(null==r?void 0:r.type)&&!a.value}),i=!sl&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},u=function(){a.value||i(function(){a.value=!0})};return t.onMounted(function(){"lazy"===(null==r?void 0:r.type)&&t.nextTick(function(){var t=Math.max(10,r.bufferSize||10),a=o.value*t;null!=n&&n.value&&null!=e&&e.value&&ci(n.value,e.value,u,a)})}),{hasLazyLoadHolder:l,tRowHeight:o}}(o,i,t.reactive(ME(ME({},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(fE,{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=EE(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=BE(r,n.slots,{cellEmptyContent:o.cellEmptyContent,pagination:e.pagination}),y=CE(a,l,p,f),b=_E(a.className,ME(ME({},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(ME(ME({},r),{},{type:"td"})):a.attrs,C=ME(ME({},O),u);return t.createVNode("td",t.mergeProps({key:a.colKey||l,class:w,style:y.style},C,{onClick:function(t){var n,o=ME(ME({},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 AE.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 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 zE(e){for(var t=1;t1)for(var l=r+1;l1)for(var y=p+1;y1&&(T.colspan=c.colspan),t.createVNode("th",t.mergeProps({key:c.colKey,"data-colkey":c.colKey,class:k,style:_},T,g,D),[t.createVNode("div",{class:i.thCellInner},[F?t.createVNode(fE,{placement:"bottom",attach:e.attach||(o.value?function(){return function(t){for(var n=t;n;){var r;if(null!==(r=n=n.parentNode)&&void 0!==r&&null!==(r=r.classList)&&void 0!==r&&r.contains("".concat(e.classPrefix,"-table")))break}return n}(o.value)}:void 0),tooltipContent:E&&function(){return E},tooltipProps:"object"===u(c.ellipsisTitle)?c.ellipsisTitle:void 0,overlayClassName:e.ellipsisOverlayClassName,classPrefix:e.classPrefix},(b=V,"function"==typeof b||"[object Object]"===Object.prototype.toString.call(b)&&!t.isVNode(b)?V:{default:function(){return[V]}})):V])])});return t.createVNode("tr",{key:p},[m])}))])}}});function qE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 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){for(var t=1;t1&&(c.rowspan=s.rowspan),(null===(p=s)||void 0===p?void 0:p.colspan)>1&&(c.colspan=s.colspan),s.skipped)return null}var h=CE(a,l,e.rowAndColFixedPosition,o.tableColFixedClasses),g=XE({},h.style);return null!==(i=e.thWidthList)&&void 0!==i&&i[a.colKey]&&(g.width="".concat(e.thWidthList[a.colKey],"px")),t.createVNode("td",t.mergeProps(XE({key:a.colKey},c),{class:h.classes,style:g}),[v({row:n,rowIndex:r,col:a,colIndex:l})])})])}),c=r("footerSummary");return c||e.footData&&e.footData.length?t.createVNode("tfoot",{class:a,style:{visibility:e.virtualScroll?"hidden":"visible"}},[c&&t.createVNode("tr",{class:o.tableFullRowClasses.base},[t.createVNode("td",{colspan:i.value.length},[t.createVNode("div",{class:o.tableFullRowClasses.innerFullElement},[c])])]),l]):null}}});function JE(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=Ya(ni(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,[k.map(function(r){var o={width:KE((n||_?K.value[r.colKey]:void 0)||r.width)||M};return r.minWidth&&(o.minWidth=KE(r.minWidth)),o.width||r.minWidth||"fixed"!==e.tableLayout||(o.minWidth="80px"),t.createVNode("col",{key:r.colKey,style:o},null)})])},$={isFixedHeader:R.value,rowAndColFixedPosition:Y.value,isMultipleHeader:P.value,bordered:e.bordered,maxHeight:e.maxHeight,height:e.height,spansAndLeafNodes:S.value,thList:j.value,thWidthList:K.value,resizable:e.resizable,columnResizeParams:be,classPrefix:v,ellipsisOverlayClassName:"medium"!==N.value?b[N.value]:"",attach:e.attach,showColumnShadow:U,thDraggable:e.thDraggable},Z=mu()<=11?4:0,q=z.value?I.value:0,X=t.ref(((null===(d=oe.value)||void 0===d?void 0:d.getBoundingClientRect().height)||0)-Z),G=setTimeout(function(){var e;X.value=((null===(e=oe.value)||void 0===e?void 0:e.getBoundingClientRect().height)||0)-Z,clearTimeout(G)},0),J=t.computed(function(){return X.value-q}),Q=e.headerAffixedTop?Number(ue.value):1,ee=t.computed(function(){return{width:"".concat(A.value,"px"),height:"".concat(J.value,"px"),opacity:Q}}),te=e.bordered?1:0,ne=Boolean((e.headerAffixedTop||He.isVirtualScroll.value)&&A.value)&&t.createVNode("div",{ref:oe,style:{width:"".concat(A.value-te,"px"),opacity:Number(ue.value)},class:["scrollbar",s({},m.affixedHeaderElm,e.headerAffixedTop||He.isVirtualScroll.value)]},[t.createVNode("table",{class:Pe.value,style:eF(eF({},O.value),{},{width:"".concat(B.value,"px")})},[W(!0),t.createVNode(ZE,$,n.slots)])]),re=t.createVNode("div",{class:m.affixedHeaderWrap,style:ee.value},[ne]),de=z.value?I.value:0;e.bordered&&(de+=1);var ve=Boolean(He.isVirtualScroll.value||e.footerAffixedBottom),fe=(null===(p=e.footData)||void 0===p?void 0:p.length)||e.footerSummary||n.slots.footerSummary,pe=Boolean(ve&&fe&&A.value)&&t.createVNode(Cm,t.mergeProps({class:m.affixedFooterWrap,onFixedChange:Le,offsetBottom:de||0},DE(e.footerAffixedBottom),{style:{marginTop:"".concat(-1*((null!==(h=c.value)&&void 0!==h?h:0)+de),"px")},ref:T}),{default:function(){return[t.createVNode("div",{ref:ae,style:{width:"".concat(A.value-te,"px"),opacity:Number(ce.value)},class:["scrollbar",s({},m.affixedFooterElm,e.footerAffixedBottom||He.isVirtualScroll.value)]},[t.createVNode("table",{class:Pe.value,style:eF(eF({},O.value),{},{width:"".concat(B.value,"px")})},[W(!0),t.createVNode(GE,{rowKey:e.rowKey,isFixedHeader:R.value,rowAndColFixedPosition:Y.value,footData:e.footData,columns:S.value.leafColumns,rowAttributes:e.rowAttributes,rowClassName:e.rowClassName,thWidthList:K.value,footerSummary:e.footerSummary,rowspanAndColspanInFooter:e.rowspanAndColspanInFooter},n.slots)])])]}}),Ce="translate(0, ".concat(He.scrollHeight.value+(null!==(g=c.value)&&void 0!==g?g:0)+(null!==(y=X.value)&&void 0!==y?y:0),"px)"),ke={transform:Ce,"-ms-transform":Ce,"-moz-transform":Ce,"-webkit-transform":Ce},_e=eF(eF({classPrefix:v,ellipsisOverlayClassName:"medium"!==N.value?b[N.value]:"",rowAndColFixedPosition:Y.value,showColumnShadow:U,data:x,virtualConfig:He,columns:S.value.leafColumns,tableElm:a.value,tableWidth:A.value,isWidthOverflow:z.value,scroll:e.scroll,cellEmptyContent:e.cellEmptyContent,tableContentElm:L.value,handleRowMounted:He.handleRowMounted,renderExpandedRow:e.renderExpandedRow},Na(e,HE)),{},{pagination:he.value,attach:e.attach,hoverRow:Fe.value,activeRow:Ne.value,onRowClick:Ze}),Ve=t.createVNode("div",{ref:L,class:m.content,style:w.value,onScroll:Ke},[He.isVirtualScroll.value&&t.createVNode("div",{class:f.cursor,style:ke},null),t.createVNode("table",{ref:l,class:Pe.value,style:eF(eF({},O.value),{},{width:e.resizable&&z.value&&B.value?"".concat(B.value,"px"):O.value.width})},[W(!1),e.showHeader&&t.createVNode(ZE,eF(eF({},$),{},{thWidthList:_?K.value:{}}),n.slots),t.createVNode(WE,t.mergeProps({ref:i},_e),n.slots),t.createVNode(GE,{rowKey:e.rowKey,isFixedHeader:R.value,rowAndColFixedPosition:Y.value,footData:e.footData,columns:S.value.leafColumns,rowAttributes:e.rowAttributes,rowClassName:e.rowClassName,footerSummary:e.footerSummary,rowspanAndColspanInFooter:e.rowspanAndColspanInFooter,virtualScroll:He.isVirtualScroll.value},n.slots)])]),De=H(e.loading)?e.loading:n.slots.loading,Ee=void 0!==e.loading&&t.createVNode(Du,t.mergeProps({loading:!!e.loading,text:De,attach:a.value?function(){return a.value}:void 0,showOverlay:!0,size:"small"},e.loadingProps),null),Te=o("topContent"),Me=o("bottomContent"),Ie=t.createVNode("div",{ref:ie,class:m.paginationWrap,style:{opacity:Number(se.value)}},[ye()]),Ae=!!Me&&t.createVNode("div",{ref:u,class:m.bottomContent},[Me]);return t.createVNode("div",{ref:a,tabindex:Be.value,class:xe.value,onFocus:Ye,onBlur:$e},[!!Te&&t.createVNode("div",{class:m.topContent},[Te]),!1===e.showHeader?null:!(!He.isVirtualScroll.value&&!e.headerAffixedTop)&&(e.headerAffixedTop?t.createVNode(Cm,t.mergeProps({offsetTop:0},DE(e.headerAffixedTop),{onFixedChange:Le,ref:F}),tF(re)?re:{default:function(){return[re]}}):R.value&&re),Ve,pe,Ee,Ae,Se.value&&t.createVNode("div",{class:m.scrollbarDivider,style:{right:"".concat(I.value,"px"),bottom:je.value?"".concat(je.value,"px"):void 0,height:"".concat(null===(C=L.value)||void 0===C?void 0:C.getBoundingClientRect().height,"px")}},null),e.horizontalScrollAffixedBottom&&t.createVNode(Cm,t.mergeProps({offsetBottom:0},DE(e.horizontalScrollAffixedBottom),{style:{marginTop:"-".concat(2*I.value,"px")},horizontalScrollAffixedBottom:!0,ref:E}),{default:function(){return[t.createVNode("div",{ref:le,class:["scrollbar",m.obviousScrollbar],style:{width:"".concat(A.value,"px"),overflow:"auto",opacity:Number(ce.value)}},[t.createVNode("div",{style:{width:"".concat(B.value,"px"),height:"5px"}},null)])]}}),e.paginationAffixedBottom?t.createVNode(Cm,t.mergeProps({offsetBottom:0},DE(e.paginationAffixedBottom),{ref:D}),tF(Ie)?Ie:{default:function(){return[Ie]}}):Ie,t.createVNode("div",{ref:we,class:m.resizeLine,style:Oe},null)])}}}),rF={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 oF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function aF(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=jt(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 vi("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 S(t){var n,r=e.rowKey||"id",a=w.value.map(function(e){return jt(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=jt(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)],r={asc:c.value.sortAscendingOperationText,desc:c.value.sortDescendingOperationText},a=v.value.map(function(n){var a,l,i,u=n===e.sortOrder?o.iconActive:o.iconDefault,s=c.value.sortCancelOperationText,d=n===e.sortOrder?s:r[n];return(null!==(l=e.hideSortTips)&&void 0!==l?l:c.value.hideSortTips)?f(n,u):t.createVNode(Kg,t.mergeProps({content:d,placement:"right",showArrow:!1,class:o.iconDirection[n]},e.tooltipProps),"function"==typeof(i=a=f(n,u))||"[object Object]"===Object.prototype.toString.call(i)&&!t.isVNode(i)?a:{default:function(){return[a]}})});return t.createVNode("div",{class:n},[a])}}});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,n){var r=n.slots,o=t.toRefs(e),a=o.sort,l=o.data,u=t.ref(),c=Ya(ni(a,e.defaultSort,e.onSortChange,"sort"),2),d=c[0],v=c[1],f=Ya(ni(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?S(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;n3?(n=p===t)&&(i=a[(l=a[4])?5:(l=3,3)],a[4]=a[5]=r):a[0]<=f&&((n=e<2&&ft||t>p)&&(a[4]=e,a[5]=t,v.n=p,l=0))}if(n||e>1)return c;throw d=!0,t}return function(n,s,p){if(u>1)throw TypeError("Generator is already running");for(d&&1===s&&f(s,p),l=s,i=p;(o=l<2?r:i)||!d;){a||(l?l<3?(l>1&&(v.n=-1),f(l,i)):v.n=i:v.v=i);try{if(u=2,a){if(l||(n="next"),o=a[n]){if(!(o=o.call(a,i)))throw TypeError("iterator result is not an object");if(!o.done)return o;i=o.value,l<2&&(l=0)}else 1===l&&(o=a.return)&&o.call(a),l<2&&(i=TypeError("The iterator does not provide a '"+n+"' method"),l=1);a=r}else if((o=(d=v.n<0)?i:e.call(t,v))!==c)break}catch(e){a=r,l=1,i=e}finally{u=1}}return{value:o,done:d}}}(e,a,l),!0),u}var c={};function s(){}function d(){}function v(){}o=Object.getPrototypeOf;var f=[][l]?o(o([][l]())):(t(o={},l,function(){return this}),o),p=v.prototype=s.prototype=Object.create(f);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,t(e,i,"GeneratorFunction")),e.prototype=Object.create(p),e}return d.prototype=v,t(p,"constructor",v),t(v,"constructor",d),d.displayName="GeneratorFunction",t(v,i,"GeneratorFunction"),t(p),t(p,i,"Generator"),t(p,l,function(){return this}),t(p,"toString",function(){return"[object Generator]"}),(e.exports=n=function(){return{w:u,m:m}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(tm);var om=tm.exports,am={exports:{}},lm={exports:{}},im={exports:{}};!function(e){var t=em,n=rm;e.exports=function e(r,o){function a(e,n,l,i){try{var u=r[e](n),c=u.value;return c instanceof t?o.resolve(c.v).then(function(e){a("next",e,l,i)},function(e){a("throw",e,l,i)}):o.resolve(c).then(function(e){u.value=e,l(u)},function(e){return a("throw",e,l,i)})}catch(e){i(e)}}var l;this.next||(n(e.prototype),n(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),n(this,"_invoke",function(e,t,n){function r(){return new o(function(t,r){a(e,n,t,r)})}return l=l?l.then(r,r):r()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports}(im);var um=im.exports;!function(e){var t=om,n=um;e.exports=function(e,r,o,a,l){return new n(t().w(e,r,o,a),l||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports}(lm);var cm=lm.exports;!function(e){var t=cm;e.exports=function(e,n,r,o,a){var l=t(e,n,r,o,a);return l.next().then(function(e){return e.done?e.value:l.next()})},e.exports.__esModule=!0,e.exports.default=e.exports}(am);var sm=am.exports,dm={exports:{}};!function(e){e.exports=function(e){var t=Object(e),n=[];for(var r in t)n.unshift(r);return function e(){for(;n.length;)if((r=n.pop())in t)return e.value=r,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports}(dm);var vm=dm.exports,fm={exports:{}},pm={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}(pm);var mm=pm.exports;!function(e){var t=mm.default;e.exports=function(e){if(null!=e){var n=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(t(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports}(fm);var hm=fm.exports;!function(e){var t=em,n=om,r=sm,o=cm,a=um,l=vm,i=hm;function u(){var c=n(),s=c.m(u),d=(Object.getPrototypeOf?Object.getPrototypeOf(s):s.__proto__).constructor;function v(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))}var f={throw:1,return:2,break:3,continue:3};function p(e){var t,n;return function(r){t||(t={stop:function(){return n(r.a,2)},catch:function(){return r.v},abrupt:function(e,t){return n(r.a,f[e],t)},delegateYield:function(e,o,a){return t.resultName=o,n(r.d,i(e),a)},finish:function(e){return n(r.f,e)}},n=function(e,n,o){r.p=t.prev,r.n=t.next;try{return e(n,o)}finally{t.next=r.n}}),t.resultName&&(t[t.resultName]=r.v,t.resultName=void 0),t.sent=r.v,t.next=r.n;try{return e.call(this,t)}finally{r.p=t.prev,r.n=t.next}}}return(e.exports=u=function(){return{wrap:function(e,t,n,r){return c.w(p(e),t,n,r&&r.reverse())},isGeneratorFunction:v,mark:c.m,awrap:function(e,n){return new t(e,n)},AsyncIterator:a,async:function(e,t,n,a,l){return(v(t)?o:r)(p(e),t,n,a,l)},keys:l,values:i}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=u,e.exports.__esModule=!0,e.exports.default=e.exports}(Jp);var gm=(0,Jp.exports)(),ym=gm;try{regeneratorRuntime=gm}catch(e){"object"===("undefined"==typeof globalThis?"undefined":u(globalThis))?globalThis.regeneratorRuntime=gm:Function("r","regeneratorRuntime = r")(gm)}var bm=Za(ym),wm={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},Om=t.defineComponent({name:"TAffix",props:wm,emits:["fixedChange"],setup:function(e,n){var r,o=ei("affix"),a=Rl(),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=!Zo(e.offsetTop)&&y<=e.offsetTop?g+e.offsetTop:!Zo(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=Gp(bm.mark(function n(){return bm.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=1,t.nextTick();case 1:if(!s.value){n.next=2;break}return n.abrupt("return");case 2:d.value=gl(e.container),dl(d.value,"scroll",p),dl(window,"resize",p),s.value=!0;case 3:case"end":return n.stop()}},n)}));return function(){return n.apply(this,arguments)}}(),h=function(){d.value&&s.value&&(vl(d.value,"scroll",p),vl(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")])])}}}),Cm=Nl(Om),xm={exports:{}};!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(Sm);if(t){var n=document.getElementById(t[1]);if(n)return n}},w=function(){var n=Gp(bm.mark(function n(r){var o;return bm.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(l.value!==r){n.next=1;break}return n.abrupt("return");case 1:return l.value=r,null===(o=e.onChange)||void 0===o||o.call(e,r,l.value),n.next=2,t.nextTick();case 2:O();case 3: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=Gp(bm.mark(function t(n){var r,o,a,l,c;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(r=b(n),w(n),r){t.next=1;break}return t.abrupt("return");case 1:return u.value=!0,o=e.targetOffset,a=bl(i.value),l=jm(r,i.value),c=a+l-o,t.next=2,wl(c,{container:i.value});case 2:u.value=!1;case 3:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}();return t.onMounted(Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(g(),!l.value){e.next=2;break}return e.next=1,t.nextTick();case 1:C(l.value);case 2:case"end":return e.stop()}},e)}))),t.onUnmounted(function(){i.value&&vl(i.value,"scroll",y)}),t.watchEffect(function(){i.value&&vl(i.value,"scroll",y),g()}),t.provide(Nm,t.reactive({registerLink:function(e){Sm.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(Cm,l,"function"==typeof(n=u)||"[object Object]"===Object.prototype.toString.call(n)&&!t.isVNode(n)?u:{default:function(){return[u]}}):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}function Dm(e){for(var t=1;t0&&kh(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&kh(r.height)/e.offsetHeight||1);var l=(wh(e)?bh(e):window).visualViewport,i=!_h()&&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 Dh(e){var t=Vh(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 Eh(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Ch(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Fh(e){return bh(e).getComputedStyle(e)}function Th(e){return["table","td","th"].indexOf(yh(e))>=0}function Mh(e){return((wh(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ih(e){return"html"===yh(e)?e:e.assignedSlot||e.parentNode||(Ch(e)?e.host:null)||Mh(e)}function Ah(e){return Oh(e)&&"fixed"!==Fh(e).position?e.offsetParent:null}function Bh(e){for(var t=bh(e),n=Ah(e);n&&Th(n)&&"static"===Fh(n).position;)n=Ah(n);return n&&("html"===yh(n)||"body"===yh(n)&&"static"===Fh(n).position)?t:n||function(e){var t=/firefox/i.test(Nh());if(/Trident/i.test(Nh())&&Oh(e)&&"fixed"===Fh(e).position)return null;var n=Ih(e);for(Ch(n)&&(n=n.host);Oh(n)&&["html","body"].indexOf(yh(n))<0;){var r=Fh(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 Lh(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Rh(e,t,n){return Sh(e,jh(t,n))}function zh(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Hh(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Wh={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=Ph(n.placement),u=Lh(i),c=[uh,ih].indexOf(i)>=0?"height":"width";if(a&&l){var s=function(e,t){return zh("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Hh(e,sh))}(o.padding,n),d=Dh(a),v="y"===u?ah:uh,f="y"===u?lh:ih,p=n.rects.reference[c]+n.rects.reference[u]-l[u]-n.rects.popper[c],m=l[u]-n.rects.reference[u],h=Bh(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=Rh(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)))&&Eh(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Kh(e){return e.split("-")[1]}var Uh={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Yh(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=uh,w=ah,O=window;if(c){var C=Bh(n),x="clientHeight",P="clientWidth";if(C===bh(n)&&"static"!==Fh(C=Mh(n)).position&&"absolute"===i&&(x="scrollHeight",P="scrollWidth"),o===ah||(o===uh||o===ih)&&a===vh)w=lh,m-=(d&&C===O&&O.visualViewport?O.visualViewport.height:C[x])-r.height,m*=u?1:-1;if(o===uh||(o===ah||o===lh)&&a===vh)b=ih,f-=(d&&C===O&&O.visualViewport?O.visualViewport.width:C[P])-r.width,f*=u?1:-1}var S,j=Object.assign({position:i},c&&Uh),k=!0===s?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:kh(n*o)/o||0,y:kh(r*o)/o||0}}({x:f,y:m},bh(n)):{x:f,y:m};return f=k.x,m=k.y,u?Object.assign({},j,((S={})[w]=y?"0":"",S[b]=g?"0":"",S.transform=(O.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",S)):Object.assign({},j,((t={})[w]=y?m+"px":"",t[b]=g?f+"px":"",t.transform="",t))}var $h={passive:!0};var Zh={left:"right",right:"left",bottom:"top",top:"bottom"};function qh(e){return e.replace(/left|right|bottom|top/g,function(e){return Zh[e]})}var Xh={start:"end",end:"start"};function Gh(e){return e.replace(/start|end/g,function(e){return Xh[e]})}function Jh(e){var t=bh(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Qh(e){return Vh(Mh(e)).left+Jh(e).scrollLeft}function eg(e){var t=Fh(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function tg(e){return["html","body","#document"].indexOf(yh(e))>=0?e.ownerDocument.body:Oh(e)&&eg(e)?e:tg(Ih(e))}function ng(e,t){var n;void 0===t&&(t=[]);var r=tg(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),a=bh(r),l=o?[a].concat(a.visualViewport||[],eg(r)?r:[]):r,i=t.concat(l);return o?i:i.concat(ng(Ih(l)))}function rg(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function og(e,t,n){return t===fh?rg(function(e,t){var n=bh(e),r=Mh(e),o=n.visualViewport,a=r.clientWidth,l=r.clientHeight,i=0,u=0;if(o){a=o.width,l=o.height;var c=_h();(c||!c&&"fixed"===t)&&(i=o.offsetLeft,u=o.offsetTop)}return{width:a,height:l,x:i+Qh(e),y:u}}(e,n)):wh(t)?function(e,t){var n=Vh(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):rg(function(e){var t,n=Mh(e),r=Jh(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=Sh(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),l=Sh(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),i=-r.scrollLeft+Qh(e),u=-r.scrollTop;return"rtl"===Fh(o||n).direction&&(i+=Sh(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:l,x:i,y:u}}(Mh(e)))}function ag(e,t,n,r){var o="clippingParents"===t?function(e){var t=ng(Ih(e)),n=["absolute","fixed"].indexOf(Fh(e).position)>=0&&Oh(e)?Bh(e):e;return wh(n)?t.filter(function(e){return wh(e)&&Eh(e,n)&&"body"!==yh(e)}):[]}(e):[].concat(t),a=[].concat(o,[n]),l=a[0],i=a.reduce(function(t,n){var o=og(e,n,r);return t.top=Sh(o.top,t.top),t.right=jh(o.right,t.right),t.bottom=jh(o.bottom,t.bottom),t.left=Sh(o.left,t.left),t},og(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 lg(e){var t,n=e.reference,r=e.element,o=e.placement,a=o?Ph(o):null,l=o?Kh(o):null,i=n.x+n.width/2-r.width/2,u=n.y+n.height/2-r.height/2;switch(a){case ah:t={x:i,y:n.y-r.height};break;case lh:t={x:i,y:n.y+n.height};break;case ih:t={x:n.x+n.width,y:u};break;case uh:t={x:n.x-r.width,y:u};break;default:t={x:n.x,y:n.y}}var c=a?Lh(a):null;if(null!=c){var s="y"===c?"height":"width";switch(l){case dh:t[c]=t[c]-(n[s]/2-r[s]/2);break;case vh:t[c]=t[c]+(n[s]/2-r[s]/2)}}return t}function ig(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?fh:c,d=n.elementContext,v=void 0===d?ph:d,f=n.altBoundary,p=void 0!==f&&f,m=n.padding,h=void 0===m?0:m,g=zh("number"!=typeof h?h:Hh(h,sh)),y=v===ph?"reference":ph,b=e.rects.popper,w=e.elements[p?y:v],O=ag(wh(w)?w:w.contextElement||Mh(e.elements.popper),u,s,l),C=Vh(e.elements.reference),x=lg({reference:C,element:b,strategy:"absolute",placement:o}),P=rg(Object.assign({},b,x)),S=v===ph?P:C,j={top:O.top-S.top+g.top,bottom:S.bottom-O.bottom+g.bottom,left:O.left-S.left+g.left,right:S.right-O.right+g.right},k=e.modifiersData.offset;if(v===ph&&k){var N=k[o];Object.keys(j).forEach(function(e){var t=[ih,lh].indexOf(e)>=0?1:-1,n=[ah,lh].indexOf(e)>=0?"y":"x";j[e]+=N[n]*t})}return j}function ug(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?hh:u,s=Kh(r),d=s?i?mh:mh.filter(function(e){return Kh(e)===s}):sh,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]=ig(e,{placement:n,boundary:o,rootBoundary:a,padding:l})[Ph(n)],t},{});return Object.keys(f).sort(function(e,t){return f[e]-f[t]})}var cg={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=Ph(h),y=u||(g===h||!p?[qh(h)]:function(e){if(Ph(e)===ch)return[];var t=qh(e);return[Gh(e),t,Gh(t)]}(h)),b=[h].concat(y).reduce(function(e,n){return e.concat(Ph(n)===ch?ug(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],S=0;S=0,V=_?"width":"height",D=ig(t,{placement:j,boundary:s,rootBoundary:d,altBoundary:v,padding:c}),E=_?N?ih:uh:N?lh:ah;w[V]>O[V]&&(E=qh(E));var F=qh(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=j,x=!1;break}C.set(j,T)}if(x)for(var M=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"},I=p?3:1;I>0;I--){if("break"===M(I))break}t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function sg(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 dg(e){return[ah,ih,lh,uh].some(function(t){return e[t]>=0})}var vg={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=hh.reduce(function(e,n){return e[n]=function(e,t,n){var r=Ph(e),o=[uh,ah].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,[uh,ih].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 fg={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=ig(t,{boundary:u,rootBoundary:c,padding:d,altBoundary:s}),g=Ph(t.placement),y=Kh(t.placement),b=!y,w=Lh(g),O="x"===w?"y":"x",C=t.modifiersData.popperOffsets,x=t.rects.reference,P=t.rects.popper,S="function"==typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,j="number"==typeof S?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),k=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,N={x:0,y:0};if(C){if(a){var _,V="y"===w?ah:uh,D="y"===w?lh:ih,E="y"===w?"height":"width",F=C[w],T=F+h[V],M=F-h[D],I=f?-P[E]/2:0,A=y===dh?x[E]:P[E],B=y===dh?-P[E]:-x[E],L=t.elements.arrow,R=f&&L?Dh(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=Rh(0,x[E],R[E]),U=b?x[E]/2-I-K-H-j.mainAxis:A-K-H-j.mainAxis,Y=b?-x[E]/2+I+K+W+j.mainAxis:B+K+W+j.mainAxis,$=t.elements.arrow&&Bh(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=Rh(f?jh(T,F+U-q-Z):T,F,f?Sh(M,X):M);C[w]=G,N[w]=G-F}if(i){var J,Q="x"===w?ah:uh,ee="x"===w?lh:ih,te=C[O],ne="y"===O?"height":"width",re=te+h[Q],oe=te-h[ee],ae=-1!==[ah,uh].indexOf(g),le=null!=(J=null==k?void 0:k[O])?J:0,ie=ae?re:te-x[ne]-P[ne]-le+j.altAxis,ue=ae?te+x[ne]+P[ne]-le-j.altAxis:oe,ce=f&&ae?function(e,t,n){var r=Rh(e,t,n);return r>n?n:r}(ie,te,ue):Rh(f?ie:re,te,f?ue:oe);C[O]=ce,N[O]=ce-te}t.modifiersData[r]=N}},requiresIfExists:["offset"]};function pg(e,t,n){void 0===n&&(n=!1);var r,o=Oh(t),a=Oh(t)&&function(e){var t=e.getBoundingClientRect(),n=kh(t.width)/e.offsetWidth||1,r=kh(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),l=Mh(t),i=Vh(e,a,n),u={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(o||!o&&!n)&&(("body"!==yh(t)||eg(l))&&(u=(r=t)!==bh(r)&&Oh(r)?function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}(r):Jh(r)),Oh(t)?((c=Vh(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):l&&(c.x=Qh(l))),{x:i.left+u.scrollLeft-c.x,y:i.top+u.scrollTop-c.y,width:i.width,height:i.height}}function mg(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 hg={placement:"bottom",modifiers:[],strategy:"absolute"};function gg(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:[]).forEach(function(n){S(n)?e.push.apply(e,i(n)):n.type===t.Fragment?e.push.apply(e,i(Og(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 Cg(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 xg=t.defineComponent({name:"TPopupTrigger",props:{forwardRef:Function},emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots,a=Cg(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)}),zi(a,function(e){var t=Ya(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=Og(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]}}}),Pg=t.defineComponent({name:"TPopupContent",emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots;return zi(Cg(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()])}}}),Sg=t.defineComponent({name:"TPopupContainer",inheritAttrs:!1,props:{parent:Object,visible:Boolean,attach:wg.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 hl(e.attach,i.value)};return t.createVNode(t.Fragment,null,[t.createVNode(xg,{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(Pg,{onResize:c,onVnodeMounted:function(){return r("contentMounted")}},{default:function(){return[a.content&&a.content()]}})]}})])}}});function jg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function kg(e){for(var t=1;tn.x&&t.xn.y&&t.y0&&(Gg(l.value)||Gg(u.value))?(pi("Breadcrumb","\u9700\u8981\u8bbe\u7f6e itemsBeforeCollapse \u548c itemsAfterCollapse \u5c5e\u6027\u6765\u63a7\u5236\u7701\u7565\u53f7\u524d\u540e\u7684\u663e\u793a\u9879\u6570\u3002"),!1):!(r<=0||o<=r||i>=o)}),s=t.computed(function(){var e=n.value;if(!c.value)return e;var t=e.length,o=e.slice(0,l.value),a=e.slice(t-u.value,t);return[].concat(i(o),[{content:r,disabled:!0,isEllipsisItem:!0}],i(a))}),d=t.computed(function(){var e=n.value;if(!c.value)return[];var t=e.slice(l.value,e.length-u.value);return t.map(function(e,n){return Xg(Xg({},e),{},{isLast:n===t.length-1})})});return{getDisplayItems:s,getEllipsisItems:d}}(e,r,c),f=s.getDisplayItems.value.map(function(e,n){return"object"===u(e)&&"content"in e?t.createVNode(Zg,t.mergeProps({key:n},e),{default:function(){return[e.content]}}):e});return t.createVNode("div",{class:a.value},[f])}}}),ty=Nl(ey),ny=Nl(Zg),ry={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 oy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ay(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(ly,{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(Vp,null,null):null])):f=t.createVNode("div",{key:i},[t.createVNode(ly,{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(Vp,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 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;t0?vy(m):null})}).filter(function(e){return!!e.content}):S(e)&&S(null===(n=e[0])||void 0===n?void 0:n.children)?vy(null===(r=e[0])||void 0===r?void 0:r.children):[]};function fy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function py(e){for(var t=1;t0?e.options:vy(u)})}(e),f=py(py(py({},r),{},{disabled:e.disabled,placement:e.placement,trigger:e.trigger},la(e.popupProps,["onVisibleChange","on-visible-change"])),{},{overlayInnerClassName:[a.value,null===(u=e.popupProps)||void 0===u?void 0:u.overlayInnerClassName]});return t.createVNode(Fg,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(cy,t.mergeProps(la(e,"onClick"),{options:v.value,onClick:c}),null):null,o("panelBottomContent")])}})}}}),hy=Nl(my),gy=Nl(ly),yy=Nl(cy),by={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 wy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 Oy=function(e,t,n){if(e)for(var r=0;r0)for(var n=0,r=e.children.length;n0){var o=xy(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=Oy(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=Cy(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=xy(this.data,e);return t?t.children:[]}}])}();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 jy(e){for(var t=1;t1}),C=t.computed(function(){return c.valueMath.abs(n)?E(c.value+t):E(c.value+n)}},M=function(){setTimeout(function(){E(function(e,t,n){var r,o=e.navsContainer,a=e.activeTab,l=e.rightOperations,i=e.leftOperations,u=Ey(a),c=Ey(o),s=(null==(r=a)?void 0:r.offsetLeft)||0,d=Ey(l),v=Ey(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)},I=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,Ey(t)-Ey(n)+Ey(r)-Ey(o))})};t.watch([function(){return e.placement},function(){return e.panels}],I),t.watch([function(){return e.scrollPosition}],M),function(e,n){Ei("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 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,M())},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=ui(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),I(),M()});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(Fy,{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)},onTabRemove:B,onTabPanelRemove:n.onRemove},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:j.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(Ty,{placement:e.placement,value:e.value,navs:r},null),r])])]))]);var r}}}),By=t.defineComponent({name:"TTabs",props:Dy,setup:function(e){var n=ei("tabs"),r=ei(),o=Rl(),a=t.toRefs(e),l=Ya(Ui(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&&S(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(Ay,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(Vy,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()]])}}}),Ly=Nl(By),Ry=Nl(Vy),zy={content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function},popupProps:{type:Object},title:{type:[String,Function]},value:{type:[String,Number]}},Hy=t.defineComponent({name:"TFakeArrow",props:{isActive:{type:Boolean},overlayClassName:{type:[String,Object,Array]},overlayStyle:{type:Object||String}},setup:function(e){var n=ei("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 Wy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 Ky=t.defineComponent({name:"TSubmenu",props:zy,setup:function(e,n){var r=n.attrs,o=n.slots,a=ei(),l=Rl(),u=Hl(),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),S=t.ref(!1),j=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=ei("slide-down");Wi(D,j);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]}),M=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]}),I=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);S.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;S.value=!1,o(r)||(P.value=!1),null==w||w(e)}},Y=function(){S.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(Fg,t.mergeProps(null!==(r=e.popupProps)&&void 0!==r?r:{},{overlayInnerClassName:i(T.value),overlayClassName:i(M.value),visible:P.value,placement:o}),function(e){for(var t=1;t0&&(d=h?(n=l("icon"),r=[t.createVNode("div",{ref:D,class:I.value,onClick:$},[n,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")])],i="popup"===O.value&&N.value,s=[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),t.createVNode(Hy,{overlayClassName:/menu/i.test(null==c?void 0:c.parent.proxy.$options.name)?B.value:null,overlayStyle:{transform:"rotate(".concat(i?-90:0,"deg)")}},null)],"normal"===O.value?r:Z(s)):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:I.value,onClick:$},[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),e&&t.createVNode(Hy,{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(Hy,{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},v),[d,e])}}});function Uy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 Yy=t.defineComponent({name:"THeadMenu",props:Ny,setup:function(e,n){var r,o,a,l,u=ei(),c=t.getCurrentInstance().proxy;t.watchEffect(function(){n.slots.options&&fi("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=Ya(Ui(v,f,e.defaultValue,e.onChange),2),h=m[0],g=m[1],y=Ya(ni(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),j=t.reactive([]),k=new Py({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);j.length=0,j.push.apply(j,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=j.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(),M=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=hu(t,c);if(E(s))return s.characters}}}}function cb(e,t){return"number"===t?e||0===e?Number(e):void 0:e}function sb(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=Ri(),f=Ya(Ui(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=ub(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}),S=function(){var e;g.value=!0,null===(e=b.value)||void 0===e||e.focus()},j=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(cb(o,e.type),{e:n,trigger:"input"}),t.nextTick(function(){"number"===e.type&&/\.(\d+)?0$/.test(o)?j(o):j(p.value)})},N=t.inject(ib,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:S,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})()?S():(e.format&&(l.value="number"==typeof p.value||"number"===e.type?p.value:e.format(p.value)),g.value=!1,i.value&&(i.value=!1,u.value=""),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 db(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)};zi(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 vb=["isHover","tStatus","inputRef","renderType","showClear","focused","inputValue","isComposition","compositionValue","innerValue","limitNumber"];function fb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function pb(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 xb(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return-1!==e.indexOf(".")?(pi("InputNumber","num is not a integer number."),e):!e||"0"===e&&t?"":"0"===e?e:(t?e.replace(/0+$/,""):e.replace(/^0+/,""))||"0"}function Pb(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=xb(e,n),o=xb(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 Sb(e,t){var n=Ya(e.split("."),2),r=n[0],o=void 0===r?"0":r,a=n[1],l=void 0===a?"0":a,i=Ya(t.split("."),2),u=i[0],c=void 0===u?"0":u,s=i[1],d=void 0===s?"0":s,v=Pb(o,c);if("0"===l&&"0"===d)return v;var f=xb(l,!0),p=xb(d,!0),m=Pb(f,p,!0),h=m.length;return h>f.length&&h>p.length?[xb(Pb(v,"1")),xb(m.slice(1),!0)].filter(function(e){return e}).join("."):[xb(v),xb(m,!0)].filter(function(e){return e}).join(".")}function jb(e,t){var n=xb(e),r=xb(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 kb(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 Nb(e){var t=Ya(e.split("e"),2),n=t[0],r=t[1];if(!r)return e;var o=Ya(e.split("."),2),a=o[0],l=o[1],i=void 0===l?"":l,u=Number(r),c=Ya(i.split("e"),1)[0];if(u>c.length){var s=Ob(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 _b(e){return[-1/0,1/0].includes(Number(e))}function Vb(e){return Number(e)Number.MIN_SAFE_INTEGER}function Db(e,t,n){var r=Vb(e)&&Vb(t)&&!n,o=_b(e)||_b(t);return r||o?Number(e)===Number(t)?0:Number(e)>Number(t)?1:-1:function(e,t){var n=Ya(Nb(e).split("."),2),r=n[0],o=n[1],a=Ya(Nb(t).split("."),2),l=a[0],i=a[1],u=jb(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?kb(o,i):u}(String(e),String(t))}function Eb(e,t,n){if(e===t)return"0";for(var r=n||{},o=r.decimal,a=r.stayZero,l=xb(e),i=xb(t),u=jb(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+/,"")),xb(u?y:"-".concat(y))}function Fb(e,t){if(e===t)return"0";var n=Db(e,t,!0)>0,r=n?t:e,o=Ya((n?e:t).split("."),2),a=o[0],l=o[1],i=void 0===l?"0":l,u=Ya(r.split("."),2),c=u[0],s=u[1],d=void 0===s?"0":s,v=Eb(a,c);if("0"===i&&"0"===d)return n?v:"-".concat(v);var f="",p=i;i.length=0?f=Eb(p,d,{decimal:!0}):(i.length2&&void 0!==arguments[2])||arguments[2])return e.toFixed(t);var n=Ya(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)?Tb(e,t.places,null===(n=t.enableRound)||void 0===n||n):Tb(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(!To(e))return String(e);var l=Ya(e.split("."),2),i=l[0],u=l[1];if(!u)return o>0&&a?[e,Ob(o)].join("."):e;if(0===o)return a&&Number(u[0])>=5?Sb(i,"1"):i;var c=u.slice(0,o);if(u.length=5;c=f?Sb(c,"1"):c,d&&f&&d+c.length>=o&&(c="".concat(Ob(o-c.length)).concat(c)),v&&c.length>o&&(i=(Number(i)+1).toString(),c=Ob(o))}return[i,c].join(".")}function Ib(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 Ab(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 Bb(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 pi("InputNumber","step must be larger than 0."),r;var i,u,c,s=Uo(n)?String(n):n;return"add"===t?l&&To(r)?i=function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r)return Fb(t,e.slice(1));if(n&&r){var o=Sb(t.slice(1),e.slice(1));return"-".concat(o)}return!n&&r?Fb(e,t.slice(1)):Sb(e,t)}(String(r),String(s)):(u=Number(r||0),c=Number(n),i=u<0&&c>0?Ab(c,Math.abs(u)):u<0&&c<0?-1*Ib(Math.abs(u),Math.abs(c)):u>0&&c<0?Ab(u,Math.abs(c)):Ib(u,c)):"reduce"===t&&(i=l&&To(r)?function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r){var o=Sb(e.slice(1),t);return"-".concat(o)}return n&&r?Fb(t.slice(1),e.slice(1)):!n&&r?Sb(e,t.slice(1)):Fb(e,t)}(String(r),String(s)):function(e,t){return e<0&&t>0?-1*Ib(Math.abs(e),t):e<0&&t<0?Ab(Math.abs(t),Math.abs(e)):e>0&&t<0?Ib(e,Math.abs(t)):Ab(e,t)}(Number(r||0),Number(n))),Zo(r)&&(i=function(e,t){if(""!==e){var n=t.max,r=t.min,o=t.lastValue,a=t.largeNumber;return Cb(e)?!a||!To(n)&&n!==1/0||!To(r)&&r!==-1/0?Math.max(Number(r),Math.min(Number(n),Number(e))):Db(n,e,a)<0?n:Db(r,e,a)>0?r:e:o}}(i,{max:o,min:a,lastValue:r,largeNumber:l})),l?i:Number(i)}function Lb(e){var t=e.largeNumber,n=e.value,r=e.max,o=e.min;if(!Zo(n)&&!Zo(t))return t&&Uo(n)&&vi("InputNumber","largeNumber value must be a string."),Db(n,r,t)>0?"exceed-maximum":Db(n,o,t)<0?"below-minimum":void 0}var Rb=["-",".","e","E","+"];function zb(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=Nb(a)),void 0!==n&&(a=Mb(a,n,r)),r||o?a:parseFloat(a)}}function Hb(e){var n=ti(),r=n.classPrefix,o=n.SIZE,a=n.STATUS,l=t.toRefs(e),i=l.value,u=l.modelValue,c=l.max,d=l.min,v=Ya(Ui(i,u,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=t.ref(),h=t.ref(""),g=oi(),y=Ri(),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&&To(e)?Db(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&&To(e)?Db(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&&Cb(e)||!Number.isNaN(Number(e))||Rb.includes(e.slice(-1)))||/e/i.test(e)&&(!/\de/i.test(e)||/e\./.test(e)))}(a,e.largeNumber)){var l=a;if(void 0!==e.decimalPlaces&&""!==a&&a.includes(".")){var i=a.split("."),u="number"==typeof e.decimalPlaces?e.decimalPlaces:e.decimalPlaces.places;i[1]&&i[1].length>u&&(l="".concat(i[0],".").concat(i[1].substring(0,u)))}if(h.value=l,e.largeNumber)p(l,{type:"input",e:o});else{var c=""===l?void 0:Number(l);(function(e,t){return parseFloat(e)!==t&&!Number.isNaN(Number(e))})(l,Number(f.value))&&p(c,{type:"input",e:o})}}},isReadonly:y}}function Wb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 Kb=t.defineComponent({name:"TInputNumber",props:wb,setup:function(e,n){var r=si({AddIcon:Ju,RemoveIcon:Yv,ChevronDownIcon:Zc,ChevronUpIcon:Ps}),o=r.AddIcon,a=r.RemoveIcon,l=r.ChevronDownIcon,i=r.ChevronUpIcon,u=Hb(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=gw(e,360),t=gw(t,100),n=gw(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=hw(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 Jb(e,t,n){e=gw(e,255),t=gw(t,255),n=gw(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(Gb(r));return a}function fw(e,t){t=t||6;for(var n=Gb(e).toHsv(),r=n.h,o=n.s,a=n.v,l=[],i=1/t;t--;)l.push(Gb({h:r,s:o,v:a})),a=(a+i)%1;return l}Gb.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=hw(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=Qb(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=Qb(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=Jb(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=Jb(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 ew(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=[ww(Math.round(e).toString(16)),ww(Math.round(t).toString(16)),ww(Math.round(n).toString(16)),ww(Cw(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*gw(this._r,255))+"%",g:Math.round(100*gw(this._g,255))+"%",b:Math.round(100*gw(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*gw(this._r,255))+"%, "+Math.round(100*gw(this._g,255))+"%, "+Math.round(100*gw(this._b,255))+"%)":"rgba("+Math.round(100*gw(this._r,255))+"%, "+Math.round(100*gw(this._g,255))+"%, "+Math.round(100*gw(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(mw[ew(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+tw(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var o=Gb(e);n="#"+tw(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 Gb(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(aw,arguments)},brighten:function(){return this._applyModification(lw,arguments)},darken:function(){return this._applyModification(iw,arguments)},desaturate:function(){return this._applyModification(nw,arguments)},saturate:function(){return this._applyModification(rw,arguments)},greyscale:function(){return this._applyModification(ow,arguments)},spin:function(){return this._applyModification(uw,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(vw,arguments)},complement:function(){return this._applyCombination(cw,arguments)},monochromatic:function(){return this._applyCombination(fw,arguments)},splitcomplement:function(){return this._applyCombination(dw,arguments)},triad:function(){return this._applyCombination(sw,[3])},tetrad:function(){return this._applyCombination(sw,[4])}},Gb.fromRatio=function(e,t){if("object"==Zb(e)){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:Ow(e[r]));e=n}return Gb(e,t)},Gb.equals=function(e,t){return!(!e||!t)&&Gb(e).toRgbString()==Gb(t).toRgbString()},Gb.random=function(){return Gb.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Gb.mix=function(e,t,n){n=0===n?0:n||50;var r=Gb(e).toRgb(),o=Gb(t).toRgb(),a=n/100;return Gb({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})},Gb.readability=function(e,t){var n=Gb(e),r=Gb(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)},Gb.isReadable=function(e,t,n){var r,o,a=Gb.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},Gb.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=Gb(t[c]));return Gb.isReadable(e,i,{level:a,size:l})||!o?i:(n.includeFallbackColors=!1,Gb.mostReadable(e,["#fff","#000"],n))};var pw=Gb.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"},mw=Gb.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(pw);function hw(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function gw(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 yw(e){return Math.min(1,Math.max(0,e))}function bw(e){return parseInt(e,16)}function ww(e){return 1==e.length?"0"+e:""+e}function Ow(e){return e<=1&&(e=100*e+"%"),e}function Cw(e){return Math.round(255*parseFloat(e)).toString(16)}function xw(e){return bw(e)/255}var Pw,Sw,jw,kw=(Sw="[\\s|\\(]+("+(Pw="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+Pw+")[,|\\s]+("+Pw+")\\s*\\)?",jw="[\\s|\\(]+("+Pw+")[,|\\s]+("+Pw+")[,|\\s]+("+Pw+")[,|\\s]+("+Pw+")\\s*\\)?",{CSS_UNIT:new RegExp(Pw),rgb:new RegExp("rgb"+Sw),rgba:new RegExp("rgba"+jw),hsl:new RegExp("hsl"+Sw),hsla:new RegExp("hsla"+jw),hsv:new RegExp("hsv"+Sw),hsva:new RegExp("hsva"+jw),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 Nw(e){return!!kw.CSS_UNIT.exec(e)}var _w={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},Vw=t.defineComponent({name:"TTag",props:_w,setup:function(e){var n=Jl("tag").globalConfig,r=ei("tag"),o=si({CloseIcon:Ts}).CloseIcon,a=Rl(),l=Hl(),i=ti().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:Gb(t).getLuminance()>.5?"black":"white"};if("outline"!==n&&"light-outline"!==n||(i.borderColor=t),"outline"!==n){i.backgroundColor="dark"===n?t:(r=Gb(t).toRgb(),o=r.r,a=r.g,l=r.b,"rgba(".concat(o,", ").concat(a,", ").concat(l,", 0.1)"))}return"dark"!==n&&(i.color=t),i},p=function(t){var n;e.disabled||null===(n=e.onClick)||void 0===n||n.call(e,{e:t})};return function(){var i=function(){if(!e.closable)return null;var a="".concat(r.value,"__icon-close");return n.value.closeIcon?t.h(n.value.closeIcon(t.h),{class:a}):t.createVNode(o,{onClick:function(t){var n,r=t.e;r&&r.stopPropagation(),null===(n=e.onClose)||void 0===n||n.call(e,{e:r})},class:a},null)}(),s=l("default","content"),f=a("icon"),m=function(e){var t=u.props||{};return Reflect.has(t,"title")?t.title||void 0:e||void 0}(To(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])}}}),Dw={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};function Ew(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Fw(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}}(Ww(Ww({},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=Rl(),r=ei(),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=Ya(Ui(a,l,e.defaultValue||[],e.onChange),2),m=p[0],h=p[1],g=t.computed(function(){return m.value||[]}),y=t.ref(),b=oi(),w=Ri(),O=function(e){var t,n=i(g.value),r=Ya(n.splice(e.index,1),1)[0];h(n,zw(zw({trigger:"tag-remove"},e),{},{item:r})),null===(t=u.value)||void 0===t||t.call(u,zw(zw({},e),{},{item:r,trigger:"tag-remove",value:n}))};return{tagValue:g,clearAll:function(e){h([],{trigger:"clear",e:e.e})},onClose:O,onInnerEnter:function(t,n){var r,o=t?String(t).trim():"",a=c&&g.value.length>=c.value,l=g.value;!a&&o&&(l=g.value.concat(String(o)),h(l,{trigger:"enter",index:l.length-1,item:o,e:n.e})),null==e||null===(r=e.onEnter)||void 0===r||r.call(e,l,zw(zw({},n),{},{inputValue:t}))},onInputBackspaceKeyUp:function(e){g.value.length&&(y.value=e)},onInputBackspaceKeyDown:function(e,t){var n=t.e;if(g.value.length&&"Process"!==n.key&&!w.value){var r=/(Backspace|NumpadDelete)/i.test(n.code)||/(Backspace|NumpadDelete)/i.test(n.key);if(!e&&r){var o,a=g.value.length-1,l=g.value[a],i="backspace",c=g.value.slice(0,-1);h(c,{e:n,index:a,item:l,trigger:i}),null===(o=u.value)||void 0===o||o.call(u,{e:n,index:a,item:l,trigger:i,value:c})}y.value=e}},renderLabel:function(e){var o=e.displayNode,a=e.label,l=s.value?g.value.slice(0,s.value):g.value,i=o?[o]:l.map(function(e,r){var o,a=n("tag",{params:{value:e}});return t.createVNode(Aw,t.mergeProps({key:r,size:d.value,disabled:b.value,onClose:function(e){return O({e:e.e,index:r})},closable:!w.value&&!b.value},null===(o=f.value)||void 0===o?void 0:o.call(f,r,e),v.value),{default:function(){return[null!=a?a:e]}})})||[];if([null,void 0,""].includes(a)||i.unshift(t.createVNode("div",{class:"".concat(r.value,"-tag-input__prefix"),key:"label"},[a])),l.length!==g.value.length){var u=g.value.length-l.length,c=n("collapsedItems",{params:{value:g.value,count:g.value.length-s.value,collapsedTags:g.value.slice(s.value,g.value.length),collapsedSelectedItems:g.value.slice(s.value,g.value.length),onClose:O}});i.push(null!=c?c:t.createVNode(Aw,t.mergeProps({key:"more",size:d.value},v.value),{default:function(){return["+",u]}}))}return i}}}(t.reactive(Ww(Ww({},t.toRefs(e)),{},{getDragProps:R}))),X=q.tagValue,G=q.onInnerEnter,J=q.onInputBackspaceKeyUp,Q=q.onInputBackspaceKeyDown,ee=q.clearAll,te=q.renderLabel,ne=q.onClose,re=t.computed(function(){var t=!(S(X.value)&&X.value.length);return[l.value,s(s(s(s({},c.value,"break-line"===_.value),"".concat(A.value,"-is-empty"),t),"".concat(A.value,"-tag-input--with-tag"),!t),"".concat(A.value,"-tag-input--drag-sort"),e.dragSort&&!f.value&&!v.value)]}),oe=t.computed(function(){var e;return null!==(e=X.value)&&void 0!==e&&e.length?"":D.value}),ae=t.computed(function(){var e;return Boolean(!f.value&&!v.value&&V.value&&F.value&&((null===(e=X.value)||void 0===e?void 0:e.length)||j.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"}),!I.value&&G(e,n),t.nextTick(function(){W(),I.value=!1})},ie=function(e,t){var n,r;I.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;I.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){M(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,Ww(Ww({},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(yb,t.mergeProps({ref:$,borderless:g.value,readonly:p,showInput:!p||!X.value||!(null!==(n=X.value)&&void 0!==n&&n.length),value:j.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})}}}),Uw=Nl(Kw),Yw=["tips"];function $w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Zw(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),Gw({width:"".concat(Math.min(o,1e3),"px")},a)},s=function(e,t){var n;return Gw({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 Qw=["tips"];function eO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tO(e){for(var t=1;t=0||e.multiple&&(null===(r=M.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:S.value},a=t.createVNode(Fg,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},lO(lO({onVisibleChange:j,onOverlayClick:R},b.value),{},{overlayInnerStyle:P.value})),lO({default:function(){return[m.value?I({commonInputProps:_.value,onInnerClear:V,popupVisible:o.visible,allowInput:O.value}):D(o.visible)]}},lO(lO({},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])])}}}),uO=Nl(iO),cO={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]}},sO={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},dO=Symbol("CheckboxGroupProvide");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;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 wO(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}),S=function(){O=Math.min(w+h+2*c,n.value.length),v.visibleData=n.value.slice(w,O)},j=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),S=0;S=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,j,{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:S(),r.value&&(r.value.scrollTop=0)});var k=!1,N=function(){k&&(h=Math.ceil(r.value.offsetHeight/i),S())};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)}}),$i($i({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),j(),w>y-c&&(w=Math.max(0,y-c))}S()}}},handleRowMounted:function(){f.value&&p.value++},refreshContainer:N,fixedHeight:a,calculateScrollY:j})}({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}};function DO(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 EO(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)?EO(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 EO(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 BO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n-1},v=t.ref([]),f=function(e,t){return e.filter(function(e){if(!e.checkAll)return S(t)?t.includes(e.value):t===e.value})},p=t.computed(function(){var e=f(c.value,o.value);v.value=Ra([].concat(i(v.value),i(e)),"value");var t=f(v.value,o.value);return Ra([].concat(i(t),i(c.value)),"value")}),m=t.computed(function(){if(e.onSearch&&e.filterable)return u.value;if(!r.value||!e.filterable&&!H(e.filter))return u.value;var t,n=[];if(u.value.forEach(function(e){e.children&&n.push(TO(TO({},e),{},{children:e.children.filter(d)})),!0===(null==e?void 0:e.checkAll)&&(t=e),d(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:u,optionsMap:s,optionsList:c,optionsCache:l,displayOptions:m,filterMethods:d,searchDisplayOptions:p}}(e,N,w,V),E=D.optionsMap,F=D.optionsList,T=D.optionsCache,M=D.displayOptions,I=D.filterMethods,A=D.searchDisplayOptions,B=function(t,n){if(_.value){var r=N.value,o=r.value,a=r.label,l=function(e){if(void 0!==e){var t=E.value.get(e);return s(s({},o,jt(t,"value")),a,jt(t,"label"))}};t=e.multiple?t.map(function(e){return l(e)}):l(t)}var i;t!==x.value&&(e.multiple&&!e.reserveKeyword&&"check"==n.trigger&&O(""),P(t,RO({selectedOptions:J(t)},n)),e.multiple&&"uncheck"===n.trigger&&n.option&&(null===(i=e.onRemove)||void 0===i||i.call(e,{value:jt(n.option,N.value.value),data:n.option,e:n.e})))},L=Ya(ni(m,!1,function(t,n){var r;null===(r=e.onPopupVisibleChange)||void 0===r||r.call(e,t,n)},"popupVisible"),2),R=L[0],z=L[1],W=t.computed(function(){var t;return null!==(t=!e.multiple&&R.value&&OO(V.value,$.value,he,E)||e.placeholder)&&void 0!==t?t:f(v.value.placeholder)}),K=t.computed(function(){return e.multiple?function(e,t,n,r){var o,a=[],l=bO(e);try{for(l.s();!(o=l.n()).done;){var i=o.value,u=OO(i,t,n,r);u&&a.push(u)}}catch(e){l.e(e)}finally{l.f()}return a}(V.value,$.value,he,E):OO(V.value,$.value,he,E)}),U=t.computed(function(){if(!e.multiple)return RO(RO({},E.value.get(V.value)),{},{value:V.value,label:K.value});var t=S(V.value)?V.value.map(function(e){return E.value.get(e)}):[],n={value:t,onClose:e.multiple?function(e){return Z(e)}:function(){}};return e.minCollapsedNum&&S(V.value)?RO(RO({},n),{},{displayValue:Array.isArray(t)?t.slice(0,e.minCollapsedNum):[]}):n}),Y=t.computed(function(){return Boolean(e.filterable||v.value.filterable||H(e.filter))}),$=t.computed(function(){return Boolean((e.filterable||v.value.filterable)&&H(e.onSearch))}),Z=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=Ir(V.value),c=u[t];if(u.splice(t,1),"backspace"===i){for(var s,d=-1,v=t,f=Q();v>=0;){var p;if(null===(p=f[v])||void 0===p||!p.disabled){d=v;break}v-=1}if(d<0)return;var m=f[d],h=f.filter(function(e){return e.value!==m.value});return B(h.map(function(e){return e.value}),{selectedOptions:h,trigger:i,e:a}),void(null===(s=e.onRemove)||void 0===s||s.call(e,{value:m.value,data:m,e:a}))}"clear"!==i&&B(u,{selectedOptions:J(u),trigger:i,e:a}),null===(r=e.onRemove)||void 0===r||r.call(e,{value:c,data:E.value.get(c),e:a})},q=function(){var t;w.value&&(null===(t=e.onCreate)||void 0===t||t.call(e,w.value),R.value||O(""))},X=t.computed(function(){var e;return null===(e=k.value)||void 0===e?void 0:e.popupRef.getOverlay()}),G=t.computed(function(){return F.value.filter(function(e){return!e.disabled&&!(e["check-all"]||""===e["check-all"])&&!e.checkAll&&I(e)})}),J=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:V.value;return F.value.filter(function(t){if(!t.checkAll)return S(e)?e.includes(t.value):e===t.value})},Q=function(){var e=[],t=_.value?x.value:V.value;return(S(t)?t:[t]).forEach(function(t){var n=E.value.get(_.value?t.value:t);n?e.push(n):e.push(_.value?t:{value:t})}),e},ee=function(t){if(e.multiple){var n=N.value.value,r=V.value.filter(function(e){return F.value.find(function(t){return t.value===e&&t.disabled})}),o=G.value.map(function(e){return e.value}),a=_.value?x.value.map(function(e){return jt(e,n)}):x.value,l=i(t?new Set([].concat(i(a),i(o),i(r))):r);B(l,{selectedOptions:J(l),trigger:t?"check":"clear"})}},te=t.computed(function(){return 0!==ie.value&&ie.value===($.value?A.value.length:G.value.length)}),ne=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=ei();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 S=CO(v.value,P);if(m>0&&S.value.length>m)return;var j=c(S.value);s(S.value,{option:j.find(function(e){return e.value==P}),selectedOptions:j,trigger:S.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:M,optionsList:F,innerPopupVisible:R,setInnerPopupVisible:z,selectPanelRef:j,isFilterable:Y,isRemoteSearch:$,getSelectedOptions:J,setInnerValue:B,onCheckAllChange:ee,isCheckAll:te,innerValue:V,popupContentRef:X,multiple:e.multiple,max:e.max}),re=ne.hoverIndex,oe=ne.virtualFilteredOptions,ae=ne.handleKeyDown,le=ne.filteredOptions,ie=t.computed(function(){var e=G.value.map(function(e){return e.value});return Bo(V.value,e).length}),ue=t.computed(function(){return!te.value&&0!==ie.value}),ce=t.computed(function(){return{max:e.max,multiple:e.multiple,hoverIndex:re.value,selectValue:V.value,reserveKeyword:e.reserveKeyword,handleValueChange:B,handlerInputChange:O,handlePopupVisibleChange:z,handleCreate:q,size:e.size,popupContentRef:X,indeterminate:ue.value,isCheckAll:te.value,onCheckAllChange:ee,getSelectedOptions:J,displayOptions:M.value,emitBlur:fe}});t.provide(xO,ce);var se=function(){!e.multiple&&S(x.value)&&P(void 0,{selectedOptions:[],trigger:"default"}),e.multiple&&!S(x.value)&&P([],{selectedOptions:[],trigger:"default"})},de=po(function(t,n){var r,o=n.e;null===(r=e.onSearch)||void 0===r||r.call(e,"".concat(t),{e:o})},300),ve=function(e,n){e&&!R.value&&z(!0,{e:n.e}),O(e),de("".concat(e),{e:n.e}),t.nextTick(function(){var e,t;oe.value=null===(e=j.value)||void 0===e?void 0:e.visibleData,le.value=null===(t=j.value)||void 0===t?void 0:t.displayOptions})},fe=function(t){var n;null===(n=e.onBlur)||void 0===n||n.call(e,{e:t,value:V.value})},pe=function(e,t){z(e,t),e&&"trigger-element-click"===t.trigger&&O("")},me=function(){var t=Gp(bm.mark(function t(n){var r,o,a;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(a=e.popupProps,!e.loading){t.next=1;break}return t.abrupt("return");case 1: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 2:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}();t.watch(x,function(n){se(),t.nextTick(function(){!function(t){if(e.multiple){var n,r=[],o=AO(t||[]);try{for(o.s();!(n=o.n()).done;){var a=n.value,l=E.value.get(a);l&&r.push(l)}}catch(e){o.e(e)}finally{o.f()}T.value=Array.from(new Set([].concat(r,i(T.value))))}else{var u=E.value.get(t);u&&(T.value=Array.from(new Set([u].concat(i(T.value)))))}}(n)})},{immediate:!0}),t.watch(function(){return e.multiple},function(){se()});var he=t.computed(function(){return $.value?A.value:Q()}),ge=function(){return u("valueDisplay",{params:U.value})||function(){var n,r,o;if(e.multiple&&!1!==(null===(n=e.selectInputProps)||void 0===n?void 0:n.multiple))return null===(r=(o=V.value.slice(0,e.minCollapsedNum?e.minCollapsedNum:V.value.length)).map)||void 0===r?void 0:r.call(o,function(n,r){var o,i=he.value.find(function(e){if(e.value===n)return!0});return t.createVNode(Aw,t.mergeProps({key:r,closable:!(null!=i&&i.disabled||a.value||l.value),size:e.size},e.tagProps,{onClose:function(t){var n,o,a=t.e;a.stopPropagation(),null===(n=e.tagProps)||void 0===n||null===(o=n.onClose)||void 0===o||o.call(n,{e:a}),Z(r)}}),{default:function(){return[i?null!==(o=i.label)&&void 0!==o?o:null==i?void 0:i.value:n]}})})}()};return t.provide("updateScrollTop",function(e){var n;if(j.value){var r=null===(n=j.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=du(n,IO);return t.createVNode("div",{class:"".concat(c.value,"__wrap")},[t.createVNode(uO,t.mergeProps({autoWidth:e.autoWidth,readonly:l.value,borderless:e.borderless,multiple:e.multiple,clearable:e.clearable,loading:e.loading,status:e.status,tips:function(){return u("tips")},minCollapsedNum:e.minCollapsedNum,autofocus:e.autofocus,suffix:e.suffix,valueDisplayOptions:e.valueDisplayOptions},{ref:k,class:c.value,value:K.value,disabled:a.value,popupVisible:R.value,inputValue:R.value?w.value:"",placeholder:"".concat(W.value),allowInput:Y.value,"collapsed-items":e.collapsedItems,inputProps:RO(RO({size:e.size,autofocus:e.autofocus},e.inputProps),{},{onkeydown:ae}),tagInputProps:RO({size:e.size},e.tagInputProps),onTagChange:function(e,t){Z(t.index,t)},tagProps:RO({},e.tagProps),popupProps:RO(RO({overlayClassName:["".concat(c.value,"__dropdown"),o]},i),{},{onScrollToBottom:me}),label:e.label,prefixIcon:e.prefixIcon,suffix:e.suffix,suffixIcon:function(){return e.suffixIcon||r.suffixIcon?u("suffixIcon"):e.showArrow&&t.createVNode(Hy,{overlayClassName:"".concat(c.value,"__right-icon"),isActive:R.value},null)},valueDisplay:ge,onPopupVisibleChange:pe,onInputChange:ve,onClear:function(t){var n,r=t.e;B(e.multiple?[]:void 0,{option:null,selectedOptions:J(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:V.value}),q()},0)},onBlur:function(t,n){var r,o=n.e;null===(r=e.onBlur)||void 0===r||r.call(e,{e:o,value:V.value})},onFocus:function(t,n){var r,o=n.e;null===(r=e.onFocus)||void 0===r||r.call(e,{e:o,value:V.value})}},e.selectInputProps),{label:r.label,prefixIcon:r.prefixIcon,suffix:r.suffix,panel:function(){return t.createVNode(MO,t.mergeProps({ref:j},Na(e,["multiple","empty","loading","loadingText","filterable","creatable","panelTopContent","panelBottomContent","filter","scroll","keys"]),{inputValue:w.value}),r)},collapsedItems:r.collapsedItems})])}}}),HO=Nl(zO),WO=Nl(jO),KO=Nl(NO),UO={append:{type:[String,Function]},prepend:{type:[String,Function]}},YO=t.defineComponent({name:"TInputAdornment",props:UO,setup:function(e,n){var r=n.slots,o=ei("input-adornment"),a=Rl(),l=function(e,n,a){var l,i=To(a)||Uo(a);return r[n]||!To(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]}}}),$O=Nl(YO),ZO={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 qO=["pageCount"],XO=t.defineComponent({name:"TPagination",props:ZO,setup:function(e){var n=t.getCurrentInstance().emit,r=t.toRefs(e),o=r.modelValue,a=r.pageSize,l=r.current,i=Rl(),u=Ya(Ui(l,o,e.defaultCurrent,e.onCurrentChange,"current"),2),c=u[0],d=u[1],v=Ya(ni(a,e.defaultPageSize,e.onPageSizeChange,"pageSize"),2),f=v[0],p=v[1],m=Jl("pagination"),h=m.t,g=m.globalConfig,y=ei("pagination"),b=si({PageFirstIcon:Dv,PageLastIcon:Iv,ChevronLeftIcon:os,ChevronRightIcon:bs,ChevronLeftDoubleIcon:Qc,ChevronRightDoubleIcon:ps,EllipsisIcon:ad}),w=b.PageFirstIcon,O=b.PageLastIcon,C=b.ChevronLeftIcon,x=b.ChevronRightIcon,P=b.ChevronLeftDoubleIcon,S=b.ChevronRightDoubleIcon,j=b.EllipsisIcon,k=function(e,n,r,o){var a=ti(),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"),mu()<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,_=du(k,qO),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,M=V.nextMore,I=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&&I.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=I.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);Uo(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($O,{append:"/ ".concat(N.value," ").concat(h(g.value.page))},{default:function(){return[t.createVNode(Ub,{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,n)])),l&&r.length>0&&t.createVNode(HO,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(j,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&&I.value&&z.value?t.createVNode("li",{class:_.btnMoreClass.value,onClick:function(){return K("nextMorePage")},onMouseover:function(){return M.value=!0},onMouseout:function(){return M.value=!1}},[M.value?t.createVNode(S,null,null):t.createVNode(j,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])}}}),GO={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};var JO=t.defineComponent({name:"TPaginationMini",props:GO,setup:function(e){var n=ei("pagination-mini"),r=si({ChevronLeftIcon:os,RoundIcon:nf,ChevronRightIcon:bs,ChevronUpIcon:Ps,ChevronDownIcon:Zc}),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}}),v=function(e,n){return e?t.createVNode(Kg,{content:e,showArrow:!1},"function"==typeof(r=n)||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}}):n;var r};return function(){var r=[n.value,s({},"".concat(n.value,"--outline"),"outline"===e.variant)];return t.createVNode("div",{class:r},[v(c.value.prev,t.createVNode(Iu,{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&&v(c.value.current,t.createVNode(Iu,{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)),v(c.value.next,t.createVNode(Iu,{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))])}}}),QO=Nl(XO),eC=Nl(JO),tC={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},nC={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 rC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function oC(e){for(var t=1;tr)return"finish"}return(void 0===t.value?n:t.value)===a.value?"process":"default"},c=El(),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 nC&&!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(aC,t.mergeProps(r,{index:a,status:u(r,o),key:r.value||o}),null)}))]);var n}}}),iC=Nl(lC),uC=Nl(aC),cC={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},sC={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 dC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vC(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(ou.test(e.code)||ou.test(e.key))&&l.value&&r("select",l.value,{e:e})},h=function(){dl(document,"keydown",m)},g=function(){vl(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},[To(s)&&e.highlightKeyword?t.createVNode(xC,{content:s,keyword:e.value},null):s])})]):t.createVNode("div",{class:"".concat(u.value,"-auto-complete__panel--empty")},[e.empty||c.value.empty])}}});function kC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 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;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 NC({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,NC(NC({},r),{},{value:n})),t.nextTick(function(){var e;null===(e=g.value)||void 0===e||e.addKeyboardListener()}))},S=function(t,n){var r;null===(r=e.onBlur)||void 0===r||r.call(e,NC(NC({},n),{},{value:t}))},j=function(t,n){var r;null===(r=e.onCompositionend)||void 0===r||r.call(e,NC(NC({},n),{},{value:t}))},k=function(t,n){var r;null===(r=e.onCompositionstart)||void 0===r||r.call(e,NC(NC({},n),{},{value:t}))},N=function(t,n){var r;null===(r=e.onEnter)||void 0===r||r.call(e,NC(NC({},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(yb,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:S,onClear:e.onClear,onCompositionend:j,onCompositionstart:k,onEnter:N},x.value),r),i=Array.isArray(e.options)&&t.createVNode(jC,{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=NC(NC({},e.popupProps),{},{overlayInnerStyle:y,overlayInnerClassName:O.value,overlayClassName:w.value});return t.createVNode("div",{class:b.value},[t.createVNode(Fg,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]}}))])}}}),VC=Nl(_C),DC=Nl(xC);function EC(e,t,n){var r=n.disabled;return["".concat(e,"-cascader__icon"),s({},t.disabled,r)]}function FC(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 TC(e){var t=e.value,n=e.multiple,r=e.treeStore,o=e.showAllLevels;if(n||0!==t&&!t)return"";if(S(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 MC(e){var t=[];return e.forEach(function(e){t[e.level]?t[e.level].push(e):t[e.level]=[e]}),t}function IC(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 AC=function(e){var t=[];return S(e)?e.length>0&&E(e[0])?t=e.map(function(e){return e.value}):e.length&&(t=e):BC(e)||(t=E(e)?[e.value]:[e]),t};function BC(e){return!(Uo(e)&&!isNaN(e))&&Wo(e)}function LC(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=Ir(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 RC={node:{type:Object,default:function(){return{}}},optionChild:{type:[Object,Array]},cascaderContext:{type:Object},onChange:Function,onClick:Function,onMouseenter:Function},zC=t.defineComponent({name:"TCascaderItem",props:RC,setup:function(e){var n=t.ref();Wi(n);var r=ei("cascader__item"),o=ei(),a=si({ChevronRightIcon:bs}).ChevronRightIcon,l=ti(),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(FC(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(FC(t,n,r)))}(o.value,e.node,u.value,e.cascaderContext)});function f(e,n){var o=n.inputVal,a=o?IC(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?IC(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(Du,{class:v.value,size:"small"},null):t.createVNode(a,{class:v.value},null))])}}}),HC={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},WC=t.defineComponent({name:"TCascaderSubPanel",props:{option:HC.option,empty:HC.empty,trigger:HC.trigger,onChange:HC.onChange,loading:HC.loading,loadingText:HC.loadingText,cascaderContext:{type:Object}},setup:function(e){var n=zl(),r=ei("cascader"),o=Jl("cascader").globalConfig,a=t.computed(function(){return MC(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(),r.inputVal||(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=Ya(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(zC,{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(Uo(r)&&r<0&&console.warn("TDesign Warn:","max should > 0"),!(d.length>r&&Uo(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 KC="__tdesign_tree-node__",UC=function(){return Ti(function e(t){Mi(this,e),s(this,KC,void 0),this[KC]=t},[{key:"value",get:function(){return this[KC].value}},{key:"label",get:function(){return this[KC].label}},{key:"data",get:function(){return this[KC].data}},{key:"actived",get:function(){return this[KC].actived}},{key:"expanded",get:function(){return this[KC].expanded}},{key:"checked",get:function(){return this[KC].checked}},{key:"indeterminate",get:function(){return this[KC].indeterminate}},{key:"loading",get:function(){return this[KC].loading}},{key:"disabled",get:function(){return this[KC].isDisabled()}},{key:"getLevel",value:function(){return this[KC].getLevel()}},{key:"getIndex",value:function(){return this[KC].getIndex()}},{key:"isFirst",value:function(){return this[KC].isFirst()}},{key:"isLast",value:function(){return this[KC].isLast()}},{key:"isLeaf",value:function(){return this[KC].isLeaf()}},{key:"insertBefore",value:function(e){return this[KC].insertBefore(e)}},{key:"insertAfter",value:function(e){return this[KC].insertAfter(e)}},{key:"appendData",value:function(e){return this[KC].append(e)}},{key:"getPath",value:function(){return this[KC].getPath().map(function(e){return e.getModel()})}},{key:"getParent",value:function(){var e;return null===(e=this[KC].parent)||void 0===e?void 0:e.getModel()}},{key:"getParents",value:function(){return this[KC].getParents().map(function(e){return e.getModel()})}},{key:"getRoot",value:function(){var e=this[KC].getRoot();return null==e?void 0:e.getModel()}},{key:"getSiblings",value:function(){return this[KC].getSiblings().map(function(e){return e.getModel()})}},{key:"getChildren",value:function(e){var t=this[KC],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 Lo(r)&&(n=r);return n}},{key:"remove",value:function(e){var t=this[KC];if(e){var n=t.tree.getNode(e);if(n)n.getParents().map(function(e){return e.value}).indexOf(t.value)<0?fi("Tree","`".concat(e,"` is not a childNode of current node")):n.remove();else fi("Tree","`".concat(e,"` is not exist"))}else t.remove()}},{key:"setData",value:function(e){var t=this[KC],n=["value","label","disabled"],r=la(e,["children"].concat(n)),o=t.tree.config.keys;n.forEach(function(t){var n=jt(e,(null==o?void 0:o[t])||t);Zo(n)||(r[t]=n)}),Object.assign(t.data,r),Object.assign(t,r),t.update()}}])}();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 $C(e){for(var t=1;t0?this.append(n):this.children=!1,this.update();case 2: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){(ZC.call(qC,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 Lo(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=!!jt(this,"tree.config.draggable");return"boolean"==typeof this.draggable&&(e=this.draggable),e}},{key:"isExpandMutex",value:function(){var e=!!jt(this,"tree.config.expandMutex");return"boolean"==typeof this.expandMutex&&(e=this.expandMutex),e}},{key:"isActivable",value:function(){var e=!!jt(this,"tree.config.activable");return"boolean"==typeof this.activable&&(e=this.activable),e}},{key:"isCheckable",value:function(){var e=!!jt(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()||($o(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=$C({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=$C({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=$C({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=$C({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=$C({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 UC(this),this.model=e),e}}]);var t}();function ex(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tx(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 To(e)||Uo(e)?t=this.nodeMap.get(e):e instanceof QC&&(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(To(e)||Uo(e)?r=e:e instanceof QC&&(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=tx({filter:null,level:1/0},t);Uo(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 QC(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 To(e)||Uo(e)?(n=e,r=this.getNode(n),o=t):e instanceof QC&&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 QC?n.data.appendTo(this,n.node):S(n.data)?n.node.append(n.data):n.node.append([n.data]),n.node.updateRelated()):n.data instanceof QC?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[JC],"changed"):this.getNodes().forEach(function(e){o.set(e[JC],"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=tx({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 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 ox(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=AC(t);if(e){if(S(r)&&0===n.length){var o=new Map,a=Ya(r,1)[0];if(!BC(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(AC(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 nx({keys:ox(ox({},o),{},{children:To(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&&!S(e)||!n&&S(e)&&"single"===o&&!r})(u.value,p.value)&&t(n?[]:"","invalid-value"),BC(u.value)?m.scopeVal=n?[]:"":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 lx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ix(e){for(var t=1;t68?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)}}}()}(hx);var gx=Za(hx.exports);Yl.extend(fx),Yl.extend(mx),Yl.extend(gx);var yx="HH:mm:ss";function bx(){return(arguments.length>0&&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 wx(e,t,n,r){if(""===e||null===e)return Yl();var o=e;if(/[w|W]/g.test(t)){To(o)||(o=Yl(o).locale(r||"zh-cn").format(t));var a=o.split(/[-/.\s]/)[0],l=o.split(/[-/.\s]/)[1],i=t.split(/[-/.\s]/)[1],u=Yl(a,"YYYY").locale(r||"zh-cn").startOf("year");(u.day()>4||0===u.day())&&(u=u.add(1,"week"));for(var c=Yl(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)){To(o)||(o=Yl(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=Yl(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=Yl(o,t).isValid()?Yl(o,t):Yl(o);return y.isValid()?y:(pi("DatePicker","Check whether the format\u3001value format is valid.\n value: '".concat(e,"', format: '").concat(t,"'")),Yl())}function Ox(e,t){return Array.isArray(e)?e.every(function(e){return""===e||(Yl(e,t).isValid()||Yl(e).isValid())}):""===e||(Yl(e,t).isValid()||Yl(e).isValid())}function Cx(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&&wx(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()})?(pi("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=wx(t,n).locale(o);return a.isValid()?"time-stamp"===r?a.toDate().getTime():"Date"===r?a.toDate():a.format(r||n):(pi("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 xx(e,t){if(e&&t){var n=e.split(":"),r=t.split(":");return n.slice(0,r.length).join(":")}return e}function Px(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){if(e){var a=Yl(e,"string"==typeof e?t:void 0).format(n);return!Yl(a,n).isValid()&&r[o]?r[o]:a}return xx(r[o],n)}),a=a.length?a:r.map(function(e){return xx(e,n)}),Array.isArray(e)?a:null===(o=a)||void 0===o?void 0:o[0]}function Sx(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:yx}:"month"===n?{format:r||"YYYY-MM",valueType:o||r||"YYYY-MM",timeFormat:yx}:"quarter"===n?{format:r||"YYYY-[Q]Q",valueType:o||r||"YYYY-[Q]Q",timeFormat:yx}:"week"===n?{format:r||"gggg-wo",valueType:o||r||"gggg-wo",timeFormat:yx}:"date"===n?{format:r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),valueType:o||r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),timeFormat:bx(r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""))||yx}:(pi("DatePicker","Invalid mode: ".concat(n)),{})}function jx(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:[Yl().year(),Yl().year()],month:[Yl().month(),Yl().month()],time:[Yl().format(l),Yl().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 wx(e,o).year()}),month:t.map(function(e){return wx(e,o).month()}),time:t.map(function(e){return wx(e,o).format(l)})}:u}function kx(e){var n,r,o,a,l=t.toRefs(e),i=Ya(Ui(l.value,l.modelValue,e.defaultValue,e.onChange),2),u=i[0],c=i[1],s=t.computed(function(){return Sx({mode:e.mode,format:e.format,enableTimePicker:!e.multiple&&e.enableTimePicker})});e.enableTimePicker&&(bx(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(Px(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(wx(e.multiple?null===(r=u.value)||void 0===r?void 0:r[0]:u.value,s.value.format).month()),f=t.ref(wx(e.multiple?null===(o=u.value)||void 0===o?void 0:o[0]:u.value,s.value.format).year()),p=t.ref(Cx(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?Ox(u.value,s.value.format)&&(p.value=Cx(u.value,{format:s.value.format}),d.value=Px(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 Nx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 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;t25){var a=o(this).startOf(t).add(1,t).date(r),l=o(this).endOf(e);if(a.isBefore(l))return 1}var i=o(this).startOf(t).date(r).startOf(e).subtract(1,"millisecond"),u=this.diff(i,e,!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)}}}()}(Fx);var Tx=Za(Fx.exports),Mx={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}}}(Mx);var Ix=Za(Mx.exports),Ax={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)}}}(Ax);var Bx=Za(Ax.exports),Lx={exports:{}};!function(e){e.exports=function(){var e="month",t="quarter";return function(n,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(n,r){return n=Number(n),this.$utils().p(r)===t?this.add(3*n,e):a.bind(this)(n,r)};var l=o.startOf;o.startOf=function(n,r){var o=this.$utils(),a=!!o.u(r)||r;if(o.p(n)===t){var i=this.quarter()-1;return a?this.month(3*i).startOf(e).startOf("day"):this.month(3*i+2).endOf(e).endOf("day")}return l.bind(this)(n,r)}}}()}(Lx);var Rx=Za(Lx.exports),zx={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)}}}(zx);var Hx=Za(zx.exports);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;t2&&void 0!==arguments[2]?arguments[2]:"zh-cn";return Zx(e,t)&&Yl(e).locale(n).week()===Yl(t).locale(n).week()}function Xx(e,t){return Zx(e,t)&&e.getDate()===t.getDate()}function Gx(e,t){var n=e.getTime(),r=t.getTime();return nr?1:0}function Jx(e,t){var n,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"zh-cn";return{isSameYear:Yx,isSameQuarter:$x,isSameMonth:Zx,isSameWeek:qx,isSameDate:Xx}["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 Qx(e,t,n){return t&&-1===Gx(e,t)||n&&1===Gx(e,n)}function eP(){var e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0)}function tP(e,t){return Yl(e).subtract(t,"month").toDate()}function nP(e,t){return Yl(e).add(t,"month").toDate()}function rP(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,Ux({year:t,month:n}))}({year:n,month:r}),g=Ux({year:n,month:r}),y=[],b=1,w=eP();b<=g;b++){var O=new Date(n,r,b);y.push({text:b,active:!1,value:O,disabled:H(u)&&u(O)||!p&&Qx(O,c,s),now:Jx(w,O),firstDayOfMonth:1===b,lastDayOfMonth:b===g,type:"current-month",dayjsObj:Yl(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&&Qx(m,c,s),additional:!0,type:"prev-month",dayjsObj:Yl(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&&Qx(h,c,s),additional:!0,type:"next-month",dayjsObj:Yl(h).locale(v)});var C=zn(y,7);return l&&C.forEach(function(e){e.unshift(Kx(Kx({},e[0]),{},{active:!1,value:e[0].value,text:Yl(e[0].value).locale(v).week(),dayjsObj:Yl(e[0].value).locale(v)}))}),C}function oP(e,t){var n=Vx({},(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&&Jx(r,n,u),c=a&&Jx(a,n,u),s=o&&Jx(o,n,u),d=l&&Jx(l,n,u);return t.active=(i||s)&&!t.additional,r&&o&&(t.highlight=Yl(n).isBetween(r,o,u,"[]")&&!t.additional,t.startOfRange=i,t.endOfRange=s),a&&l&&(t.hoverHighlight=Yl(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 Jx(Yl(e).toDate(),n.value,u)&&!n.additional}):n.active=r&&Jx(e.value,r,u)&&!n.additional;return n})})}function aP(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.match(/[ap]m/i)||[""],n=Ya((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]}}Yl.extend(Tx),Yl.extend(Ix),Yl.extend(Bx),Yl.extend(Rx),Yl.extend(Hx),Yl.extend(gx),Yl.extend(Ex);var lP={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},iP=t.defineComponent({name:"TDatePickerHeader",props:{mode:{type:String,default:"date"},year:Number,month:Number,internalYear:Array,partial:String,onMonthChange:Function,onYearChange:Function,onJumperClick:Function},setup:function(e){var n=Jl("classPrefix").classPrefix,r=ei("date-picker__header"),o=Jl("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,n="end"===e.partial&&"year"===e.mode&&Number(e.internalYear[1])-Number(e.internalYear[0])<=9?9:0;return(null===(t=a.value.find(function(t){return t.value-(e.year+n)<=9&&t.value-(e.year+n)>=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(HO,{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(HO,{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(eC,{tips:v.value[e.mode],size:"small",onChange:e.onJumperClick},null)])}}}),uP=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:Ul.Dayjs},setup:function(e){var n=ei("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=aP(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=aP(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 cP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sP(e){for(var t=1;t=f&&y<=m&&b>p&&b1}).length;return i.value?Yl(i.value,u.value):e?Yl().hour(0).minute(0).second(0):Yl()});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=gP.meridiem,r=gP.hour,o=gP.minute,a=gP.second,l=gP.milliSecond;return e.match(yP).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=NP.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(NP.includes(t)){var r=NP.indexOf(t),o=l.value[r]||1;n=t===gP.hour?bP.test(u.value)?11:23:t===gP.milliSecond?999:59;var a=Fa(0,n+1,Number(o)).map(function(e){return ja(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 pP},w=function(e,t){e===gP.hour&&/[h]{1}/.test(u.value)&&(t%=12);var n=b(e).indexOf(ja(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)+_P,f=g(),p=f.offsetHeight+f.margin,O=Math.abs(Math.round(d/p+.5)),C=pP[Math.min(O-1,1)].toLowerCase();if(Number.isNaN(O)&&(O=1),NP.includes(t)){var x=59;t===gP.hour?x=/[h]{1}/.test(u.value)?11:23:t===gP.milliSecond&&(x=999);var P=NP.indexOf(t),S=Fa(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]}(S,Number(b(t)[Math.min(O-1,x+1,S.length-1)]),Number(l.value[P])||1),Number.isNaN(c)&&(c=S[S.length-1]),t===gP.hour&&v.value.includes(gP.meridiem)&&h.value.hour()>=12&&(c=Number(c)+12)}else c=C;var j=w(t,c);if(Yl(h.value).isValid()&&(!i.value||Yl(i.value,u.value,!0).isValid())){if(NP.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===vP&&_>=12?h.value.hour(_-12).format(u.value):C===fP&&_<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)),j!==d){var V,D=m[v.value.indexOf(t)];if(!D||D.scrollTop===j)return;null===(V=D.scrollTo)||void 0===V||V.call(D,{top:j,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,NP.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===gP.meridiem?h.value.format("a")===t:(o=null===(n=(r=h.value)[e])||void 0===n?void 0:n.call(r),e===gP.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(NP.includes(t))t===gP.hour&&h.value.format("a")===fP&&v.value.includes(gP.meridiem)&&(n=Number(n)+12),C(t,n,r,"smooth");else{var a,l=h.value.hour();if(n===vP&&l>=12)null===(a=e.onChange)||void 0===a||a.call(e,h.value.hour(l-12).format(u.value),o);else if(n===fP&&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)}},[NP.includes(a)?bP.test(u.value)&&a===gP.hour&&"00"===i?"12":i:n.value[i===vP?"anteMeridiem":"postMeridiem"]])})])})])}}});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}function EP(e){for(var t=1;t1}).length}),d=t.computed(function(){s.value;var t=Yl(e.value,e.format);return e.value&&t.isValid()?t.format(e.format):Yl().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 Zo(e.presets)?s.value?null:t.createVNode(Mu,{theme:"primary",variant:"text",size:"small",onClick:function(){var t;return null===(t=e.onChange)||void 0===t?void 0:t.call(e,Yl().format(e.format))}},{default:function(){return[n.value.now]}}):Object.keys(e.presets||[]).map(function(n){return t.createVNode(Mu,{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]):pi("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(VP,t.mergeProps(e,{ref:c,format:e.format||"HH:mm:ss",steps:e.steps||hP,value:Yl(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(Mu,{theme:"primary",variant:"base",disabled:!e.value,onClick:function(t){var n;return null===(n=e.handleConfirmClick)||void 0===n?void 0:n.call(e,t,d.value)},size:"small"},{default:function(){return[n.value.confirm]}}),p()]):null])}}});function TP(e,t,n,r){var o=t,a=n;return 0===e&&o[1]<=o[0]&&(r?o[1]=o[0]+1:(o[1]=o[0],a[1]<=a[0]&&(a[1]=a[0]+1,12===a[1]&&(a[1]=0,o=[o[0],o[1]+1])))),1===e&&o[0]>=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}}function MP(e,t,n){if(Yo(e))return null;var r=wx(e,t);if(n){var o=Ya(n,4),a=o[0],l=void 0===a?0:a,i=o[1],u=void 0===i?0:i,c=o[2],s=void 0===c?0:c,d=o[3],v=void 0===d?0:d;r=r.hour(l).minute(u).second(s).millisecond(v)}return r.toDate()}function IP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function AP(e){for(var t=1;t=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}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,disableTime:e.disableTime,firstDayOfWeek:e.firstDayOfWeek,timePickerProps:e.timePickerProps,enableTimePicker:e.enableTimePicker,presetsPlacement:e.presetsPlacement,popupVisible:u.value,panelPreselection:e.panelPreselection,cancelRangeSelectLimit:e.cancelRangeSelectLimit,needConfirm:e.needConfirm,onCellClick:N,onCellMouseEnter:j,onCellMouseLeave:k,onJumperClick:_,onConfirmClick:E,onPresetClick:F,onYearChange:T,onMonthChange:M,onTimePickerChange:V}});return function(){return t.createVNode("div",{class:o.value},[t.createVNode(dS,{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(pS,I.value,null)}},null)])}}}),hS={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 gS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var yS=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 Yl(e).toDate()}),trigger:"month-select"})}t.onMounted(function(){if(2===r.value.length&&!e.enableTimePicker){var t=r.value.map(function(e){return wx(e,d.value.format).month()});o.value=r.value.map(function(e){return wx(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 j=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(pS,j.value,null)}}}),bS=Nl(XP),wS=Nl(QP),OS=Nl(mS),CS=Nl(yS),xS={colon:Boolean,data:{type:Object,default:function(){return{}}},disabled:{type:Boolean,default:void 0},errorMessage:{type:Object},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,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},PS={exports:{}},SS={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}(SS,SS.exports);var jS=SS.exports;!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){t="string"==typeof t?(0,r.default)({format:t},i):(0,r.default)(t,i);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,l=t.delimiters.find(function(e){return-1!==t.format.indexOf(e)}),u=t.strictMode?l:t.delimiters.find(function(t){return-1!==e.indexOf(t)}),c=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: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 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}}}}(c);try{for(d.s();!(n=d.n()).done;){var v=o(n.value,2),f=v[0],p=v[1];if(!f||!p||f.length!==p.length)return!1;s[p.charAt(0)]=f}}catch(e){d.e(e)}finally{d.f()}var m=s.y;if(m.startsWith("-"))return!1;if(2===s.y.length){var h=parseInt(s.y,10);if(isNaN(h))return!1;m=h<(new Date).getFullYear()%100?"20".concat(s.y):"19".concat(s.y)}var g=s.m;1===s.m.length&&(g="0".concat(s.m));var y=s.d;return 1===s.d.length&&(y="0".concat(s.d)),new Date("".concat(m,"-").concat(g,"-").concat(y,"T00:00:00.000Z")).getUTCDate()===+s.d}if(!t.strictMode)return"[object Date]"===Object.prototype.toString.call(e)&&isFinite(e);return!1};var n,r=(n=jS)&&n.__esModule?n:{default:n};function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||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}}(e,t)||a(e,t)||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.")}()}function a(e,t){if(e){if("string"==typeof e)return l(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)?l(e,t):void 0}}function l(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=VS)&&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}(FS,FS.exports);var TS=FS.exports,MS={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(VS),r=o(jS);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}(MS,MS.exports);var IS=MS.exports,AS={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]:{};(0,r.default)(t);var a=("object"===o(n)?n.version:arguments[1])||"";if(!a)return e(t,{version:4})||e(t,{version:6});if("4"===a.toString())return i.test(t);if("6"===a.toString())return c.test(t);return!1};var n,r=(n=VS)&&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)}var a="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",l="(".concat(a,"[.]){3}").concat(a),i=new RegExp("^".concat(l,"$")),u="(?:[0-9a-fA-F]{1,4})",c=new RegExp("^("+"(?:".concat(u,":){7}(?:").concat(u,"|:)|")+"(?:".concat(u,":){6}(?:").concat(l,"|:").concat(u,"|:)|")+"(?:".concat(u,":){5}(?::").concat(l,"|(:").concat(u,"){1,2}|:)|")+"(?:".concat(u,":){4}(?:(:").concat(u,"){0,1}:").concat(l,"|(:").concat(u,"){1,3}|:)|")+"(?:".concat(u,":){3}(?:(:").concat(u,"){0,2}:").concat(l,"|(:").concat(u,"){1,4}|:)|")+"(?:".concat(u,":){2}(?:(:").concat(u,"){0,3}:").concat(l,"|(:").concat(u,"){1,5}|:)|")+"(?:".concat(u,":){1}(?:(:").concat(u,"){0,4}:").concat(l,"|(:").concat(u,"){1,6}|:)|")+"(?::((?::".concat(u,"){0,5}:").concat(l,"|(?::").concat(u,"){1,7}|:))")+")(%[0-9a-zA-Z.]{1,})?$");e.exports=t.default,e.exports.default=t.default}(AS,AS.exports);var BS=AS.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,i.default)(t,s)).validate_length&&e.length>t.max_allowed_length)return!1;if(!t.allow_fragments&&(0,o.default)(e,"#"))return!1;if(!t.allow_query_components&&((0,o.default)(e,"?")||(0,o.default)(e,"&")))return!1;var u,v,f,p,m,h,g,y;if(g=e.split("#"),e=g.shift(),g=e.split("?"),e=g.shift(),(g=e.split("://")).length>1){if(u=g.shift().toLowerCase(),t.require_valid_protocol&&-1===t.protocols.indexOf(u))return!1}else{if(t.require_protocol)return!1;if("//"===e.slice(0,2)){if(!t.allow_protocol_relative_urls)return!1;g[0]=e.slice(2)}}if(""===(e=g.join("://")))return!1;if(g=e.split("/"),""===(e=g.shift())&&!t.require_host)return!0;if((g=e.split("@")).length>1){if(t.disallow_auth)return!1;if(""===g[0])return!1;if((v=g.shift()).indexOf(":")>=0&&v.split(":").length>2)return!1;var b=v.split(":"),w=(P=2,function(e){if(Array.isArray(e))return e}(x=b)||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}}(x,P)||function(e,t){if(e){if("string"==typeof e)return c(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)?c(e,t):void 0}}(x,P)||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.")}()),O=w[0],C=w[1];if(""===O&&""===C)return!1}var x,P;p=g.join("@"),h=null,y=null;var S=p.match(d);S?(f="",y=S[1],h=S[2]||null):(f=(g=p.split(":")).shift(),g.length&&(h=g.join(":")));if(null!==h&&h.length>0){if(m=parseInt(h,10),!/^[0-9]+$/.test(h)||m<=0||m>65535)return!1}else if(t.require_port)return!1;if(t.host_whitelist)return(0,r.default)(f,t.host_whitelist);if(""===f&&!t.require_host)return!0;if(!((0,l.default)(f)||(0,a.default)(f,t)||y&&(0,l.default)(y,6)))return!1;if(f=f||y,t.host_blacklist&&(0,r.default)(f,t.host_blacklist))return!1;return!0};var n=u(VS),r=u(ES),o=u(HS),a=u(IS),l=u(BS),i=u(jS);function u(e){return e&&e.__esModule?e:{default:e}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=t:hu(e)>=t},len:function(e,t){return hu(String(e))===t},number:function(e){return Uo(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 $S(e,t){return ZS.apply(this,arguments)}function ZS(){return ZS=Gp(bm.mark(function e(t,n){var r,o,a,l,i,u,c;return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r={result:!0},o=Object.keys(n),i=0;case 1: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:l.value.requiredMarkPosition}),g=t.computed(function(){return r.label||e.label}),y=t.computed(function(){return!(null==v||!v.colon||!g.value)}),b=ei("form__label"),w=t.computed(function(){return Yo(e.labelAlign)?null==v?void 0:v.labelAlign:e.labelAlign}),O=t.computed(function(){return Yo(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=Uo(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])}},j=function(){var e=function(e){return t.createVNode("span",{class:a.value.status},[t.createVNode(e,null,null)])},n=D.value;if(F.value===ab.SUCCESS)return e(u);if(null!=n&&n[0]){var r=n[0].type||"error";return e({error:c,warning:d,success:u}[r])}return null},k=function(){if(!1!==e.statusIcon){var n=o("statusIcon",{defaultNode:j()});if(n)return t.createVNode("span",{class:a.value.status},[n]);if(!1!==n)return(n=null==v?void 0:v.renderContent("statusIcon",{defaultNode:j(),params:e}))||void 0}},N=t.computed(function(){if(!q.value)return"";if(F.value===ab.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=Uo(O.value)?{marginLeft:"".concat(O.value,"px")}:{marginLeft:O.value}),e}),D=t.ref([]),E=t.ref([]),F=t.ref(ab.TO_BE_VALIDATED),T=t.ref(!1),M=t.ref(!1),I=function(){M.value=!1,D.value=[],E.value=[],F.value=ab.TO_BE_VALIDATED},A=function(){var t,n=Object.prototype.toString.call(jt(null==v?void 0:v.data,e.name));return"[object String]"===n&&(t=""),"[object Array]"===n&&(t=[]),"[object Object]"===n&&(t={}),t},B=function(){var n=Gp(bm.mark(function n(){var r,o=arguments;return bm.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=1;break}return n.abrupt("return");case 1:return"empty"===r?Ma(null==v?void 0:v.data,e.name,A()):"initial"===r&&Ma(null==v?void 0:v.data,e.name,U.value),n.next=2,t.nextTick();case 2:T.value?M.value=!0:I();case 3:case"end":return n.stop()}},n)}));return function(){return n.apply(this,arguments)}}(),L=t.computed(function(){var e;return null!==(e=null==v?void 0:v.errorMessage)&&void 0!==e?e:l.value.errorMessage}),R=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 jt(null==v?void 0:v.rules,e.name)||jt(null==v?void 0:v.rules,r)||[]}),z=function(){var t=Gp(bm.mark(function t(n){var r,o;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if((o={successList:[],errorList:[],rules:[],resultList:[],allowSetValue:!1}).rules="all"===n?R.value:R.value.filter(function(e){return(e.trigger||"change")===n}),!R.value.length||null!==(r=o.rules)&&void 0!==r&&r.length){t.next=1;break}return t.abrupt("return",o);case 1:return o.allowSetValue=!0,t.next=2,qS(K.value,o.rules);case 2: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&&L.value[n]){var r=To(e.label)?e.label:e.name;t.message=(o=L.value[n],a={name:r,validate:t[n]},o.replace(/\${(.*?)}/g,function(e,t){var n;return null!==(n=a[t.trim()])&&void 0!==n?n:""}))}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 3:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}(),H=function(){var t=Gp(bm.mark(function t(n,r){var o,a,l,i,u;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return T.value=!0,Z.value=r,t.next=1,z(n);case 1: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?ab.FAIL:ab.SUCCESS),M.value&&I(),T.value=!1,t.abrupt("return",s({},e.name,0===l.length||u));case 2:case"end":return t.stop()}},t)}));return function(e,n){return t.apply(this,arguments)}}(),W=function(){var t=Gp(bm.mark(function t(n){var r,o,a;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=1,z(n);case 1:return r=t.sent,o=r.errorList,a=r.resultList,t.abrupt("return",s({},e.name,0===o.length||a));case 2:case"end":return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}(),K=t.computed(function(){return(null==v?void 0:v.data)&&jt(null==v?void 0:v.data,e.name)}),U=t.ref(void 0),Y=t.toRefs(e).name,$=t.reactive({name:Y,resetHandler:I,resetField:B,validate:H,validateOnly:W,setValidateMessage:function(e){(e||S(e))&&(0===e.length&&(D.value=[],F.value=ab.SUCCESS),D.value=e.map(function(e){return tj(tj({},e),{},{result:!1})}),F.value=ab.FAIL)}});t.onMounted(function(){U.value=Ir(K.value),null==v||v.children.push($)}),t.onBeforeUnmount(function(){v&&(v.children=null==v?void 0:v.children.filter(function(e){return e!==$}))}),t.watch(K,Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,H("change");case 1:case"end":return e.stop()}},e)})),{deep:!0}),t.watch(function(){return[e.name,JSON.stringify(e.rules)].join(",")},function(){H("change")});var Z=t.ref(void 0),q=t.computed(function(){return Lo(Z.value)?Z.value:Lo(e.showErrorMessage)?e.showErrorMessage:null==v?void 0:v.showErrorMessage}),X=t.computed(function(){return[a.value.formItem,GS(p.value,e.name),s(s({},a.value.formItemWithHelp,G.value),a.value.formItemWithExtra,J.value)]}),G=t.computed(function(){var e=o("help");return e?t.createVNode("div",{class:a.value.help},[e]):null}),J=t.computed(function(){var e,n=function(e){return t.createVNode("div",{class:a.value.extra,title:e},[e])},r=D.value;return q.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}),Q=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])}),ee=function(){var e=Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,H("blur");case 1:case"end":return e.stop()}},e)}));return function(){return e.apply(this,arguments)}}();return t.provide(ib,{handleBlur:ee}),function(){return t.createVNode("div",{class:X.value},[P(),t.createVNode("div",{class:_.value,style:V.value},[t.createVNode("div",{class:a.value.controlsContent},[o("default"),k()]),G.value,Q.value,J.value])])}}}),rj=Nl(JS),oj=Nl(nj),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=Ya(Ui(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 fu({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 la(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=Ri({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=ti().STATUS,P=t.inject(ij,void 0),S=ei("radio-button"),j=ei("radio"),k=t.computed(function(){return P?S.value:j.value}),N=t.computed(function(){return["".concat(k.value),s(s({},x.value.checked,C.value.checked),x.value.disabled,C.value.disabled)]}),_=Hl();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":To(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=du(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(p.value),r=t?"none":"all";if(n){var o=n.offsetWidth,a=n.offsetHeight,i=n.offsetLeft,u=n.offsetTop;o?m.value={"transition-property":r,width:"".concat(o,"px"),height:"".concat(a,"px"),left:"".concat(i,"px"),top:"".concat(u,"px")}:function(){var e=document.createElement("div");e.setAttribute("style","position: absolute; visibility: hidden;"),e.appendChild(l.value.cloneNode(!0)),document.body.appendChild(e);var t=e.querySelector(p.value),n=t.offsetWidth,r=t.offsetHeight,o=t.offsetLeft,a=t.offsetTop;m.value=gj(gj({},m.value),{},{width:"".concat(n,"px"),height:"".concat(r,"px"),left:"".concat(o,"px"),top:"".concat(a,"px")}),document.body.removeChild(e)}()}else m.value={"transition-property":r,width:"0px",height:"9px",left:"0px",top:"0px"}}};t.watch(o,Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,t.nextTick();case 1:h();case 2:case"end":return e.stop()}},e)}))),t.onMounted(function(){h(!0),zi(l,Aa(Gp(bm.mark(function e(){return bm.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,t.nextTick();case 1:h();case 2:case"end":return e.stop()}},e)})),300));var e=l.value.querySelector("".concat(p.value," .").concat(i.value,"__label"));e&&(f=mj(e,function(e){e.forEach(function(e){"characterData"===e.type&&h()})},{attributes:!0,childList:!0,characterData:!0,subtree:!0}))}),t.onUnmounted(function(){var e;null===(e=f)||void 0===e||e.stop()});var g=t.toRefs(e),y=g.name,b=g.disabled,w=g.readonly;t.provide(lj,t.reactive({name:y,disabled:b,readonly:w,value:o,allowUncheck:e.allowUncheck,setValue:v}));var O=ei("radio-group"),C=zl(),x=function(){if(e.variant.includes("filled")&&!Yo(o.value))return t.createVNode("div",{style:m.value,class:"".concat(O.value,"__bg-block")},null)},P=t.computed(function(){return["".concat(O.value),d.value[e.size],s(s(s({},"".concat(O.value,"__outline"),"outline"===e.variant),"".concat(O.value,"--filled"),e.variant.includes("filled")),"".concat(O.value,"--primary-filled"),"primary-filled"===e.variant)]});return function(){return t.createVNode("div",{ref:l,class:P.value},[C("default")||(null===(n=e.options)||void 0===n?void 0:n.map(function(n){var r=n;(Uo(n)||To(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]}})})),x()]);var n}}}),bj=Nl(uj),wj=Nl(yj),Oj=Nl(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 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 jj(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 S=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)}},j=function(e){var t=e.code;e.preventDefault(),"ArrowDown"!==t&&"ArrowLeft"!==t||S("sub"),"ArrowUp"!==t&&"ArrowRight"!==t||S("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:j},[t.createVNode(Kg,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=ei("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=j.value/e.step,n=100*e.step/j.value,r=[],o=1;o100*(N.value-e.max)/j.value}):r.filter(function(t){return t>100*(m.value-e.min)/j.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&&S(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),M=function(){var t;e.range?(S(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)):(Uo(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)},I=function(t){var n,r=t*j.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,I(o)}else{var a=v.value.getBoundingClientRect().left;o=(t.clientX-a)/y.value*100,I(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/j.value*100);I(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(S(t)&&e.range){var n=Ya(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]&&M()}),t.onMounted(function(){M(),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(S(e.marks)){var n=Ir(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&&mi("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(!Lo(r.inputNumberProps)){var o,a=null===(o=r.inputNumberProps)||void 0===o?void 0:o.theme;n=Fj(Fj({},n),la(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(Ub,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}}}),Ij=Nl(Mj),Aj=Nl(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=ei("switch"),l=ti(),i=l.STATUS,u=l.SIZE,c=t.toRefs(e),d=Ya(Ui(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 ".concat(t," 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(To(e.label))return e.label;if(S(e.label)&&e.label.length){var n=v.value===p.value?e.label[0]:e.label[1];if(!n)return;if(To(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(Du,{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=Nl(Lj),zj={allowInputOverMax:Boolean,autofocus:Boolean,autosize:{type:[Boolean,Object],default:!1},disabled:{type:Boolean,default:void 0},maxcharacter:{type:Number},maxlength:{type:[String,Number]},name:{type:String,default:""},placeholder:{type:String,default:void 0},readonly:{type:Boolean,default:void 0},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},tips:{type:[String,Function]},value:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number]},onBlur:Function,onChange:Function,onFocus:Function,onKeydown:Function,onKeypress:Function,onKeyup:Function,onValidate:Function};function Hj(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;Tj||(Tj=document.createElement("textarea"),document.body.appendChild(Tj));var o=function(e){if("undefined"==typeof window)return{paddingSize:0,borderSize:0,boxSizing:0,sizingStyle:""};var t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing")||t.getPropertyValue("-moz-box-sizing")||t.getPropertyValue("-webkit-box-sizing");return{paddingSize:parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),borderSize:parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width")),boxSizing:n,sizingStyle:yu.map(function(e){return"".concat(e,":").concat(t.getPropertyValue(e))}).join(";")}}(e),a=o.paddingSize,l=o.borderSize,i=o.boxSizing,u=o.sizingStyle;Tj.setAttribute("style","".concat(u,";").concat("\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n")),Tj.value=e.value||e.placeholder||"";var c=Tj.scrollHeight,s={},d="border-box"===i;d?c+=l:"content-box"===i&&(c-=a),Tj.value="";var v=Tj.scrollHeight-a;null===(t=Tj)||void 0===t||null===(t=t.parentNode)||void 0===t||t.removeChild(Tj),Tj=null;var f=function(e){var t=v*e;return d&&(t=t+a+l),t};if(!$o(n)){var p=f(n);c=Math.max(p,c),s.minHeight="".concat(p,"px")}return $o(r)||(c=Math.min(f(r),c)),s.height="".concat(c,"px"),s}var Wj=t.defineComponent({name:"TTextarea",inheritAttrs:!1,props:zj,setup:function(e,n){var r=n.attrs,o=n.expose,a=ei(),l=ei("textarea"),i=t.computed(function(){return"".concat(l.value,"__tips")}),c=t.computed(function(){return"".concat(l.value,"__limit")}),d=t.toRefs(e),v=Ya(Ui(d.value,d.modelValue,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=oi(),h=Ri(),g=t.ref({}),y=t.ref(),b=t.ref(!1),w=t.ref(!1),O=function(){var n;if(!0===e.autosize)t.nextTick(function(){g.value=Hj(y.value)});else if(e.autosize&&"object"===u(e.autosize)){var o=e.autosize,a=o.minRows,l=o.maxRows;t.nextTick(function(){g.value=Hj(y.value,a,l)})}else r.rows?g.value={height:"auto",minHeight:"auto"}:r.style&&null!==(n=y.value)&&void 0!==n&&null!==(n=n.style)&&void 0!==n&&n.height&&(g.value={height:y.value.style.height})},C=function(n){var r=n.target.value;if(e.maxcharacter&&e.maxcharacter>=0){var o=hu(r,e.maxcharacter);e.allowInputOverMax||(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},S=function(e){w.value=!1,C(e)},j=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){j("keydown",e)},N=function(e){j("keyup",e)},_=function(e){j("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(ib,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)]}),M=t.computed(function(){return fu({autofocus:e.autofocus,disabled:m.value,readonly:h.value,placeholder:e.placeholder,maxlength:!e.allowInputOverMax&&e.maxlength||void 0,name:e.name||void 0})}),I=t.computed(function(){var e=hu(String(f.value||""));return"object"===u(e)?e.length:e}),A=ub(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)?Hi(y.value,ta(t,e)):Hi(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=Rl();return function(){var n,o=fu({onFocus:V,onBlur:F,onKeydown:k,onKeyup:N,onKeypress:_}),d=ti().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))]}),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(I.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},la(r,["style"])),[t.createVNode("textarea",t.mergeProps({onInput:x,onCompositionstart:P,onCompositionend:S,ref:y,value:f.value,class:v.value},o,M.value),null),h||g?t.createVNode("div",{class:["".concat(l.value,"__info_wrapper"),s({},"".concat(l.value,"__info_wrapper_align"),!h)]},[h,g]):null])}}}),Kj=Nl(Wj);function Uj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 Yj="source",$j="target";function Zj(e){return S(e)?{source:e[0],target:e[1]}:{source:e,target:e}}function qj(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=qj(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 Xj(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(Zo(e[a]))throw new Error("".concat(a," is not in DataOption ").concat(JSON.stringify(e)));if(Zo(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=Xj(e.children,t,!0)),u});return r}function Gj(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 Gj(e,t,n)}):!n:!n}function Jj(e,t,n,r){e.forEach(function(e){var o;!function(e,t,n){return!!t.includes(e.value)&&n}(e,n,r)?Gj(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?null==t?void 0: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 Jj(e,r,t,n),r}function ek(e){var t=0;return e.forEach(function(e){e.children&&e.children.length>0?t+=ek(e.children):t+=1}),t}var tk=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=ei(),r=si({SearchIcon:uf}).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(yb,t.mergeProps(a,{defaultValue:e.value,onChange:o,placeholder:e.placeholder}),{default:function(){return[t.createVNode(r,{slot:"suffix-icon"},null)]}})])}}});function nk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rk(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)?rk(rk(rk({},{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=qj(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)}))}),j=t.computed(function(){return!P.value&&e.checkedValue.length>0}),k=t.computed(function(){return ek(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=Ir(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))},(S(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=qj(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=zl(),M=function(){var r,o,a=e.draggable&&e.listType===$j,l=null;a?l=t.createVNode(yO,{value:e.checkedValue,onChange:V},ok(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(gO,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),ok(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(yO,{value:e.checkedValue,onChange:V},ok(o=h.value.map(function(r,o){var a;return t.createVNode(gO,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),ok(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}})])},I=function(){var r=e.empty||a(l.value.empty),o=To(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=To(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(gO,{disabled:e.disabled||!e.dataSource.length,checked:P.value,indeterminate:j.value,onChange:D},null),t.createVNode("span",null,[a(l.value.title,{checked:e.checkedValue.length,total:k.value})])]),(r=e.title&&To(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(tk,{searchValue:c.value,placeholder:a(l.value.placeholder),onChange:F,disabled:e.disabled,search:e.search},null),h.value.length>0?M():I()]),e.pagination&&f.value>0&&m.value>0&&t.createVNode("div",{class:"".concat(n.value,"-transfer__list-pagination")},[t.createVNode(QO,t.mergeProps(g.value,{onChange:_}),null)]),A()]);var r,o}}}),ik={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};function uk(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!t.isVNode(e)}var ck=t.defineComponent({name:"TTransferOperations",props:{leftDisabled:{type:Boolean,required:!0},rightDisabled:{type:Boolean,required:!0},operation:ik.operation},emits:["moveToRight","moveToLeft"],setup:function(e,n){var r=n.slots,o=n.emit,a=ei(),l=si({ChevronRightIcon:bs,ChevronLeftIcon:os}),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(S(e.operation)){var a=Ya(e.operation,2),l=a[0],i=a[1],u="right"===n?i:l,c=H(u)?u(t):u;o=!1===c||!0===c?"":c}else o="";return o};return function(){var n,r;return t.createVNode("div",{class:"".concat(a.value,"-transfer__operations")},[t.createVNode(Iu,{variant:"outline",size:"small",shape:S(e.operation)&&To(e.operation[1])?"rectangle":"square",key:e.rightDisabled?"right-outline":"right-base",disabled:e.rightDisabled,onClick:c,icon:f("right")},uk(n=p(t.h,"right"))?n:{default:function(){return[n]}}),t.createVNode(Iu,{variant:"outline",size:"small",shape:S(e.operation)&&To(e.operation[0])?"rectangle":"square",key:e.rightDisabled?"left-outline":"left-base",disabled:e.leftDisabled,onClick:s,icon:f("left")},uk(r=p(t.h,"left"))?r:{default:function(){return[r]}})])}}});var sk=t.defineComponent({name:"TTransfer",props:ik,setup:function(e,n){var r=n.slots,o=oi(),a=ei(),l=t.toRefs(e),u=l.value,c=l.modelValue,d=l.checked,v=Ya(Ui(u,c,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=Ya(ni(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 Xj(e.data,e.keys,g.value)}),O=t.computed(function(){return Qj(w.value,h.value,!1,g.value)}),C=t.computed(function(){return Qj(w.value,h.value,!0,g.value)}),x=t.computed(function(){return s(s({},Yj,qj(O.value,m.value,{isTreeMode:g.value})),$j,qj(C.value,m.value,{isTreeMode:g.value}))}),P=t.computed(function(){return!!r.footer||!!e.footer}),S=t.computed(function(){return!!e.pagination&&!r.content}),j=t.computed(function(){return!!e.search}),k=t.computed(function(){return Zj(e.footer||"")}),N=t.computed(function(){return Zj(e.empty)}),_=t.computed(function(){return Zj(e.search)}),V=t.computed(function(){return Zj(e.showCheckAll)}),D=t.computed(function(){return Zj(o.value)}),E=t.computed(function(){return Zj(e.title)}),F=t.computed(function(){return Zj(e.pagination)}),T=function(t,n){var r,o=n===Yj?t:x.value[Yj],a=n===$j?t:x.value[$j],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)},M=function(t){var n,r=JSON.parse(JSON.stringify(h.value)),o=t===$j?x.value[Yj]:x.value[$j];if(t===Yj)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=qj(w.value,r.concat(o),{isTreeMode:g.value,remainValue:a})}else n="unshift"===e.targetSort?o.concat(r):r.concat(o);T([],t===Yj?$j:Yj),p(n,{type:t,movedValue:o})},I=function(){M($j)},A=function(){M(Yj)},B=function(t){var n;null===(n=e.onSearch)||void 0===n||n.call(e,t)},L=function(e,t){p(e,{type:$j,movedValue:t})},R=function(n){var o,a=Na(r,["title","empty","footer","operation","transferItem","default","tree"]);return t.createVNode(lk,{checkboxProps:e.checkboxProps,transferItem:e.transferItem,"list-type":n,title:E.value[n],"data-source":n===Yj?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===$j},"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"),j.value?"".concat(a.value,"-transfer__search"):"",P.value?"".concat(a.value,"-transfer__footer"):"",S.value?"".concat(a.value,"-transfer__pagination"):"",g.value?"".concat(a.value,"-transfer--with-tree"):""]},[R(Yj),t.createVNode(ck,{leftDisabled:D.value[$j]||y.value||0===x.value[$j].length,rightDisabled:D.value[Yj]||b.value||0===x.value[Yj].length,operation:e.operation,onMoveToRight:I,onMoveToLeft:A},{operation:r.operation}),R($j)])}}}),dk=Nl(sk);function vk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function fk(e){for(var t=1;t2&&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?Ui(t[n],a,e[r],e[o],n):ni(t[n],e[r],e[o],n)}var Sk=function(e){return e[e.Before=-1]="Before",e[e.Inside=0]="Inside",e[e.After=1]="After",e}(Sk||{});function jk(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=Aa(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=Lo(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=Ak(Ak({},p),{},{disabled:b}),O=m;m=t.createVNode(gO,{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,title:l.label},"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 Lk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Rk(e){var n=e.treeScope,r=e.treeItemRef,o=n.virtualConfig,a=n.treeContentRef,l=n.scrollProps,i=ei().value,u=ei("tree").value,c=Tk(e).handleClick,d=Mk(e).renderIcon,v=Bk(e).renderLabel,f=function(e){var n=ei("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=Dk(u,{createElement:r,node:o});return s}}}(e),p=f.renderLine,m=function(e){var n=ei("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()}):Dk(i,{createElement:r,node:o}))&&(u=t.createVNode("span",{class:"".concat(n,"__operations"),ignore:"active,expand"},[u])),u}}}(e),h=m.renderOperations,g=jk(e),y=g.dragStates,b=g.handleDragStart,w=g.handleDragEnd,O=g.handleDragOver,C=g.handleDragLeave,x=g.handleDrop,P=function(e,n,r){var o=t.computed(function(){return Math.max(r.rowHeight||48,48)}),a=t.ref(!1),l=t.computed(function(){return"lazy"===(null==r?void 0:r.type)&&!a.value}),i=!sl&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},u=function(){a.value||i(function(){a.value=!0})};return t.onMounted(function(){"lazy"===(null==r?void 0:r.type)&&t.nextTick(function(){var t=Math.max(10,r.bufferSize||10),a=o.value*t;ci(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.isDisabled()&&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)}},[S.value?[t.createVNode("div",null,null)]:N(n)])}}}function zk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Hk(e){for(var t=1;t=0&&("trigger"===e?(c=!0,d=!0):"ignore"===e&&(c=!1)),n.indexOf("active")>=0&&"ignore"===e&&(s=!1)}),!c||(a(u),!d)){s&&l(u);var v={node:u.getModel(),e:o};Nk(n,r,"click",v),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[JC];return t.createVNode(Kk,{key:i,rowIndex:l,stateId:a,itemKey:i,treeScope:r,onClick:u,onChange:c},null)}(0,e,o,n)});return o}}}function Yk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $k(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}}(d),m=p.store,h=p.updateStoreConfig,g=p.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};Nk(t,n,"drag-start",l)},handleDragEnd:function(e){var r=e.dragEvent,o=e.node;a=o;var l={node:o.getModel(),e:r};Nk(t,n,"drag-end",l)},handleDragOver:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};Nk(t,n,"drag-over",o)},handleDragLeave:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};Nk(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===Sk.Inside?a.appendTo(o,e):u===Sk.Before?i.insertBefore(a):i.insertAfter(a),!0)}),Nk(t,n,"drop",c))}}};r.drag=l}(d);var y=Fk(d),b=y.setActived,w=y.setExpanded,O=y.setChecked,C=Zk(d),x=C.onInnerVirtualScroll,P=C.virtualConfig,S=C.scrollToElement,j=Uk(d),k=j.renderTreeNodes,N=j.nodesEmpty,_=function(e){var n=e.props,r=ei("tree").value,o=ei().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:qk(u.value),maxHeight:qk(c.value),overflowY:qk(u.value)||qk(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}})}}(d);return{t:o,global:a,classPrefix:l,componentName:u,state:d,store:m,treeClasses:_.treeClasses,treeContentRef:v,renderTNodeJSX:c,rebuild:g,updateStoreConfig:h,setActived:b,setExpanded:w,setChecked:O,renderTreeNodes:k,nodesEmpty:N,isScrolling:f,onInnerVirtualScroll:x,treeContentStyles:_.treeContentStyles,scrollStyles:_.scrollStyles,cursorStyles:_.cursorStyles,virtualConfig:P,scrollToElement:S,scrollTo:S}},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=Ek(n,r);o?n.appendNodes(e,o):n.appendNodes(e,t)})},insertBefore:function(e,t){var n=this.store,r=Ek(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=Ek(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=Jk(Jk({},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=xk(),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):this.renderTNodeJSX("empty");x=t.createVNode("div",{class:"".concat(O,"__empty")},[P])}else w.length<=0&&(x=t.createVNode("div",null,null));var S,j=null;j=!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(S=w)||"[object Object]"===Object.prototype.toString.call(S)&&!t.isVNode(S)?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||j,C&&_])}}),eN=Nl(Qk),tN={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 nN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rN(e){for(var t=1;t=0}}),I=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?S(j.value)?j.value.map(function(e){return e.value}):[]:S(j.value)?j.value.map(function(e){return e}):[]:[]}),W=t.computed(function(){return e.multiple&&!!e.max&&S(j.value)&&e.max<=j.value.length}),K=t.computed(function(){var t;return Wo(e.treeProps)||Wo(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 Wo(e.treeProps)||Wo(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 Wo(e.treeProps)||Wo(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.children)||"children":e.treeProps.keys.children||"children"});t.onMounted(Gp(bm.mark(function t(){var n;return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:T(),!j.value&&e.defaultValue&&$(e.defaultValue,null,"uncheck"),R.value?m.value=S(j.value)?j.value.map(function(e){return null==e?void 0:e.value}):[null===(n=j.value)||void 0===n?void 0:n.value]:m.value=S(j.value)?j.value:[j.value],ne();case 1: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&&j.value!==n.node.data[U.value]){var r=t;if(R.value){var o=Wo(t)?"":t[0];r=ae(o)}else r=Wo(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)&&S(j.value)&&j.value.splice(a,1),null===(r=e.onRemove)||void 0===r||r.call(e,{value:t,data:null,e:n&&n.e}),$(j.value,null,o)},te=function(e,t){V(e,t),e&&"trigger-element-click"===t.trigger&&F("")},ne=function(){var t=Gp(bm.mark(function t(){return bm.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:e.multiple?e.multiple?S(j.value)?g.value=oe():g.value=[]:g.value=null:j.value||0===j.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?j.value.value:j.value;return ae(e)},oe=function(){return j.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 rN(rN({},n.data),{},{label:n.data[K.value],value:n.data[U.value]})}var r=le(e.data,t);return r||{label:t,value:t}},le=function(e,t){for(var n=0,r=e.length;n0&&void 0!==arguments[0]?arguments[0]:"RGB",n=arguments.length>1?arguments[1]:void 0;if(e=n&&Object.keys(ON).find(function(e){return e in ON&&ON[e]===t})||t,!CN[e])return[];var r=i(CN[e]);return n&&"CMYK"!==t&&r.push({type:"inputNumber",key:"a",min:0,max:100,format:function(e){return"".concat(e,"%")},flex:1.15}),r},GN=function(e){var n=ei("color-picker");return t.computed(function(){return e?"".concat(n.value,"-").concat(e):n.value})},JN={borderless:Boolean,clearable:Boolean,colorModes:{type:Array,default:function(){return["monochrome","linear-gradient"]}},disabled:{type:Boolean,default:void 0},enableAlpha:Boolean,enableMultipleGradient:{type:Boolean,default:!0},format:{type:String,default:"RGB",validator:function(e){return!e||["HEX","HEX8","RGB","RGBA","HSL","HSLA","HSV","HSVA","CMYK","CSS"].includes(e)}},inputProps:{type:Object},popupProps:{type:Object},recentColors:{type:Array,default:void 0},defaultRecentColors:{type:Array,default:function(){return[]}},selectInputProps:{type:Object},showPrimaryColorPreview:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},swatchColors:{type:Array,default:void 0},value:{type:String,default:void 0},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},onChange:Function,onClear:Function,onPaletteBarChange:Function,onRecentColorsChange:Function};function QN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 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_(e){for(var t=1;t2&&r>=0&&r<=o-1){n.splice(r,1),n[r]||(r=n[r+1]?r+1:n[r-1]?r-1:0);var a=n[r];p(n,!0),f(null==a?void 0:a.id)}}},y=function(t){if(!e.disabled&&e.enableMultipleGradient){var n=t.offsetX/a.width*100,r=TN(n,e.color.rgba);s.value.push(r),p(s.value,!0),f(r.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=FN({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(Ub,{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)])])}}}),b_=t.defineComponent({name:"SaturationPanel",props:a_,setup:function(e){var n=GN(),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 KN(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 w_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function O_(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 x_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var P_=t.defineComponent({name:"ColorPanel",props:function(e){for(var t=1;t-1&&e.splice(n,1),e.unshift(t),e.length>100&&(e.length=100),j(e)}},j=function(e){y(e)},k=function(t){var n=x.value.getFormattedColor(e.format,e.enableAlpha);m(n,{color:AN(x.value),trigger:t||"palette-saturation-brightness"})};t.watch(function(){return p.value},function(t){var n=b(t);w.value=n,x.value.isGradient="linear-gradient"===n,x.value.getFormattedColor(e.format,e.enableAlpha)!==t&&x.value.update(t)});var N=function(e){w.value=e;var t="linear-gradient"===e;x.value.isGradient=t,t?x.value.update(x.value.gradientColors.length>0?x.value.linearGradient:yN):x.value.update(x.value.rgba),k()},_=function(e){var t=e.saturation,n=e.value,r=x.value,o=r.saturation,a=r.value,l="palette-saturation-brightness";if(n!==a&&t!==o)x.value.saturation=t,x.value.value=n,l="palette-saturation-brightness";else if(t!==o)x.value.saturation=t,l="palette-saturation";else{if(n===a)return;x.value.value=n,l="palette-brightness"}k(l)},V=function(t){var n;x.value.hue=t,k("palette-hue-bar"),null===(n=e.onPaletteBarChange)||void 0===n||n.call(e,{color:AN(x.value)})},D=function(e){x.value.alpha=e,k("palette-alpha-bar")},E=function(e,t){x.value.update(e),x.value.alpha=t,k("input")},F=function(e){var t=e.key,n=e.payload,r="palette-saturation-brightness";switch(t){case"degree":x.value.gradientDegree=n,r="input";break;case"selectedId":x.value.gradientSelectedId=n;break;case"colors":x.value.gradientColors=n}k(r)},T=function(e,t){var n=b(e);w.value=n,x.value.isGradient="linear-gradient"===n,x.value.update(e),k(t)};return function(){var r={color:x.value,disabled:e.disabled},o=1===e.colorModes.length&&e.colorModes.includes("linear-gradient"),c=g.value;o&&Array.isArray(c)&&(c=c.filter(function(e){return MN.isGradientColor(e)}));var s=!!Array.isArray(c),d=e.swatchColors;Zo(d)&&(d=i(bN)),$o(d)&&(d=[]),o&&(d=d.filter(function(e){return MN.isGradientColor(e)}));var v=Array.isArray(d)&&d.length;return t.createVNode("div",{class:["".concat(n.value,"__panel"),!!e.disabled&&u.disabled]},[t.createVNode(f_,t.mergeProps(e,{mode:w.value,onModeChange:N}),null),t.createVNode("div",{class:["".concat(n.value,"__body")]},[O.value?t.createVNode(y_,t.mergeProps(r,{onChange:F,enableMultipleGradient:e.enableMultipleGradient}),null):null,t.createVNode(b_,t.mergeProps(r,{onChange:_}),null),t.createVNode("div",{class:["".concat(n.value,"__sliders-wrapper")]},[t.createVNode("div",{class:["".concat(n.value,"__sliders")]},[t.createVNode(p_,t.mergeProps(r,{onChange:V}),null),e.enableAlpha?t.createVNode(c_,t.mergeProps(r,{onChange:D}),null):null]),e.showPrimaryColorPreview?t.createVNode("div",{class:["".concat(n.value,"__sliders-preview"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"".concat(n.value,"__sliders-preview-inner"),style:{background:O.value?x.value.linearGradient:x.value.rgba}},null)]):null]),t.createVNode(o_,t.mergeProps(e,{color:x.value,format:P.value,onInputChange:E}),null),v||s?t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"".concat(n.value,"__swatches-wrap")},[s?t.createVNode(C_,t.mergeProps(r,{title:a(l.value.recentColorTitle),editable:!0,colors:c,handleAddColor:S,onSetColor:function(e){return T(e,"recent")},onChange:j}),null):null,v?t.createVNode(C_,t.mergeProps(r,{title:a(l.value.swatchColorTitle),colors:d,onSetColor:function(e){return T(e,"preset")}}),null):null])]):null])])}}});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 j_(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:L_({},g.value)},[l]),d&&(l=[d,v?"":l]),b&&c.value&&(l=t.createVNode(A_,t.mergeProps({style:L_({},h.value),src:b,alt:w,onError:y},e.imageProps),null)),t.createVNode("div",{ref:i,class:O,style:L_({},m.value)},[l])}}}),z_={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 H_=t.defineComponent({name:"TAvatarGroup",props:z_,setup:function(e){t.provide("avatarGroup",e);var n=Rl(),r=ei("avatar"),o=ei("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(R_,{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(Vl(l))]:[l];return t.createVNode("div",{class:c},[d])}}}),W_=Nl(R_),K_=Nl(H_),U_={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)}}},Y_=t.defineComponent({name:"TBadge",inheritAttrs:!1,props:U_,setup:function(e,n){var r=n.attrs,o=Hl(),a=Rl(),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=ei(),u=ei("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=Ya(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])])}}}),$_=Nl(Y_),Z_={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},q_="calendar",X_=1970,G_={1:"\u4e00",2:"\u4e8c",3:"\u4e09",4:"\u56db",5:"\u4e94",6:"\u516d",7:"\u65e5"},J_=function(e){var t=Yl(e).day();return 0===t&&(t=7),t},Q_=function(e,t){var n=new Date(e);return n.setDate(n.getDate()+t),n},eV=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=Yl("".concat(n,"-").concat(r)).startOf("month").toDate(),d=Yl(Yl("".concat(n,"-").concat(r)).endOf("month").format("YYYY-MM-DD")).toDate(),v=d.getDate(),f=function(e,t){var n=J_(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:J_(n),weekOrder:r,date:n,formattedDate:Yl(n).format(i),filterDate:null,formattedFilterDate:null,isShowWeekend:!0}},g=function(e){return u?!!l.find(function(t){return t.isSame(Yl(e))}):a.isSame(Yl(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(tV().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=tV();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 rV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function oV(e){for(var t=1;t0&&void 0!==arguments[0])||arguments[0],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 lV(e,n){var r=Jl(q_),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 G_&&(t=G_[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(Yl(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(vV({},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=Yl(m.value.from).year(),n=Yl(m.value.to).year()),t0&&void 0!==arguments[0]?arguments[0]:document.body;return e===document.body?window.innerWidth-document.documentElement.clientWidth:e.offsetWidth-e.clientWidth}function BV(e){return Number.isNaN(Number(e))?e:"".concat(Number(e),"px")}var LV={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 RV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function zV(e){for(var t=1;tr||i>o||(document.addEventListener("mousemove",u),document.addEventListener("mouseup",c),document.addEventListener("dragend",c))}))}},props:zV(zV({},FV),LV),setup:function(e,n){var r=n.expose,o=t.ref(null),a=ei("dialog"),l=ei(),i=Rl(),u=Hl(),c=Jl("dialog").globalConfig,s=si({CloseIcon:Ts,InfoCircleFilledIcon:hv,CheckCircleFilledIcon:Bc,ErrorCircleFilledIcon:sd}),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=IV({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})},S=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 j=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?zV({},e.dialogStyle):zV({width:BV(e.width)},e.dialogStyle)});return function(){return t.withDirectives(t.createVNode("div",{key:"dialog",ref:o,class:j.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:S},[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:S},[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:S},[E]))]))]),[[t.resolveDirective("draggable"),C.value&&e.draggable]]);var n,r,s,m,b,N,_,V,D,E}}}),KV=["theme","onConfirm","onCancel","onCloseBtnClick"];"undefined"!=typeof window&&window.document&&window.document.documentElement&&document.documentElement.addEventListener("click",function(e){HV={x:e.clientX,y:e.clientY},setTimeout(function(){HV=null},100)},!0);var UV=1,YV=t.defineComponent({name:"TDialog",inheritAttrs:!1,props:FV,emits:["update:visible"],setup:function(e,n){var r=ei("dialog"),o=ei(),a=t.ref(null),l=Jl("dialog").globalConfig,i=function(t){var n;null===(n=e.onConfirm)||void 0===n||n.call(e,t)},u=function(t){var n;null===(n=e.onCancel)||void 0===n||n.call(e,t),L({e:t.e,trigger:"cancel"})},c=Ki(function(){return e.attach});ri();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:BV(t)});return n}),O=Li("dialog",{visible:h}).isTopInteractivePopup,C=t.ref(!1);function x(){var e,t;null===(e=v.value.parentNode)||void 0===e||null===(t=e.removeChild)||void 0===t||t.call(e,v.value)}t.watch(function(){return e.visible},function(n){var r;n?(C.value=!0,(f.value&&!e.showInAttachedElement||m.value)&&(e.preventScrollThrough&&document.body.appendChild(v.value),t.nextTick(function(){var e;if(HV&&null!==(e=a.value)&&void 0!==e&&e.$el){var t=a.value.$el;t.style.transformOrigin="".concat(HV.x-t.offsetLeft,"px ").concat(HV.y-t.offsetTop,"px")}})),null===(r=document.activeElement)||void 0===r||r.blur()):(clearTimeout(d.value),d.value=setTimeout(function(){x()},150));k(n)});var P,S,j,k=function(t){t?(document.addEventListener("keydown",_),e.confirmOnEnter&&document.addEventListener("keydown",N)):(document.removeEventListener("keydown",_),e.confirmOnEnter&&document.removeEventListener("keydown",N))},N=function(t){if("input"!==t.target.tagName.toLowerCase()){var n,r=t.code;if(("Enter"===r||"NumpadEnter"===r)&&O())null===(n=e.onConfirm)||void 0===n||n.call(e,{e:t})}},_=function(t){var n,r;"Escape"===t.code&&O()&&(null===(n=e.onEscKeydown)||void 0===n||n.call(e,{e:t}),(null!==(r=e.closeOnEscKeydown)&&void 0!==r?r:l.value.closeOnEscKeydown)&&(L({e:t,trigger:"esc"}),t.stopImmediatePropagation()))},V=(P=function(t){var n,r;e.showOverlay&&(null!==(n=e.closeOnOverlayClick)&&void 0!==n?n:l.value.closeOnOverlayClick)&&(null===(r=e.onOverlayClick)||void 0===r||r.call(e,{e:t}),L({e:t,trigger:"overlay"}))},S=!1,j=!1,{onClick:function(e){S&&j&&(null==P||P(e)),S=!1,j=!1},onMousedown:function(e){S=e.target===e.currentTarget},onMouseup:function(e){j=e.target===e.currentTarget}}),D=V.onClick,E=V.onMousedown,F=V.onMouseup,T=function(t){var n;null===(n=e.onCloseBtnClick)||void 0===n||n.call(e,t),L({trigger:"close-btn",e:t.e})},M=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)},A=function(){var t;null===(t=e.onBeforeClose)||void 0===t||t.call(e)},B=function(){var t,n,r;null===(t=a.value)||void 0===t||null===(n=t.resetPosition)||void 0===n||n.call(t),null===(r=e.onClosed)||void 0===r||r.call(e)},L=function(t){var r;null===(r=e.onClose)||void 0===r||r.call(e,t),n.emit("update:visible",!1)};t.onMounted(function(){var e=document.documentElement.scrollHeight>document.documentElement.clientHeight?AV():0;v.value=document.createElement("style"),v.value.dataset.id="td_dialog_".concat(+new Date,"_").concat(UV+=1),v.value.innerHTML="\n html body {\n overflow-y: hidden;\n width: calc(100% - ".concat(e,"px);\n }\n ")}),t.onBeforeUnmount(function(){k(!1),x()});var R=t.computed(function(){var t=e.destroyOnClose,n=e.visible,r=e.lazy;return C.value?n||!t:!r});return function(){var o=[(f.value||m.value)&&t.createVNode("div",{key:"mask",class:g.value},null),function(){var r=e.theme;e.onConfirm,e.onCancel,e.onCloseBtnClick;var o=du(e,KV);return t.createVNode("div",{class:b.value},[t.createVNode("div",{class:y.value,style:w.value,onClick:D,onMousedown:E,onMouseup:F},[t.createVNode(WV,t.mergeProps({ref:a,theme:r},o,{onConfirm:i,onCancel:u,onCloseBtnClick:T}),n.slots)])])}()],l={zIndex:e.zIndex},d=["".concat(r.value,"__ctx"),s(s(s({},"".concat(r.value,"__ctx--fixed"),f.value||m.value),"".concat(r.value,"__ctx--absolute"),f.value&&e.showInAttachedElement),"".concat(r.value,"__ctx--modeless"),p.value)];return t.createVNode(t.Teleport,{disabled:!e.attach||!c.value,to:c.value},{default:function(){return[t.createVNode(t.Transition,{duration:300,name:"".concat(r.value,"-zoom__vue"),onBeforeEnter:M,onAfterEnter:I,onBeforeLeave:A,onAfterLeave:B},{default:function(){return[R.value&&t.withDirectives(t.createVNode("div",t.mergeProps({class:d,style:l},n.attrs),[o]),[[t.vShow,e.visible]])]}})]}})}}});function $V(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ZV(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=Aa(function(){var e=Ib(l.value,o);s(e)},50),u=Aa(function(){var e=Ab(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,M=D.resetScale,I=function(){var e=t.ref(0);return{rotate:e,onRotate:function(){e.value+=90},resetRotate:function(){e.value=0}}}(),A=I.rotate,B=I.onRotate,L=I.resetRotate,R=function(){V(),M(),L()},z=t.computed(function(){return aD(e.images)}),H=t.computed(function(){var e;return null!==(e=z.value[m.value])&&void 0!==e?e:{mainImage:""}}),W=Li("dialog",{visible:y}).isTopInteractivePopup,K=function(){var e=m.value-1;R(),h(e<0?0:e,{trigger:"prev"})},U=function(){var e=m.value+1;R(),h(e>=z.value.length?m.value:e,{trigger:"next"})},Y=function(t){e.onDownload?e.onDownload(t):function(e){var t,n,r,o=new Image,a=(null==e||null===(t=e.split)||void 0===t||null===(t=t.call(e,"?"))||void 0===t||null===(t=t[0])||void 0===t||null===(n=t.split)||void 0===n||null===(n=n.call(t,"#"))||void 0===n||null===(n=n[0])||void 0===n||null===(r=n.split)||void 0===r?void 0:r.call(n,"/").pop())||Math.random().toString(32).slice(2);o.setAttribute("crossOrigin","anonymous"),o.onload=function(){var e=document.createElement("canvas");e.width=o.width,e.height=o.height,e.getContext("2d").drawImage(o,0,0,o.width,o.height),e.toBlob(function(e){var t=URL.createObjectURL(e),n=document.createElement("a");n.download=a,n.href=t,n.click(),n.remove(),URL.revokeObjectURL(t)})},o.src=e}(t)},$=function(){b(!0)},Z=function(t){var n;b(!1),null===(n=e.onClose)||void 0===n||n.call(e,t)},q=function(e){Z({e:e,trigger:"close-btn"})},X=function(t){e.closeOnOverlay&&Z({e:t,trigger:"overlay"})},G=function(t){switch(t.stopPropagation(),t.code){case rD.left:K();break;case rD.right:U();break;case rD.up:F();break;case rD.down:T();break;case rD.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(EV,{icon:function(){return t.createVNode(Zc,null,null)},class:"".concat(o.value,"__header-pre-bt"),onClick:j},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(A_,{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(os,{style:{transform:"rotate(".concat(n,"deg)")},size:"24px"},null));return t.createVNode(EV,{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(Ts,{size:"24px"},null))])};return function(){return"modeless"===e.mode?t.createVNode(t.Fragment,null,[a("trigger",{params:{open:$}}),t.createVNode(nD,{zIndex:S.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:S.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(tD,{onZoomIn:F,onZoomOut:T,onMirror:_,onReset:R,onRotate:B,onDownload:Y,scale:E.value,currentImage:H.value},null),t.createVNode(DV,{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]])]}})]}})])}}}),iD=Nl(lD),uD={action:{type:[String,Function]},content:{type:[String,Function]},default:{type:[String,Function]}},cD=t.defineComponent({name:"TListItem",props:uD,setup:function(){var e=ei("list-item"),n=Rl();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])])])}}}),sD={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},dD="load-more";function vD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function fD(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 mD(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=r.value.length?pi("List","".concat(a," does not exist in data, check `index` or `key` please.")):o.scrollToElement(gD(gD({},e),{},{index:a-1})):pi("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 To(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&&To(e.asyncLoading)){if("loading"===e.asyncLoading)return t.createVNode("div",null,[t.createVNode(Du,null,null),t.createVNode("span",null,[l.value.loadingText])]);if(e.asyncLoading===dD)return t.createVNode("span",null,[l.value.loadingMoreText])}return c("asyncLoading")},x=function(t){var n;To(e.asyncLoading)&&e.asyncLoading!==dD||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(cD,la(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])}}}),bD={avatar:{type:[String,Function]},description:{type:[String,Function]},image:{type:[String,Function]},title:{type:[String,Function]}},wD=t.defineComponent({name:"TListItemMeta",props:bD,setup:function(e,n){var r=ei("list-item__meta"),o=Hl(),a=Rl(),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 To(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])}}}),OD=Nl(yD),CD=Nl(cD),xD=Nl(wD),PD="line",SD="plump",jD="circle",kD="small",ND="medium",_D="large",VD=72,DD=112,ED=160,FD=14/VD,TD=20/DD,MD=36/ED,ID=["success","error","warning"],AD={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:""}},BD=t.defineComponent({name:"TProgress",props:AD,setup:function(e){var n=Rl(),r=ei("progress"),o=si({CloseCircleFilledIcon:_s,CheckCircleFilledIcon:Bc,ErrorCircleFilledIcon:sd,CloseIcon:Ts,CheckIcon:Wc,ErrorIcon:md}),a=o.CloseCircleFilledIcon,l=o.CheckCircleFilledIcon,i=o.ErrorCircleFilledIcon,u=o.CloseIcon,c={success:o.CheckIcon,warning:o.ErrorIcon,error:u},d={success:l,warning:i,error:a},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=To(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&&pu(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=DD;if(!e.size)return t;var n=kD,r=_D,o=ND;switch(e.size){case n:t=VD;break;case o:t=DD;break;case r:t=ED;break;default:var a=Number(e.size);t=!isNaN(a)&&a>0?a:DD}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!==jD)return{};var t=g.value*TD;return g.value<=VD?t=g.value*FD:g.value>=ED&&(t=g.value*MD),{width:"".concat(g.value,"px"),height:"".concat(g.value,"px"),fontSize:"".concat(t,"px")}}),O=t.computed(function(){var t=e.size===kD?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=t.computed(function(){return e.theme===jD?c:d}),P=function(){var n="".concat(e.percentage,"%"),o=e.status||"";if(ID.includes(o)&&e.theme!==SD){var a=x.value[o];a&&(n=t.createVNode(a,{class:["".concat(r.value,"__icon")]},null))}return n},S=t.ref(!0),j=t.ref(null),k=t.computed(function(){return S.value?"".concat(r.value,"--over-ten"):"".concat(r.value,"--under-ten")});function N(){return(N=Gp(bm.mark(function n(){var o;return bm.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(e.theme!==SD){n.next=3;break}if(j.value&&!1!==e.label){n.next=1;break}return n.abrupt("return");case 1:return n.next=2,t.nextTick();case 2:o=j.value.querySelector(".".concat(r.value,"__info"))||j.value.nextElementSibling,S.value=j.value.clientWidth>(null==o?void 0:o.clientWidth)+10;case 3:case"end":return n.stop()}},n)}))).apply(this,arguments)}return zi(j,function(){return N.apply(this,arguments)}),function(){var o=t.createVNode("div",{class:"".concat(r.value,"__info")},[n("label",P())]);return t.createVNode("div",{class:r.value},[e.theme===PD&&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===SD&&t.createVNode("div",{class:["".concat(r.value,"__bar ").concat(r.value,"--plump ").concat(k.value),s({},"".concat(r.value,"--status--").concat(v.value),v.value)],style:f.value},[t.createVNode("div",{class:"".concat(r.value,"__inner"),ref:j,style:p.value},[S.value&&o]),!S.value&&o]),e.theme===jD&&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)])])])}}}),LD=Nl(BD),RD={animation:{type:String,default:"none",validator:function(e){return!e||["gradient","flashed","none"].includes(e)}},content:{type:[String,Function]},default:{type:[String,Function]},delay:{type:Number,default:0},loading:{type:Boolean,default:!0},rowCol:{type:Array},theme:{type:String,default:"text",validator:function(e){return!e||["text","avatar","paragraph","avatar-text","tab","article"].includes(e)}}},zD={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"}]]},HD=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=Uo(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},WD=t.defineComponent({name:"TSkeleton",props:RD,setup:function(e,n){var r=n.slots,o=t.ref(!1),a=ei("skeleton"),l=Hl(),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,(S(n)?n:Uo(n)?new Array(n).fill({type:"text"}):[n]).map(function(e){return t.createVNode("div",{class:i(e),style:HD(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(zD[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])}}}}),KD=Nl(WD),UD={animation:{type:Object},animationStart:Boolean,color:{type:String,default:""},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}},YD=function(e){return 1-Math.abs(Math.pow(e-1,4))},$D=function(){return Ti(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;Mi(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=Ya(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=Ya(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=YD(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=YD(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(),mu()<10?this.polyfillStart():this.normalStart()}},{key:"stop",value:function(){mu()<10?clearInterval(this.timer):cancelAnimationFrame(this.timer),this.timer=null}}])}(),ZD={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 qD=t.defineComponent({name:"TStatistic",props:UD,setup:function(e,n){var r,o,a=n.expose,l=ei("statistic"),i=Rl(),u=si({ArrowTriangleUpFilledIcon:uc,ArrowTriangleDownFilledIcon:rc}),c=u.ArrowTriangleUpFilledIcon,s=u.ArrowTriangleDownFilledIcon,d={increase:t.createVNode(c,null,null),decrease:t.createVNode(s,null,null)},v=t.computed(function(){return Uo(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 $D({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(){return{color:ZD[e.color]||e.color}});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,contentStyle:b}),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(KD,{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])])}}}),XD=Nl(qD),GD={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 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;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-tE*e.cardScale)-tE+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 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;t=O.value:!e.loop&&p.value+2>=O.value}),P=t.computed(function(){return[e.autoplay,p.value,e.duration,e.interval]}),S=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)}),j=t.computed(function(){var t=e.height?"".concat(e.height,"px"):"".concat(M("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=oE(oE({},e),n.props);return t.createVNode(nE,t.mergeProps({index:r,currentIndex:p.value,isSwitching:g.value,getWrapAttribute:M,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&&(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)},M=function(e){var t;return null===(t=b.value)||void 0===t||null===(t=t.parentNode)||void 0===t?void 0:t[e]},I=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:S.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:j.value},[k()])]),I(),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])])}}}),iE=Nl(lE),uE=Nl(nE),cE={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 sE(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 dE(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 fE(){var e=ei();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 pE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){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 mE=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=Hl(),l=t.computed(function(){return["".concat(e.classPrefix,"-table__ellipsis"),"".concat(e.classPrefix,"-text-ellipsis")]}),i=t.computed(function(){return["".concat(e.classPrefix,"-table__ellipsis-content"),e.overlayClassName]});t.onMounted(function(){o.value=Ol(n.value)}),t.onUpdated(function(){o.value=Ol(n.value)});var u=function(e){e||(r.value=!1)},c=po(function(e){"mouseleave"===e.type?n.value:n.value&&(r.value=!0)},80);return function(){var d,v=a("default","content"),f=t.createVNode("div",{ref:n,class:l.value,onMouseenter:c,onMouseleave:c,style:{textOverflow:o.value?"ellipsis":"clip"}},[v]),p=null,m=e.tooltipProps;if(o.value&&r.value){var h=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=Ya(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(mE,{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 wE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 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){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=Uo(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,S=P.getBoundingClientRect(),j=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,S,j):C(t,k,S,j),V=_.resizeLinePos,D=_.minResizeLineLeft,E=_.maxResizeLineLeft;if(y.isDragging=!0,y.draggingStart=e.x,null!=f&&f.value){b.display="block",b.height="".concat(j.bottom-S.top,"px"),b.left="".concat(V,"px");var F=a.value.parentElement.getBoundingClientRect();b.bottom="".concat(F.bottom-j.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,S&&(C[k.colKey]+=a)):"prev"===y.effectCol&&(S&&(C[x.colKey]+=a),N&&(C[N.colKey]-=a)),u(C);var j=function(e){var t=0;return m.value.forEach(function(n){t+=e[n.colKey]}),t}(C);c(Math.round(j)),d(),y.isDragging=!1,y.draggingCol=null,y.effectCol=null,P.style.cursor="",b.display="none",b.left="0",vl(document,"mouseup",T),vl(document,"mousemove",M),document.onselectstart=n,document.ondragstart=r,null==v||v({columnsWidth:C})}}},M=function(e){if(y.isDragging){var t=V+e.x-y.draggingStart;b.left="".concat(Math.min(Math.max(t,D),E),"px")}};dl(document,"mouseup",T),dl(document,"mousemove",M),document.onselectstart=function(){return!1},document.ondragstart=function(){return!1}}},setEffectColMap:g}}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){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=jt(u[b],d),C=n.get(O)||{},x=jt(u[b+1],d),P=n.get(x)||{},S=0;b===u.length-1&&(S=(null==o?void 0:o.getBoundingClientRect().height)||0),C.bottom=(P.bottom||S)+(P.height||0),n.set(O,xE(xE({},C),{},{height:(null==w?void 0:w.getBoundingClientRect().height)||0}))}}(o.children,n,r,a),S.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;j.left===o&&j.right===r||(j.left=o&&F.value,j.right=r&&E.value)}}},H=function(){var e=I(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)},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),mu()<=11&&(t=12),t}();P.value=e,Z();var t=D.value||O.value||!M.value||!y.value.length,n="undefined"!=typeof window&&void 0!==window.ResizeObserver;(t&&mu()<11||!n)&&dl(window,"resize",G)}),t.onBeforeUnmount(function(){var e,t;"undefined"!=typeof window&&vl(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:j,rowAndColFixedPosition:S,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&&(mu()<11||void 0===window.ResizeObserver||(vl(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 jE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function kE(e,n,r){var o=t.toRefs(e),a=o.pagination,l=o.data,i=o.disableDataPage,u=Jl().classPrefix,c=t.ref(e.pagination),d=t.ref([]),v=t.ref(!1),f=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(!i.value&&r.length>n);if(v.value=o,o){var a=(t-1)*n,l=t*n;d.value=r.slice(a,l)}else d.value=r};t.watch(function(){var e,t;return[null===(e=a.value)||void 0===e?void 0:e.current,null===(t=a.value)||void 0===t?void 0:t.pageSize,l.value.length,i]},function(){if(a.value&&a.value.current){var e=a.value,t=e.current,n=e.pageSize;c.value={current:t,pageSize:n},f(a.value.current,a.value.pageSize)}},{immediate:!0}),t.watch([l],function(){var e,t;a.value&&a.value.defaultCurrent&&(Boolean(a.value.current)||f(null!==(e=c.value.current)&&void 0!==e?e:a.value.defaultCurrent,null!==(t=c.value.pageSize)&&void 0!==t?t:a.value.defaultPageSize))},{immediate:!0});return{isPaginateData:v,dataSource:d,innerPagination:c,renderPagination:function(){if(!e.pagination)return null;var o=function(e){for(var t=1;te.height},g=function(){var t,s,d;if(f.value||v.value||n.value){var p=null===(t=n.value)||void 0===t?void 0:t.getBoundingClientRect();if(p){var m,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=Lo(m=e.headerAffixProps||e.headerAffixedTop)?0:m.offsetTop||0,O=(null==b?void 0:b.height)||0,C=Math.abs(p.top)-1*g.height),i.value=C}if(e.footerAffixedBottom&&null!=o&&o.value)u.value=h(b,p,y);else if(e.horizontalScrollAffixedBottom&&null!=a&&a.value){var x=a.value.getBoundingClientRect();u.value=h(x,p,y)}if(e.paginationAffixedBottom&&l.value){var P=l.value.getBoundingClientRect();c.value=h(P,p,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(){dl(o.value,"scroll",b)},P=function(){vl(o.value,"scroll",b)},S=function(){dl(r.value,"scroll",w),F()},j=function(){s||vl(r.value,"scroll",w),T()},k=function(){dl(a.value,"scroll",O)},N=function(){vl(a.value,"scroll",O)},_=function(){dl(n.value,"scroll",C),F()},V=function(){s||vl(n.value,"scroll",C),T()},D=function(){s=!0},E=function(){s=!1,d||(vl(r.value,"scroll",w),vl(n.value,"scroll",C))},F=function(){d=!0},T=function(){d=!1},M=[],I=function(e){var t=po(function(t){vl(e,"scroll",t)},200);function n(){m(e),t(n)}function r(r){r.composedPath().includes(e)&&(M.forEach(function(e){return e()}),M.length=0,dl(e,"scroll",n),t(n),M.push(function(){vl(e,"scroll",n)}))}return dl(e,"touchstart",r),{removeElementTouchScrollListener:function(){vl(e,"touchstart",r)}}},A=[],B=function(){vl(window,"mousedown",D),vl(window,"mouseup",E),A.forEach(function(e){return e()}),A.length=0,r.value&&(vl(r.value,"mouseenter",S),vl(r.value,"mouseleave",j)),o.value&&(vl(o.value,"mouseenter",x),vl(o.value,"mouseleave",P)),n.value&&(vl(n.value,"mouseenter",_),vl(n.value,"mouseleave",V)),a.value&&(vl(a.value,"mouseenter",k),vl(a.value,"mouseleave",N))},L=function(){if(f.value||e.paginationAffixedBottom)var t=setTimeout(function(){f.value||e.paginationAffixedBottom?dl(document,"scroll",y):vl(document,"scroll",y),clearTimeout(t)})};t.watch([r,o,a,n],function(){!function(){if(dl(window,"mousedown",D),dl(window,"mouseup",E),B(),r.value){dl(r.value,"mouseenter",S),dl(r.value,"mouseleave",j);var t=I(r.value).removeElementTouchScrollListener;A.push(t)}if(e.footerAffixedBottom&&o.value){dl(o.value,"mouseenter",x),dl(o.value,"mouseleave",P);var l=I(o.value).removeElementTouchScrollListener;A.push(l)}if(e.horizontalScrollAffixedBottom&&a.value){dl(a.value,"mouseenter",k),dl(a.value,"mouseleave",N);var i=I(a.value).removeElementTouchScrollListener;A.push(i)}if((f.value||v.value)&&n.value){dl(n.value,"mouseenter",_),dl(n.value,"mouseleave",V);var u=I(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(){vl(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 _E(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}}(jt(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 _E(e.rowAttributes,{row:e.row,rowIndex:e.rowIndex,type:"body"})||{}}),b=t.computed(function(){var t,n=VE(e.rowClassName,{row:e.row,rowKey:e.rowKey,rowIndex:e.rowIndex,type:"body"},e.rowKey||"id");return[null===(t=g.value)||void 0===t?void 0:t.classes,n,s(s({},"".concat(e.classPrefix,"-table__row--active"),a.value),"".concat(e.classPrefix,"-table__row--hover"),l.value)].filter(function(e){return e})}),w=function(e,n,r){var o=t.computed(function(){return Math.max(r.rowHeight||48,48)}),a=t.ref(!1),l=t.computed(function(){return"lazy"===(null==r?void 0:r.type)&&!a.value}),i=!sl&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},u=function(){a.value||i(function(){a.value=!0})};return t.onMounted(function(){"lazy"===(null==r?void 0:r.type)&&t.nextTick(function(){var t=Math.max(10,r.bufferSize||10),a=o.value*t;null!=n&&n.value&&null!=e&&e.value&&ci(n.value,e.value,u,a)})}),{hasLazyLoadHolder:l,tRowHeight:o}}(o,i,t.reactive(AE(AE({},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(mE,{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=TE(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=RE(r,n.slots,{cellEmptyContent:o.cellEmptyContent,pagination:e.pagination}),y=PE(a,l,p,f),b=DE(a.className,AE(AE({},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(AE(AE({},r),{},{type:"td"})):a.attrs,C=AE(AE({},O),u);return t.createVNode("td",t.mergeProps({key:a.colKey||l,class:w,style:y.style},C,{onClick:function(t){var n,o=AE(AE({},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 LE.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 HE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function WE(e){for(var t=1;t1)for(var l=r+1;l1)for(var y=p+1;y1&&(T.colspan=c.colspan),t.createVNode("th",t.mergeProps({key:c.colKey,"data-colkey":c.colKey,class:k,style:_},T,g,D),[t.createVNode("div",{class:i.thCellInner},[F?t.createVNode(mE,{placement:"bottom",attach:e.attach||(o.value?function(){return function(t){for(var n=t;n;){var r;if(null!==(r=n=n.parentNode)&&void 0!==r&&null!==(r=r.classList)&&void 0!==r&&r.contains("".concat(e.classPrefix,"-table")))break}return n}(o.value)}:void 0),tooltipContent:E&&function(){return E},tooltipProps:"object"===u(c.ellipsisTitle)?c.ellipsisTitle:void 0,overlayClassName:e.ellipsisOverlayClassName,classPrefix:e.classPrefix},(b=V,"function"==typeof b||"[object Object]"===Object.prototype.toString.call(b)&&!t.isVNode(b)?V:{default:function(){return[V]}})):V])])});return t.createVNode("tr",{key:p},[m])}))])}}});function GE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function JE(e){for(var t=1;t1&&(c.rowspan=s.rowspan),(null===(p=s)||void 0===p?void 0:p.colspan)>1&&(c.colspan=s.colspan),s.skipped)return null}var h=PE(a,l,e.rowAndColFixedPosition,o.tableColFixedClasses),g=JE({},h.style);return null!==(i=e.thWidthList)&&void 0!==i&&i[a.colKey]&&(g.width="".concat(e.thWidthList[a.colKey],"px")),t.createVNode("td",t.mergeProps(JE({key:a.colKey},c),{class:h.classes,style:g}),[v({row:n,rowIndex:r,col:a,colIndex:l})])})])}),c=r("footerSummary");return c||e.footData&&e.footData.length?t.createVNode("tfoot",{class:a,style:{visibility:e.virtualScroll?"hidden":"visible"}},[c&&t.createVNode("tr",{class:o.tableFullRowClasses.base},[t.createVNode("td",{colspan:i.value.length},[t.createVNode("div",{class:o.tableFullRowClasses.innerFullElement},[c])])]),l]):null}}});function eF(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=Ya(ni(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,[k.map(function(r){var o={width:YE((n||_?K.value[r.colKey]:void 0)||r.width)||M};return r.minWidth&&(o.minWidth=YE(r.minWidth)),o.width||r.minWidth||"fixed"!==e.tableLayout||(o.minWidth="80px"),t.createVNode("col",{key:r.colKey,style:o},null)})])},$={isFixedHeader:R.value,rowAndColFixedPosition:Y.value,isMultipleHeader:P.value,bordered:e.bordered,maxHeight:e.maxHeight,height:e.height,spansAndLeafNodes:S.value,thList:j.value,thWidthList:K.value,resizable:e.resizable,columnResizeParams:be,classPrefix:v,ellipsisOverlayClassName:"medium"!==N.value?b[N.value]:"",attach:e.attach,showColumnShadow:U,thDraggable:e.thDraggable},Z=mu()<=11?4:0,q=z.value?I.value:0,X=t.ref(((null===(d=oe.value)||void 0===d?void 0:d.getBoundingClientRect().height)||0)-Z),G=setTimeout(function(){var e;X.value=((null===(e=oe.value)||void 0===e?void 0:e.getBoundingClientRect().height)||0)-Z,clearTimeout(G)},0),J=t.computed(function(){return X.value-q}),Q=e.headerAffixedTop?Number(ue.value):1,ee=t.computed(function(){return{width:"".concat(A.value,"px"),height:"".concat(J.value,"px"),opacity:Q}}),te=e.bordered?1:0,ne=Boolean((e.headerAffixedTop||He.isVirtualScroll.value)&&A.value)&&t.createVNode("div",{ref:oe,style:{width:"".concat(A.value-te,"px"),opacity:Number(ue.value)},class:["scrollbar",s({},m.affixedHeaderElm,e.headerAffixedTop||He.isVirtualScroll.value)]},[t.createVNode("table",{class:Pe.value,style:nF(nF({},O.value),{},{width:"".concat(B.value,"px")})},[W(!0),t.createVNode(XE,$,n.slots)])]),re=t.createVNode("div",{class:m.affixedHeaderWrap,style:ee.value},[ne]),de=z.value?I.value:0;e.bordered&&(de+=1);var ve=Boolean(He.isVirtualScroll.value||e.footerAffixedBottom),fe=(null===(p=e.footData)||void 0===p?void 0:p.length)||e.footerSummary||n.slots.footerSummary,pe=Boolean(ve&&fe&&A.value)&&t.createVNode(Cm,t.mergeProps({class:m.affixedFooterWrap,onFixedChange:Le,offsetBottom:de||0},FE(e.footerAffixedBottom),{style:{marginTop:"".concat(-1*((null!==(h=c.value)&&void 0!==h?h:0)+de),"px")},ref:T}),{default:function(){return[t.createVNode("div",{ref:ae,style:{width:"".concat(A.value-te,"px"),opacity:Number(ce.value)},class:["scrollbar",s({},m.affixedFooterElm,e.footerAffixedBottom||He.isVirtualScroll.value)]},[t.createVNode("table",{class:Pe.value,style:nF(nF({},O.value),{},{width:"".concat(B.value,"px")})},[W(!0),t.createVNode(QE,{rowKey:e.rowKey,isFixedHeader:R.value,rowAndColFixedPosition:Y.value,footData:e.footData,columns:S.value.leafColumns,rowAttributes:e.rowAttributes,rowClassName:e.rowClassName,thWidthList:K.value,footerSummary:e.footerSummary,rowspanAndColspanInFooter:e.rowspanAndColspanInFooter},n.slots)])])]}}),Ce="translate(0, ".concat(He.scrollHeight.value+(null!==(g=c.value)&&void 0!==g?g:0)+(null!==(y=X.value)&&void 0!==y?y:0),"px)"),ke={transform:Ce,"-ms-transform":Ce,"-moz-transform":Ce,"-webkit-transform":Ce},_e=nF(nF({classPrefix:v,ellipsisOverlayClassName:"medium"!==N.value?b[N.value]:"",rowAndColFixedPosition:Y.value,showColumnShadow:U,data:x,virtualConfig:He,columns:S.value.leafColumns,tableElm:a.value,tableWidth:A.value,isWidthOverflow:z.value,scroll:e.scroll,cellEmptyContent:e.cellEmptyContent,tableContentElm:L.value,handleRowMounted:He.handleRowMounted,renderExpandedRow:e.renderExpandedRow},Na(e,KE)),{},{pagination:he.value,attach:e.attach,hoverRow:Fe.value,activeRow:Ne.value,onRowClick:Ze}),Ve=t.createVNode("div",{ref:L,class:m.content,style:w.value,onScroll:Ke},[He.isVirtualScroll.value&&t.createVNode("div",{class:f.cursor,style:ke},null),t.createVNode("table",{ref:l,class:Pe.value,style:nF(nF({},O.value),{},{width:e.resizable&&z.value&&B.value?"".concat(B.value,"px"):O.value.width})},[W(!1),e.showHeader&&t.createVNode(XE,nF(nF({},$),{},{thWidthList:_?K.value:{}}),n.slots),t.createVNode(UE,t.mergeProps({ref:i},_e),n.slots),t.createVNode(QE,{rowKey:e.rowKey,isFixedHeader:R.value,rowAndColFixedPosition:Y.value,footData:e.footData,columns:S.value.leafColumns,rowAttributes:e.rowAttributes,rowClassName:e.rowClassName,footerSummary:e.footerSummary,rowspanAndColspanInFooter:e.rowspanAndColspanInFooter,virtualScroll:He.isVirtualScroll.value},n.slots)])]),De=H(e.loading)?e.loading:n.slots.loading,Ee=void 0!==e.loading&&t.createVNode(Du,t.mergeProps({loading:!!e.loading,text:De,attach:a.value?function(){return a.value}:void 0,showOverlay:!0,size:"small"},e.loadingProps),null),Te=o("topContent"),Me=o("bottomContent"),Ie=t.createVNode("div",{ref:ie,class:m.paginationWrap,style:{opacity:Number(se.value)}},[ye()]),Ae=!!Me&&t.createVNode("div",{ref:u,class:m.bottomContent},[Me]);return t.createVNode("div",{ref:a,tabindex:Be.value,class:xe.value,onFocus:Ye,onBlur:$e},[!!Te&&t.createVNode("div",{class:m.topContent},[Te]),!1===e.showHeader?null:!(!He.isVirtualScroll.value&&!e.headerAffixedTop)&&(e.headerAffixedTop?t.createVNode(Cm,t.mergeProps({offsetTop:0},FE(e.headerAffixedTop),{onFixedChange:Le,ref:F}),rF(re)?re:{default:function(){return[re]}}):R.value&&re),Ve,pe,Ee,Ae,Se.value&&t.createVNode("div",{class:m.scrollbarDivider,style:{right:"".concat(I.value,"px"),bottom:je.value?"".concat(je.value,"px"):void 0,height:"".concat(null===(C=L.value)||void 0===C?void 0:C.getBoundingClientRect().height,"px")}},null),e.horizontalScrollAffixedBottom&&t.createVNode(Cm,t.mergeProps({offsetBottom:0},FE(e.horizontalScrollAffixedBottom),{style:{marginTop:"-".concat(2*I.value,"px")},horizontalScrollAffixedBottom:!0,ref:E}),{default:function(){return[t.createVNode("div",{ref:le,class:["scrollbar",m.obviousScrollbar],style:{width:"".concat(A.value,"px"),overflow:"auto",opacity:Number(ce.value)}},[t.createVNode("div",{style:{width:"".concat(B.value,"px"),height:"5px"}},null)])]}}),e.paginationAffixedBottom?t.createVNode(Cm,t.mergeProps({offsetBottom:0},FE(e.paginationAffixedBottom),{ref:D}),rF(Ie)?Ie:{default:function(){return[Ie]}}):Ie,t.createVNode("div",{ref:we,class:m.resizeLine,style:Oe},null)])}}}),aF={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 lF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function iF(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=jt(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 vi("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 S(t){var n,r=e.rowKey||"id",a=w.value.map(function(e){return jt(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=jt(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)],r={asc:c.value.sortAscendingOperationText,desc:c.value.sortDescendingOperationText},a=v.value.map(function(n){var a,l,i,u=n===e.sortOrder?o.iconActive:o.iconDefault,s=c.value.sortCancelOperationText,d=n===e.sortOrder?s:r[n];return(null!==(l=e.hideSortTips)&&void 0!==l?l:c.value.hideSortTips)?f(n,u):t.createVNode(Kg,t.mergeProps({content:d,placement:"right",showArrow:!1,class:o.iconDirection[n]},e.tooltipProps),"function"==typeof(i=a=f(n,u))||"[object Object]"===Object.prototype.toString.call(i)&&!t.isVNode(i)?a:{default:function(){return[a]}})});return t.createVNode("div",{class:n},[a])}}});function OF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function CF(e,n){var r=n.slots,o=t.toRefs(e),a=o.sort,l=o.data,u=t.ref(),c=Ya(ni(a,e.defaultSort,e.onSortChange,"sort"),2),d=c[0],v=c[1],f=Ya(ni(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?S(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 NF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _F(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 TF(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var MF=TF(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),IF=TF(/Edge/i),AF=TF(/firefox/i),BF=TF(/safari/i)&&!TF(/chrome/i)&&!TF(/android/i),LF=TF(/iP(ad|od|hone)/i),RF=TF(/chrome/i)&&TF(/android/i),zF={capture:!1,passive:!1};function HF(e,t,n){e.addEventListener(t,n,!MF&&zF)}function WF(e,t,n){e.removeEventListener(t,n,!MF&&zF)}function KF(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 UF(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function YF(e,t,n,r){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&KF(e,t):KF(e,t))||r&&e===n)return e;if(e===n)break}while(e=UF(e))}return null}var $F,ZF=/\s+/g;function qF(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(ZF," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(ZF," ")}}function XF(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 GF(e,t){var n="";if("string"==typeof e)n=e;else do{var r=XF(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 JF(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===QF())break;r=lT(r,!1)}return!1}function nT(e,t,n,r){for(var o=0,a=0,l=e.children;a2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,o=FF(n,gT);hT.pluginEvent.bind(sM)(e,t,_F({dragEl:wT,parentEl:OT,ghostEl:CT,rootEl:xT,nextEl:PT,lastDownEl:ST,cloneEl:jT,cloneHidden:kT,dragStarted:RT,putSortable:FT,activeSortable:sM.active,originalEvent:r,oldIndex:NT,oldDraggableIndex:VT,newIndex:_T,newDraggableIndex:DT,hideGhostForTarget:lM,unhideGhostForTarget:iM,cloneNowHidden:function(){kT=!0},cloneNowShown:function(){kT=!1},dispatchSortableEvent:function(e){bT({sortable:t,name:e,originalEvent:r})}},o))};function bT(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[vT]){var m,h=t.options,g="on"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||MF||IF?(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=_F(_F({},p),hT.getEventProperties(r,t));for(var b in y)m[b]=y[b];n&&n.dispatchEvent(m),h[g]&&h[g].call(t,m)}}(_F({putSortable:FT,cloneEl:jT,targetEl:wT,rootEl:xT,oldIndex:NT,oldDraggableIndex:VT,newIndex:_T,newDraggableIndex:DT},e))}var wT,OT,CT,xT,PT,ST,jT,kT,NT,_T,VT,DT,ET,FT,TT,MT,IT,AT,BT,LT,RT,zT,HT,WT,KT,UT=!1,YT=!1,$T=[],ZT=!1,qT=!1,XT=[],GT=!1,JT=[],QT="undefined"!=typeof document,eM=LF,tM=IF||MF?"cssFloat":"float",nM=QT&&!RF&&!LF&&"draggable"in document.createElement("div"),rM=function(){if(QT){if(MF)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),oM=function(e,t){var n=XF(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=nT(e,0,t),a=nT(e,1,t),l=o&&XF(o),i=a&&XF(a),u=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+eT(o).width,c=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+eT(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[tM]||a&&"none"===n[tM]&&u+c>r)?"vertical":"horizontal"},aM=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"==VF(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},lM=function(){!rM&&CT&&XF(CT,"display","none")},iM=function(){!rM&&CT&&XF(CT,"display","")};QT&&!RF&&document.addEventListener("click",function(e){if(YT)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),YT=!1,!1},!0);var uM=function(e){if(wT){e=e.touches?e.touches[0]:e;var t=(o=e.clientX,a=e.clientY,$T.some(function(e){var t=e[vT].options.emptyInsertThreshold;if(t&&!rT(e)){var n=eT(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[vT]._onDragOver(n)}}var o,a,l},cM=function(e){wT&&wT.parentNode[vT]._isOutsideThisEl(e.target)};function sM(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=EF({},t),e[vT]=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 oM(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!==sM.supportPointer&&"PointerEvent"in window&&(!BF||LF),emptyInsertThreshold:5};for(var r in hT.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var o in aM(t),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!t.forceFallback&&nM,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?HF(e,"pointerdown",this._onTapStart):(HF(e,"mousedown",this._onTapStart),HF(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(HF(e,"dragover",this),HF(e,"dragenter",this)),$T.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),EF(this,fT())}function dM(e,t,n,r,o,a,l,i){var u,c,s=e[vT],d=s.options.onMove;return!window.CustomEvent||MF||IF?(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||eT(t),u.willInsertAfter=i,u.originalEvent=l,e.dispatchEvent(u),d&&(c=d.call(s,u,l)),c}function vM(e){e.draggable=!1}function fM(){GT=!1}function pM(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 mM(e){return setTimeout(e,0)}function hM(e){return clearTimeout(e)}sM.prototype={constructor:sM,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(zT=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,wT):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){JT.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var r=t[n];r.checked&&JT.push(r)}}(n),!wT&&!(/mousedown|pointerdown/.test(a)&&0!==e.button||r.disabled)&&!u.isContentEditable&&(this.nativeDraggable||!BF||!i||"SELECT"!==i.tagName.toUpperCase())&&!((i=YF(i,r.draggable,n,!1))&&i.animated||ST===i)){if(NT=oT(i),VT=oT(i,r.draggable),"function"==typeof c){if(c.call(this,e,i,this))return bT({sortable:t,rootEl:u,name:"filter",targetEl:i,toEl:n,fromEl:n}),yT("filter",t,{evt:e}),void(o&&e.preventDefault())}else if(c&&(c=c.split(",").some(function(r){if(r=YF(u,r.trim(),n,!1))return bT({sortable:t,rootEl:r,name:"filter",targetEl:i,fromEl:n,toEl:n}),yT("filter",t,{evt:e}),!0})))return void(o&&e.preventDefault());r.handle&&!YF(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&&!wT&&n.parentNode===a){var u=eT(n);if(xT=a,OT=(wT=n).parentNode,PT=wT.nextSibling,ST=n,ET=l.group,sM.dragged=wT,TT={target:wT,clientX:(t||e).clientX,clientY:(t||e).clientY},BT=TT.clientX-u.left,LT=TT.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,wT.style["will-change"]="all",r=function(){yT("delayEnded",o,{evt:e}),sM.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!AF&&o.nativeDraggable&&(wT.draggable=!0),o._triggerDragStart(e,t),bT({sortable:o,name:"choose",originalEvent:e}),qF(wT,l.chosenClass,!0))},l.ignore.split(",").forEach(function(e){JF(wT,e.trim(),vM)}),HF(i,"dragover",uM),HF(i,"mousemove",uM),HF(i,"touchmove",uM),l.supportPointer?(HF(i,"pointerup",o._onDrop),!this.nativeDraggable&&HF(i,"pointercancel",o._onDrop)):(HF(i,"mouseup",o._onDrop),HF(i,"touchend",o._onDrop),HF(i,"touchcancel",o._onDrop)),AF&&this.nativeDraggable&&(this.options.touchStartThreshold=4,wT.draggable=!0),yT("delayStart",this,{evt:e}),!l.delay||l.delayOnTouchOnly&&!t||this.nativeDraggable&&(IF||MF))r();else{if(sM.eventCanceled)return void this._onDrop();l.supportPointer?(HF(i,"pointerup",o._disableDelayedDrag),HF(i,"pointercancel",o._disableDelayedDrag)):(HF(i,"mouseup",o._disableDelayedDrag),HF(i,"touchend",o._disableDelayedDrag),HF(i,"touchcancel",o._disableDelayedDrag)),HF(i,"mousemove",o._delayedDragTouchMoveHandler),HF(i,"touchmove",o._delayedDragTouchMoveHandler),l.supportPointer&&HF(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(){wT&&vM(wT),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;WF(e,"mouseup",this._disableDelayedDrag),WF(e,"touchend",this._disableDelayedDrag),WF(e,"touchcancel",this._disableDelayedDrag),WF(e,"pointerup",this._disableDelayedDrag),WF(e,"pointercancel",this._disableDelayedDrag),WF(e,"mousemove",this._delayedDragTouchMoveHandler),WF(e,"touchmove",this._delayedDragTouchMoveHandler),WF(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?HF(document,"pointermove",this._onTouchMove):HF(document,t?"touchmove":"mousemove",this._onTouchMove):(HF(wT,"dragend",this),HF(xT,"dragstart",this._onDragStart));try{document.selection?mM(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(UT=!1,xT&&wT){yT("dragStarted",this,{evt:t}),this.nativeDraggable&&HF(document,"dragover",cM);var n=this.options;!e&&qF(wT,n.dragClass,!1),qF(wT,n.ghostClass,!0),sM.active=this,e&&this._appendGhost(),bT({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(MT){this._lastX=MT.clientX,this._lastY=MT.clientY,lM();for(var e=document.elementFromPoint(MT.clientX,MT.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(MT.clientX,MT.clientY))!==t;)t=e;if(wT.parentNode[vT]._isOutsideThisEl(e),t)do{if(t[vT]){if(t[vT]._onDragOver({clientX:MT.clientX,clientY:MT.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=UF(t));iM()}},_onTouchMove:function(e){if(TT){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,o=e.touches?e.touches[0]:e,a=CT&&GF(CT,!0),l=CT&&a&&a.a,i=CT&&a&&a.d,u=eM&&KT&&aT(KT),c=(o.clientX-TT.clientX+r.x)/(l||1)+(u?u[0]-XT[0]:0)/(l||1),s=(o.clientY-TT.clientY+r.y)/(i||1)+(u?u[1]-XT[1]:0)/(i||1);if(!sM.active&&!UT){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===wT)return D(!1);if(m&&a===e.target&&(l=m),l&&(n=eT(l)),!1!==dM(xT,a,wT,t,l,n,e,!!l))return V(),m&&m.nextSibling?a.insertBefore(wT,m.nextSibling):a.appendChild(wT),OT=a,E(),D(!0)}else if(m&&function(e,t,n){var r=eT(nT(n.el,0,n.options,!0)),o=dT(n.el,n.options,CT),a=10;return t?e.clientXs+c*a/2:ud-WT)return-HT}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,qT,zT===l),0!==g){var S=oT(wT);do{S-=g,b=OT.children[S]}while(b&&("none"===XF(b,"display")||b===CT))}if(0===g||b===l)return D(!1);zT=l,HT=g;var j=l.nextElementSibling,k=!1,N=dM(xT,a,wT,t,l,n,e,k=1===g);if(!1!==N)return 1!==N&&-1!==N||(k=1===N),GT=!0,setTimeout(fM,30),V(),k&&!j?a.appendChild(wT):l.parentNode.insertBefore(wT,k?j:l),x&&cT(x,0,P-x.scrollTop),OT=wT.parentNode,void 0===y||qT||(WT=Math.abs(y-eT(l)[C])),E(),D(!0)}if(a.contains(wT))return D(!1)}return!1}function _(i,u){yT(i,f,_F({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 dM(xT,a,wT,t,n,eT(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&&(qF(wT,FT?FT.options.ghostClass:c.options.ghostClass,!1),qF(wT,i.ghostClass,!0)),FT!==f&&f!==sM.active?FT=f:f===sM.active&&FT&&(FT=null),v===f&&(f._ignoreWhileAnimating=l),f.animateAll(function(){_("dragOverAnimationComplete"),f._ignoreWhileAnimating=null}),f!==v&&(v.animateAll(),v._ignoreWhileAnimating=null)),(l===wT&&!wT.animated||l===a&&!l.animated)&&(zT=null),i.dragoverBubble||e.rootEl||l===document||(wT.parentNode[vT]._isOutsideThisEl(e.target),!t&&uM(e)),!i.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),p=!0}function E(){_T=oT(wT),DT=oT(wT,i.draggable),bT({sortable:f,name:"change",toEl:a,newIndex:_T,newDraggableIndex:DT,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){WF(document,"mousemove",this._onTouchMove),WF(document,"touchmove",this._onTouchMove),WF(document,"pointermove",this._onTouchMove),WF(document,"dragover",uM),WF(document,"mousemove",uM),WF(document,"touchmove",uM)},_offUpEvents:function(){var e=this.el.ownerDocument;WF(e,"mouseup",this._onDrop),WF(e,"touchend",this._onDrop),WF(e,"pointerup",this._onDrop),WF(e,"pointercancel",this._onDrop),WF(e,"touchcancel",this._onDrop),WF(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;_T=oT(wT),DT=oT(wT,n.draggable),yT("drop",this,{evt:e}),OT=wT&&wT.parentNode,_T=oT(wT),DT=oT(wT,n.draggable),sM.eventCanceled||(UT=!1,qT=!1,ZT=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),hM(this.cloneId),hM(this._dragStartId),this.nativeDraggable&&(WF(document,"drop",this),WF(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),BF&&XF(document.body,"user-select",""),XF(wT,"transform",""),e&&(RT&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),CT&&CT.parentNode&&CT.parentNode.removeChild(CT),(xT===OT||FT&&"clone"!==FT.lastPutMode)&&jT&&jT.parentNode&&jT.parentNode.removeChild(jT),wT&&(this.nativeDraggable&&WF(wT,"dragend",this),vM(wT),wT.style["will-change"]="",RT&&!UT&&qF(wT,FT?FT.options.ghostClass:this.options.ghostClass,!1),qF(wT,this.options.chosenClass,!1),bT({sortable:this,name:"unchoose",toEl:OT,newIndex:null,newDraggableIndex:null,originalEvent:e}),xT!==OT?(_T>=0&&(bT({rootEl:OT,name:"add",toEl:OT,fromEl:xT,originalEvent:e}),bT({sortable:this,name:"remove",toEl:OT,originalEvent:e}),bT({rootEl:OT,name:"sort",toEl:OT,fromEl:xT,originalEvent:e}),bT({sortable:this,name:"sort",toEl:OT,originalEvent:e})),FT&&FT.save()):_T!==NT&&_T>=0&&(bT({sortable:this,name:"update",toEl:OT,originalEvent:e}),bT({sortable:this,name:"sort",toEl:OT,originalEvent:e})),sM.active&&(null!=_T&&-1!==_T||(_T=NT,DT=VT),bT({sortable:this,name:"end",toEl:OT,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){yT("nulling",this),xT=wT=OT=CT=PT=jT=ST=kT=TT=MT=RT=_T=DT=NT=VT=zT=HT=FT=ET=sM.dragged=sM.ghost=sM.clone=sM.active=null,JT.forEach(function(e){e.checked=!0}),JT.length=IT=AT=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":wT&&(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 EM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function FM(e){for(var t=1;tl?l*(a-1)+t:t}e.sortOnRowDraggable&&pi("Table","`sortOnRowDraggable` is going to be deprecated, use dragSort='row' instead.");var C=function(t,n){var r=FM({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&&(TM(t.item),MM(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=vF(m.value,s.dataset.colkey),f=vF(m.value,d.dataset.colkey);v&&v.colKey||pi("Table","colKey is missing in ".concat(JSON.stringify(v))),f&&f.colKey||pi("Table","colKey is missing in ".concat(JSON.stringify(f))),u=fF(e.columns,v.colKey),c=fF(e.columns,f.colKey);var p={data:m.value,currentIndex:u,current:v,targetIndex:c,target:f,newData:DM(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 sM(t,r)},x=function(e){if(w.value&&e){var t=e.querySelectorAll("thead > tr");if(t.length<=1){var n=Ya(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=Ya(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=FM({animation:150,ghostClass:d.ghost,chosenClass:d.chosen,dragClass:d.dragging,filter:".".concat(f.base,",.").concat(p.row),onMove:function(e){return!fl(e.related,f.base)},onEnd:function(r){var o;if(r.newIndex!==r.oldIndex){TM(r.item),MM(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:DM(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 sM(a,FM({},l)):new sM(a,FM(FM({},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 AM(e){return Ka(e)||a(e)||l(e)||Ua()}function BM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function LM(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=jt(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]=Ir(t)),Object.entries(n).forEach(function(t){var n=Ya(t,2),r=n[0],o=n[1];Ma(i.value[e],r,o)})},getEditRowData:function(t){var n,r=t.row,o=t.col,a=jt(r,e.rowKey||"id"),l=i.value[a];if(l&&null!==(n=e.editableRowKeys)&&void 0!==n&&n.includes(a)){var u=HM({},l);return Ma(u,o.colKey,jt(l,o.colKey)),u}return r},onPrimaryTableCellEditChange:function(t){var n=EE(t.row,e.rowKey,t.col.colKey,t.colIndex);t.isEdit?l.value[n]=t:delete l.value[n]}}}function KM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function UM(e){for(var t=1;t1&&void 0!==arguments[1]&&arguments[1],a=[],l=function(){var l,c,s,d,f,m=UM({},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=I(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=hE(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=UM(UM({},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=jt(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(RM,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=jt(e,t);return n||r?"".concat(o,"_").concat(n||0,"_").concat(r||0,"}"):o}var eI=function(){return Ti(function e(){Mi(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=jt(r.parent.row,n.childrenKey),l=a.findIndex(function(t){return jt(t,n.rowKey)===e});a.splice(l,1),tI(this.treeDataMap,r.parent.row,-1*o,"delete",n)}this.treeDataMap.delete(e),aI(this.treeDataMap,t,{minRowIndex:r.rowIndex,rowKey:n.rowKey,type:"remove"})}else vi("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&&tI(this.treeDataMap,r.parent.row,-1*o,"delete",n),r.expandChildrenLength=0,r.expanded=!1,Ma(r.row,n.childrenKey,void 0),this.treeDataMap.set(e,r),o&&aI(this.treeDataMap,t,{minRowIndex:r.rowIndex+1,rowKey:n.rowKey,type:"remove"})}else vi("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=jt(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))),aI(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))),aI(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=jt(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 QM(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=Ya(e,1)[0],l=Ya(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=iI({type:"user-reaction-change"},t);var c=QM(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=sI({},m.value);return o.cell=function(o,a){var l,i,d=BE(sI(sI({},a),{},{col:sI({},m.value)}),n.slots,{cellEmptyContent:e.cellEmptyContent}),h=p.value.treeDataMap.get(jt(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=jt(a.row,b.value.childrenKey);if(C&&C instanceof Array||!0===C){var x,P=null!==(x=p.value.treeDataMap.get(jt(a.row,b.value.rowKey)))&&void 0!==x&&x.expanded?(l=sI(sI({},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=sI(sI({},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 BE(sI(sI({},t),{},{col:sI({},m.value)}),n.slots)}),o},toggleExpandData:function(t,n){var r,o,a=sI({},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=jt(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:S,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 vI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function fI(e){for(var t=1;t0&&v=0?e.rowIndex:e.rowIndex<0?w(e.parent):void 0:-1};return n.expose(bI(bI({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 pi("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)&&pi("Table","".concat(e.key," does not exist in data, check `rowKey` or `data` please."))}r.value.scrollToElement(bI(bI({},e),{},{index:t}))}})),function(){var o,a=bI(bI({},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=jt(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($M,t.mergeProps(a,{ref:r}),n.slots)}}}),OI=Nl(nF),CI=Nl($M),xI=Nl(wI),PI=Nl(Ir($M),"TTable"),SI={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)}}},jI={vertical:["left","right"],horizontal:["top","bottom"]},kI=Symbol("timeLineProvide"),NI=t.computed(function(){return{theme:"default",reverse:!1,itemsStatus:[],layout:"horizontal",renderAlign:"left",mode:"alternate"}}),_I={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 VI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function DI(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])}}}),LI={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 RI=t.defineComponent({name:"TCollapsePanel",props:LI,setup:function(e,n){var r=n.slots,o=Rl(),a=Hl(),l=ei("collapse-panel"),i=ei("is-disabled"),u=ei("is-clickable"),c=ei("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 S={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}},j=S.beforeEnter,k=S.enter,N=S.afterEnter,_=S.beforeLeave,V=S.leave,D=S.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}),M=t.computed(function(){return[l.value,s({},i.value,F.value)]}),I=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===I.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(Hy,{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:M.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:j,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]}}))])])}}}),zI=Nl(BI),HI=Nl(RI),WI={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 KI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function UI(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 $I(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(Wc,null,null)}:function(){return t.createVNode(Ls,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(Kg,t.mergeProps(o,{content:d.value}),{default:function(){return[t.createVNode(Iu,{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),eA("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(rA,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 aA=t.defineComponent({name:"TTypography",setup:function(){var e=Rl();return function(){var n,r;return t.createVNode(oA,null,"function"==typeof(r=n=e("default"))||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}})}}}),lA={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)}}};function iA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function uA(e){for(var t=1;t=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 wA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n31||e>>>t!==0)throw new RangeError("Value out of range");for(var r=t-1;r>=0;r--)n.push(e>>>r&1)}function CA(e,t){return!!(e>>>t&1)}function xA(e){if(!e)throw new Error("Assertion error")}var PA=function(){return Ti(function e(t,n){Mi(this,e),s(this,"modeBits",void 0),s(this,"numBitsCharCount",void 0),this.modeBits=t,this.numBitsCharCount=n},[{key:"numCharCountBits",value:function(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}}])}();s(PA,"NUMERIC",new(dA=PA)(1,[10,12,14])),s(PA,"ALPHANUMERIC",new dA(2,[9,11,13])),s(PA,"BYTE",new dA(4,[8,16,16])),s(PA,"KANJI",new dA(8,[8,10,12])),s(PA,"ECI",new dA(7,[0,0,0]));var SA=Ti(function e(t,n){Mi(this,e),s(this,"ordinal",void 0),s(this,"formatBits",void 0),this.ordinal=t,this.formatBits=n});s(SA,"LOW",new(vA=SA)(0,1)),s(SA,"MEDIUM",new vA(1,0)),s(SA,"QUARTILE",new vA(2,3)),s(SA,"HIGH",new vA(3,2));var jA=function(){function e(t,n,r){if(Mi(this,e),s(this,"mode",void 0),s(this,"numChars",void 0),s(this,"bitData",void 0),this.mode=t,this.numChars=n,this.bitData=r,n<0)throw new RangeError("Invalid argument");this.bitData=r.slice()}return Ti(e,[{key:"getData",value:function(){return this.bitData.slice()}}],[{key:"makeBytes",value:function(t){var n,r=[],o=bA(t);try{for(o.s();!(n=o.n()).done;){OA(n.value,8,r)}}catch(e){o.e(e)}finally{o.f()}return new e(PA.BYTE,t.length,r)}},{key:"makeNumeric",value:function(t){if(!e.isNumeric(t))throw new RangeError("String contains non-numeric characters");for(var n=[],r=0;r=1<e.MAX_VERSION)throw new RangeError("Version value out of range");if(a<-1||a>7)throw new RangeError("Mask value out of range");this.size=4*t+17;for(var l=[],i=0;i=0&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}return Ti(e,[{key:"getModule",value:function(e,t){return e>=0&&e=0&&t>>9);var o=21522^(t<<10|n);xA(o>>>15==0);for(var a=0;a<=5;a++)this.setFunctionModule(8,a,CA(o,a));this.setFunctionModule(8,7,CA(o,6)),this.setFunctionModule(8,8,CA(o,7)),this.setFunctionModule(7,8,CA(o,8));for(var l=9;l<15;l++)this.setFunctionModule(14-l,8,CA(o,l));for(var i=0;i<8;i++)this.setFunctionModule(this.size-1-i,8,CA(o,i));for(var u=8;u<15;u++)this.setFunctionModule(8,this.size-15+u,CA(o,u));this.setFunctionModule(8,this.size-8,!0)}},{key:"drawVersion",value:function(){if(!(this.version<7)){for(var e=this.version,t=0;t<12;t++)e=e<<1^7973*(e>>>11);var n=this.version<<12|e;xA(n>>>18==0);for(var r=0;r<18;r++){var o=CA(n,r),a=this.size-11+r%3,l=Math.floor(r/3);this.setFunctionModule(a,l,o),this.setFunctionModule(l,a,o)}}}},{key:"drawFinderPattern",value:function(e,t){for(var n=-4;n<=4;n++)for(var r=-4;r<=4;r++){var o=Math.max(Math.abs(r),Math.abs(n)),a=e+r,l=t+n;a>=0&&a=0&&l=i)&&m.push(t[e])})},g=0;g=1;r-=2){6===r&&(r=5);for(var o=0;o>>3],7-(7&n)),n++)}}xA(n===8*t.length)}},{key:"applyMask",value:function(e){if(e<0||e>7)throw new RangeError("Mask value out of range");for(var t=0;t5&&t++:(this.finderPenaltyAddHistory(o,a),r||(t+=this.finderPenaltyCountPatterns(a)*e.PENALTY_N3),r=this.modules[n][l],o=1);t+=this.finderPenaltyTerminateAndCount(r,o,a)*e.PENALTY_N3}for(var i=0;i5&&t++:(this.finderPenaltyAddHistory(c,s),u||(t+=this.finderPenaltyCountPatterns(s)*e.PENALTY_N3),u=this.modules[d][i],c=1);t+=this.finderPenaltyTerminateAndCount(u,c,s)*e.PENALTY_N3}for(var v=0;v=0&&b<=9),xA((t+=b*e.PENALTY_N4)>=0&&t<=2568888),t}},{key:"getAlignmentPatternPositions",value:function(){if(1===this.version)return[];for(var e=Math.floor(this.version/7)+2,t=32===this.version?26:2*Math.ceil((4*this.version+4)/(2*e-2)),n=[6],r=this.size-7;n.length0&&e[2]===t&&e[3]===3*t&&e[4]===t&&e[5]===t;return(n&&e[0]>=4*t&&e[6]>=t?1:0)+(n&&e[6]>=4*t&&e[0]>=t?1:0)}},{key:"finderPenaltyTerminateAndCount",value:function(e,t,n){var r=t;return e&&(this.finderPenaltyAddHistory(r,n),r=0),r+=this.size,this.finderPenaltyAddHistory(r,n),this.finderPenaltyCountPatterns(n)}},{key:"finderPenaltyAddHistory",value:function(e,t){var n=e;0===t[0]&&(n+=this.size),t.pop(),t.unshift(n)}}],[{key:"encodeText",value:function(t,n){var r=jA.makeSegments(t);return e.encodeSegments(r,n)}},{key:"encodeBinary",value:function(t,n){var r=jA.makeBytes(t);return e.encodeSegments([r],n)}},{key:"encodeSegments",value:function(t,n){var r,o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:40,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1,u=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];if(!(e.MIN_VERSION<=a&&a<=l&&l<=e.MAX_VERSION)||i<-1||i>7)throw new RangeError("Invalid value");for(r=a;;r++){var c=8*e.getNumDataCodewords(r,n),s=jA.getTotalBits(t,r);if(s<=c){o=s;break}if(r>=l)throw new RangeError("Data too long")}for(var d=n,v=0,f=[SA.MEDIUM,SA.QUARTILE,SA.HIGH];v>>3]|=e<<7-(7&t)}),new e(r,d,P,i)}},{key:"getNumRawDataModules",value:function(t){if(te.MAX_VERSION)throw new RangeError("Version number out of range");var n=(16*t+128)*t+64;if(t>=2){var r=Math.floor(t/7)+2;n-=(25*r-10)*r-55,t>=7&&(n-=36)}return xA(n>=208&&n<=29648),n}},{key:"getNumDataCodewords",value:function(t,n){return Math.floor(e.getNumRawDataModules(t)/8)-e.ECC_CODEWORDS_PER_BLOCK[n.ordinal][t]*e.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][t]}},{key:"reedSolomonComputeDivisor",value:function(t){if(t<1||t>255)throw new RangeError("Degree out of range");for(var n=[],r=0;r>>8!=0||t>>>8!=0)throw new RangeError("Byte out of range");for(var n=0,r=7;r>=0;r--)n=n<<1^285*(n>>>7),n^=(t>>>r&1)*e;return xA(n>>>8==0),n}}])}();s(kA,"MIN_VERSION",1),s(kA,"MAX_VERSION",40),s(kA,"PENALTY_N1",3),s(kA,"PENALTY_N2",3),s(kA,"PENALTY_N3",40),s(kA,"PENALTY_N4",10),s(kA,"ECC_CODEWORDS_PER_BLOCK",[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]]),s(kA,"NUM_ERROR_CORRECTION_BLOCKS",[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]]);var NA={L:SA.LOW,M:SA.MEDIUM,Q:SA.QUARTILE,H:SA.HIGH},_A=!1,VA=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=[];return e.forEach(function(e,r){var o=null;e.forEach(function(a,l){if(!a&&null!==o)return n.push("M".concat(o+t," ").concat(r+t,"h").concat(l-o,"v1H").concat(o+t,"z")),void(o=null);if(l!==e.length-1)a&&null===o&&(o=l);else{if(!a)return;null===o?n.push("M".concat(l+t,",").concat(r+t," h1v1H").concat(l+t,"z")):n.push("M".concat(o+t,",").concat(r+t," h").concat(l+1-o,"v1H").concat(o+t,"z"))}})}),n.join("")},DA=function(e,t){return e.slice().map(function(e,n){return n=t.y+t.h?e:e.map(function(e,n){return(n=t.x+t.w)&&e})})},EA=function(){try{(new Path2D).addPath(new Path2D)}catch(e){return!1}return!0}(),FA={value:{type:String,default:""},size:{type:Number,default:128},level:{type:String,default:"L"},bgColor:{type:String,default:"#FFFFFF"},fgColor:{type:String,default:"#000000"},style:{type:Object,default:function(){return{}}},includeMargin:{type:Boolean,default:!1},marginSize:{type:Number,default:0},imageSettings:{type:Object,default:function(){return{}}},title:{type:String,default:""},minVersion:{type:Number,default:1}},TA={locale:{type:Object,default:function(){return{}}},onRefresh:{type:Function},statusRender:{type:Function},status:{type:String,default:"active"}},MA=function(e){var n=e.value,r=e.level,o=e.minVersion,a=e.includeMargin,l=e.marginSize,i=e.imageSettings,u=e.size,c=t.computed(function(){var e=jA.makeSegments(n);return kA.encodeSegments(e,NA[r],o)}),s=t.computed(function(){return c.value.getModules()}),d=t.computed(function(){return function(e,t){return null!=t?Math.max(Math.floor(t),0):e?4:0}(a,l)}),v=t.computed(function(){return function(e,t,n,r){if(null==r)return null;var o=e.length+2*n,a=Math.floor(.1*t),l=o/t,i=(r.width||a)*l,u=(r.height||a)*l,c=null==r.x?e.length/2-i/2:r.x*l,s=null==r.y?e.length/2-u/2:r.y*l,d=null==r.opacity?1:r.opacity,v=null;if(r.excavate){var f=Math.floor(c),p=Math.floor(s);v={x:f,y:p,w:Math.ceil(i+c-f),h:Math.ceil(u+s-p)}}return{x:c,y:s,h:u,w:i,excavation:v,opacity:d,crossOrigin:r.crossOrigin}}(s.value,u,d.value,i)});return{cells:s,margin:d,numCells:t.computed(function(){return s.value.length+2*d.value}),calculatedImageSettings:v,qrcode:c}},IA=t.defineComponent({name:"QRCodeCanvas",props:FA,setup:function(e){var n=t.computed(function(){var t;return null===(t=e.imageSettings)||void 0===t?void 0:t.src}),r=t.ref(null),o=t.ref(null),a=t.ref(""),l=function(){var n,l=MA({value:e.value,level:e.level,minVersion:1,includeMargin:_A,marginSize:e.marginSize,imageSettings:e.imageSettings,size:e.size}),i=l.margin,u=l.cells,c=l.numCells,s=l.calculatedImageSettings;if(o.value){var d=o.value,v=d.getContext("2d");if(v){a.value=null===(n=s.value)||void 0===n?void 0:n.crossOrigin;var f=u,p=r.value;p&&(p.crossOrigin=s.value.crossOrigin);var m=s.value&&null!==p&&p.complete&&0!==p.naturalHeight&&0!==p.naturalWidth;m&&null!=s.value.excavation&&(f=t.computed(function(){return DA(u.value,s.value.excavation)}));var h=window.devicePixelRatio||1;d.height=e.size*h,d.width=e.size*h;var g=e.size/c.value*h;v.scale(g,g),v.fillStyle=e.bgColor,v.fillRect(0,0,c.value,c.value),v.fillStyle=e.fgColor,EA?v.fill(new Path2D(VA(f.value,i.value))):u.value.forEach(function(e,t){e.forEach(function(e,n){e&&v.fillRect(n+i.value,t+i.value,1,1)})}),s&&(v.globalAlpha=s.value.opacity),m&&(v.globalAlpha=s.value.opacity,v.drawImage(p,s.value.x+i.value,s.value.y+i.value,s.value.w,s.value.h))}}};return t.watchEffect(function(){l()}),t.onMounted(function(){l()}),function(){return t.createVNode(t.Fragment,null,[t.createVNode("canvas",{ref:o,role:"img"},null),null!=n.value?t.createVNode("img",{ref:r,onLoad:l,style:{display:"none"},src:n.value},null):null])}}}),AA=t.defineComponent({name:"QRCodeSVG",props:FA,setup:function(e){var n=t.computed(function(){return MA({value:e.value,level:e.level,minVersion:1,includeMargin:_A,marginSize:e.marginSize,imageSettings:e.imageSettings,size:e.size})}),r=t.computed(function(){var t,r=n.value,o=r.cells,a=r.calculatedImageSettings;return e.imageSettings&&null!=(null===(t=a.value)||void 0===t?void 0:t.excavation)?DA(o.value,a.value.excavation):o.value}),o=t.computed(function(){var r=n.value,o=r.calculatedImageSettings,a=r.margin;return e.imageSettings&&o.value?t.createVNode("image",{href:e.imageSettings.src,height:o.value.h,width:o.value.w,x:o.value.x+a.value,y:o.value.y+a.value,crossOrigin:o.value.crossOrigin},null):null});return function(){var a=n.value,l=a.margin,i=a.numCells,u=VA(r.value,l.value);return t.createVNode("svg",{height:e.size,width:e.size,viewBox:"0 0 ".concat(i.value," ").concat(i.value),role:"img",style:e.style},[!!e.title&&t.createVNode("title",null,[e.title]),t.createVNode("path",{fill:e.bgColor,d:"M0,0 h".concat(i.value,"v").concat(i.value,"H0z"),"shape-rendering":"crispEdges"},null),t.createVNode("path",{fill:e.fgColor,d:u,"shape-rendering":"crispEdges"},null),o.value])}}}),BA=t.defineComponent({name:"QRCodeStatus",props:TA,setup:function(e){var n,r=ei(),o=t.createVNode(Du,{size:"32px"},null),a=t.computed(function(){var n,o;return t.createVNode(t.Fragment,null,[t.createVNode("p",{class:"".concat(r.value,"-expired__text")},[null===(n=e.locale)||void 0===n?void 0:n.expiredText]),(null==e?void 0:e.onRefresh)&&t.createVNode("p",{class:"".concat(r.value,"-expired__button"),onClick:null==e?void 0:e.onRefresh},[t.createVNode(zv,{size:"16"},null),null===(o=e.locale)||void 0===o?void 0:o.refreshText])])}),l=t.createVNode("p",{class:"".concat(r.value,"-scanned")},[t.createVNode(Bc,{size:"16",class:"".concat(r.value,"-scanned__icon")},null),null===(n=e.locale)||void 0===n?void 0:n.scannedText]),i=t.computed(function(){return{expired:a.value,loading:o,scanned:l,active:null}});return function(){return t.createVNode(t.Fragment,null,[e.statusRender||(n={status:e.status,onRefresh:e.onRefresh},i.value[n.status])]);var n}}}),LA=t.defineComponent({name:"TQRCode",props:yA,setup:function(e){var n=ei(),r=Rl(),o=Jl("qrcode").globalConfig,a=su({themeFgColor:"--td-text-color-primary",themeBgColor:"--td-bg-color-specialcomponent"}),l=a.themeFgColor,i=a.themeBgColor,u=t.computed(function(){return e.bgColor||i.value||"transparent"}),c=t.computed(function(){return e.color||l.value||"#000000"});if(!e.value)return null;var d=t.computed(function(){var t,n,r,o;return{src:e.icon,x:void 0,y:void 0,height:Uo(e.iconSize)?e.iconSize:null!==(t=null===(n=e.iconSize)||void 0===n?void 0:n.height)&&void 0!==t?t:40,width:Uo(e.iconSize)?e.iconSize:null!==(r=null===(o=e.iconSize)||void 0===o?void 0:o.width)&&void 0!==r?r:40,excavate:!0,crossOrigin:"anonymous"}}),v=t.computed(function(){return["".concat(n.value,"-qrcode"),s(s({},"".concat(n.value,"-borderless"),e.borderless),"".concat(n.value,"-qrcode-svg"),"svg"===e.type)]}),f=t.computed(function(){return{backgroundColor:u.value,width:"".concat(e.size,"px"),height:"".concat(e.size,"px")}});return function(){var a={value:e.value,size:e.size,bgColor:u.value,fgColor:c.value,imageSettings:e.icon?d.value:void 0,level:e.level};return t.createVNode("div",t.mergeProps({class:v.value,style:f.value},{level:e.level}),["active"!==e.status&&t.createVNode("div",{class:["".concat(n.value,"-mask"),s({},"".concat(n.value,"-").concat(e.status),"loading"!==e.status)]},[t.createVNode(BA,{locale:o.value,status:e.status,onRefresh:e.onRefresh,statusRender:r("statusRender",{params:{status:e.status,onRefresh:e.onRefresh}})},null)]),"canvas"===e.type?t.createVNode(IA,t.mergeProps(a,{size:e.size}),null):t.createVNode(AA,t.mergeProps(a,{size:e.size}),null)])}}}),RA=Nl(LA,"TQrcode"),zA={close:{type:[String,Boolean,Function],default:!1},closeBtn:{type:[String,Boolean,Function],default:!1},default:{type:[String,Function]},icon:{type:Function},maxLine:{type:Number,default:0},message:{type:[String,Function]},operation:{type:Function},theme:{type:String,default:"info",validator:function(e){return!e||["success","info","warning","error"].includes(e)}},title:{type:[String,Function]},onClose:Function,onClosed:Function},HA=t.defineComponent({name:"TAlert",props:zA,setup:function(e,n){var r=n.slots,o=t.getCurrentInstance(),a=Jl("alert"),l=a.globalConfig,i=a.classPrefix,u=si({CheckCircleFilledIcon:Bc,CloseIcon:Ts,ErrorCircleFilledIcon:sd,HelpCircleFilledIcon:tv,InfoCircleFilledIcon:hv}),c=u.CheckCircleFilledIcon,d=u.CloseIcon,v=u.ErrorCircleFilledIcon,f=u.HelpCircleFilledIcon,p=u.InfoCircleFilledIcon,m=ei("alert"),h=Rl(),g=function(){var e=t.getCurrentInstance();return function(n,r){var o;if(H(e.props[n]))o=e.props[n](t.h);else if(e.slots[n])o=e.slots[n]&&e.slots[n](null)[0];else if(r){var a=r[e.props.theme];o=t.createVNode(a,null,null)}return o}}(),y=t.ref(null),b=t.ref(null),w=t.ref(0),O=t.ref(!0),C=t.ref(!0),x=function(){var n=e.closeBtn,a=Object.prototype.hasOwnProperty.call(o.vnode.props||{},"close")||r.close,l=a?e.close:n;a&&fi("TAlert","prop `close` is going to be deprecated, please use `closeBtn` instead.");var i=null;return(i=!0===l||""===l?t.createVNode(d,null,null):To(l)?l:h(a?"close":"closeBtn"))?t.createVNode("div",{class:"".concat(m.value,"__close"),onClick:j},[i]):null},P=function(){var n,r=h("default")||h("message");S(r)&&(r=r.filter(function(e){return!kl(e)}));var o=S(r)?r.length:1,a=e.maxLine>0&&e.maxLinedocument.documentElement.clientWidth?MV():0;a.value=document.createElement("style"),a.value.dataset.id="td_drawer_".concat(+new Date,"_").concat(qA+=1),a.value.innerHTML="\n html body {\n overflow-y: hidden;\n transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;\n ".concat("push"===e.mode?"":"width: calc(100% - ".concat(t,"px);"),"\n }\n ")}}(),a.value&&!document.head.contains(a.value)&&document.head.appendChild(a.value))};t.watch(function(){return e.visible},function(t){if(!sl){var n,a;if(t)M(),null===(n=e.onBeforeOpen)||void 0===n||n.call(e);else F(),null===(a=e.onBeforeClose)||void 0===a||a.call(e);!function(t){if(t&&(b.value=!0),!e.destroyOnClose)return r.value&&t?(r.value=!1,void setTimeout(function(){return o.value=!0})):void setTimeout(function(){return o.value=t});t?(r.value=!1,setTimeout(function(){return o.value=!0})):(o.value=!1,r.value&&(r.value=!1),setTimeout(function(){return r.value=!0},300))}(t)}},{immediate:!0});var I=function(t){var n;null===(n=e.onCloseBtnClick)||void 0===n||n.call(e,{e:t}),B({trigger:"close-btn",e:t})},A=function(t){var n,r;null===(n=e.onOverlayClick)||void 0===n||n.call(e,{e:t}),(null!==(r=e.closeOnOverlayClick)&&void 0!==r?r:i.value.closeOnOverlayClick)&&B({trigger:"overlay",e:t})},B=function(t){var r;null===(r=e.onClose)||void 0===r||r.call(e,t),n.emit("update:visible",!1)};t.onUpdated(function(){if(_.value&&"push"===e.mode){var t={left:{name:"margin-left",value:j.value},right:{name:"margin-right",value:"-".concat(j.value)},top:{name:"margin-top",value:j.value},bottom:{name:"margin-bottom",value:"-".concat(j.value)}}[e.placement];o.value?_.value.style.setProperty(t.name,t.value):_.value.style.removeProperty(t.name)}}),t.onMounted(function(){M(),window.addEventListener("keydown",E)}),t.onBeforeUnmount(function(){F(),window.removeEventListener("keydown",E)});var L=t.computed(function(){return b.value?o.value||!r.value:!e.lazy});return function(){if(L.value){var r,o,a=d("body","default"),l=c("header"),s=(r=C({confirmBtn:e.confirmBtn,globalConfirm:i.value.confirm,className:"".concat(v.value,"__confirm")}),o=x({cancelBtn:e.cancelBtn,globalCancel:i.value.cancel,className:"".concat(v.value,"__cancel")}),t.createVNode("div",{style:D.value},["right"===e.placement?r:null,o,"right"!==e.placement?r:null]));return t.createVNode(t.Teleport,{disabled:!e.attach||!w.value,to:w.value},{default:function(){return[t.createVNode("div",t.mergeProps({ref:P,class:S.value,style:{zIndex:e.zIndex},onKeydown:E,tabindex:0},n.attrs),[e.showOverlay&&t.createVNode("div",{class:"".concat(v.value,"__mask"),onClick:A},null),t.createVNode("div",{class:N.value,style:ZA(ZA({},k.value),g.value)},[l&&t.createVNode("div",{class:"".concat(v.value,"__header")},[l]),e.closeBtn&&t.createVNode("div",{class:"".concat(v.value,"__close-btn"),onClick:I},[c("closeBtn",t.createVNode(u,null,null))]),t.createVNode("div",{class:["".concat(v.value,"__body"),"narrow-scrollbar"]},[a]),e.footer&&t.createVNode("div",{class:"".concat(v.value,"__footer")},[c("footer",s)]),e.sizeDraggable&&t.createVNode("div",{style:h.value,onMousedown:m},null)])])]}})}}}});function GA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function JA(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)},I=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=jl(),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=Pl(t,"position");return"body"!==t.tagName.toLowerCase()&&"relative"===d||"sticky"===d?{top:l-c,left:i-s}:Sl(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=jl();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")});Hi(e,s)},A=function(){t.nextTick(function(){var e;C.value=function(e){if(!e)return document.body;var t,n=null;if(To(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&&(rB(C.value),I(w.value),I(O.value,!0),oB(C.value),null===(e=S.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,rB(C.value),I(w.value),oB(C.value)})),T.value=!0},z=function(t){var n,r=k.value;j.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;j.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=ei("notification-list"),a=e.placement,l=t.ref([]),i=t.ref([]),u=t.computed(function(){return bB({zIndex:6e3},sB[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:cB};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(gB,t.mergeProps({ref:v,key:e.id,style:d(e)},function(e,t){return bB(bB({},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 OB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function CB(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.value.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(Iu,{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(Iu,{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(Iu,{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(Iu,{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 zB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function HB(e){for(var t=1;t=xi.KB&&c=xi.MB&&c=xi.GB?"".concat((c/xi.GB).toFixed(1)," GB"):"")]),t.createVNode("td",null,[M(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?Si.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(M_,{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(Iu,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(Iu,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(aD,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 $B(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 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;tt*xi[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 tL(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 nL(e){var t=e.action,n=e.toUploadFiles,r=e.requestMethod;return new Promise(function(o){if(!t&&!r)return pi("Upload","one of action and requestMethod must be exist."),void o({});if(!n||!n.length)return vi("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)||vi("Upload","`requestMethodResponse.response.url` or `requestMethodResponse.response.files` is required if `status` is `success`"),!0):(pi("Upload","`requestMethodResponse.status` must be `success` or `fail`, examples `{ status: 'success', response: { url: '' } }`"),!1):(pi("Upload","`requestMethodResponse.status` is missing, which value only can be `success` or `fail`"),!1):(pi("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 QB(QB(QB({},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)||Pi()}),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,S=e.onError,j=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=_,j({percent:_,file:m||N[0],files:N.map(function(e){return GB(GB({},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){S({event:e,file:m,files:N,XMLHttpRequest:V}),clearInterval(n),clearTimeout(r)},V.ontimeout=function(e){S({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 GB(GB({},e),{},{percent:_})});j({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 S({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,pi("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)||Pi()}),"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=tL(QB(QB({},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=tL(QB(QB({},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&&pi("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}}(QB(QB({},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 rL(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 nL(QB(QB({},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 nL(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=n,o=function(){var n=t[a],o=e.findIndex(function(e){return e.raw&&e.raw===n.raw||e.name&&e.name===n.name}),l=o>=0?QB(QB({},e[o]),n):n;r.push(l)},a=0,l=t.length;a2&&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)),QB({raw:e,lastModified:e.lastModified,name:e.name,size:e.size,type:e.type,percent:r,status:n},o)})}function aL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function lL(e){for(var t=1;tr&&(u=!0)}var s,d=oL(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){eL(t,{beforeUpload:e.beforeUpload,sizeLimit:e.sizeLimit}).then(function(e){var r=Ya(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=AM(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=oL(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?M(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 M(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=[],rL({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 I(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 IF(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var AF=IF(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),BF=IF(/Edge/i),LF=IF(/firefox/i),RF=IF(/safari/i)&&!IF(/chrome/i)&&!IF(/android/i),zF=IF(/iP(ad|od|hone)/i),HF=IF(/chrome/i)&&IF(/android/i),WF={capture:!1,passive:!1};function KF(e,t,n){e.addEventListener(t,n,!AF&&WF)}function UF(e,t,n){e.removeEventListener(t,n,!AF&&WF)}function YF(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 $F(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function ZF(e,t,n,r){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&YF(e,t):YF(e,t))||r&&e===n)return e;if(e===n)break}while(e=$F(e))}return null}var qF,XF=/\s+/g;function GF(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(XF," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(XF," ")}}function JF(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 QF(e,t){var n="";if("string"==typeof e)n=e;else do{var r=JF(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 eT(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===tT())break;r=uT(r,!1)}return!1}function oT(e,t,n,r){for(var o=0,a=0,l=e.children;a2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,o=MF(n,bT);yT.pluginEvent.bind(vM)(e,t,DF({dragEl:CT,parentEl:xT,ghostEl:PT,rootEl:ST,nextEl:jT,lastDownEl:kT,cloneEl:NT,cloneHidden:_T,dragStarted:HT,putSortable:MT,activeSortable:vM.active,originalEvent:r,oldIndex:VT,oldDraggableIndex:ET,newIndex:DT,newDraggableIndex:FT,hideGhostForTarget:uM,unhideGhostForTarget:cM,cloneNowHidden:function(){_T=!0},cloneNowShown:function(){_T=!1},dispatchSortableEvent:function(e){OT({sortable:t,name:e,originalEvent:r})}},o))};function OT(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[pT]){var m,h=t.options,g="on"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||AF||BF?(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=DF(DF({},p),yT.getEventProperties(r,t));for(var b in y)m[b]=y[b];n&&n.dispatchEvent(m),h[g]&&h[g].call(t,m)}}(DF({putSortable:MT,cloneEl:NT,targetEl:CT,rootEl:ST,oldIndex:VT,oldDraggableIndex:ET,newIndex:DT,newDraggableIndex:FT},e))}var CT,xT,PT,ST,jT,kT,NT,_T,VT,DT,ET,FT,TT,MT,IT,AT,BT,LT,RT,zT,HT,WT,KT,UT,YT,$T=!1,ZT=!1,qT=[],XT=!1,GT=!1,JT=[],QT=!1,eM=[],tM="undefined"!=typeof document,nM=zF,rM=BF||AF?"cssFloat":"float",oM=tM&&!HF&&!zF&&"draggable"in document.createElement("div"),aM=function(){if(tM){if(AF)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),lM=function(e,t){var n=JF(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=oT(e,0,t),a=oT(e,1,t),l=o&&JF(o),i=a&&JF(a),u=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+nT(o).width,c=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+nT(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[rM]||a&&"none"===n[rM]&&u+c>r)?"vertical":"horizontal"},iM=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"==EF(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},uM=function(){!aM&&PT&&JF(PT,"display","none")},cM=function(){!aM&&PT&&JF(PT,"display","")};tM&&!HF&&document.addEventListener("click",function(e){if(ZT)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),ZT=!1,!1},!0);var sM=function(e){if(CT){e=e.touches?e.touches[0]:e;var t=(o=e.clientX,a=e.clientY,qT.some(function(e){var t=e[pT].options.emptyInsertThreshold;if(t&&!aT(e)){var n=nT(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[pT]._onDragOver(n)}}var o,a,l},dM=function(e){CT&&CT.parentNode[pT]._isOutsideThisEl(e.target)};function vM(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=TF({},t),e[pT]=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 lM(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!==vM.supportPointer&&"PointerEvent"in window&&(!RF||zF),emptyInsertThreshold:5};for(var r in yT.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var o in iM(t),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!t.forceFallback&&oM,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?KF(e,"pointerdown",this._onTapStart):(KF(e,"mousedown",this._onTapStart),KF(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(KF(e,"dragover",this),KF(e,"dragenter",this)),qT.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),TF(this,mT())}function fM(e,t,n,r,o,a,l,i){var u,c,s=e[pT],d=s.options.onMove;return!window.CustomEvent||AF||BF?(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||nT(t),u.willInsertAfter=i,u.originalEvent=l,e.dispatchEvent(u),d&&(c=d.call(s,u,l)),c}function pM(e){e.draggable=!1}function mM(){QT=!1}function hM(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 gM(e){return setTimeout(e,0)}function yM(e){return clearTimeout(e)}vM.prototype={constructor:vM,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(WT=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,CT):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){eM.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var r=t[n];r.checked&&eM.push(r)}}(n),!CT&&!(/mousedown|pointerdown/.test(a)&&0!==e.button||r.disabled)&&!u.isContentEditable&&(this.nativeDraggable||!RF||!i||"SELECT"!==i.tagName.toUpperCase())&&!((i=ZF(i,r.draggable,n,!1))&&i.animated||kT===i)){if(VT=lT(i),ET=lT(i,r.draggable),"function"==typeof c){if(c.call(this,e,i,this))return OT({sortable:t,rootEl:u,name:"filter",targetEl:i,toEl:n,fromEl:n}),wT("filter",t,{evt:e}),void(o&&e.preventDefault())}else if(c&&(c=c.split(",").some(function(r){if(r=ZF(u,r.trim(),n,!1))return OT({sortable:t,rootEl:r,name:"filter",targetEl:i,fromEl:n,toEl:n}),wT("filter",t,{evt:e}),!0})))return void(o&&e.preventDefault());r.handle&&!ZF(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&&!CT&&n.parentNode===a){var u=nT(n);if(ST=a,xT=(CT=n).parentNode,jT=CT.nextSibling,kT=n,TT=l.group,vM.dragged=CT,IT={target:CT,clientX:(t||e).clientX,clientY:(t||e).clientY},RT=IT.clientX-u.left,zT=IT.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,CT.style["will-change"]="all",r=function(){wT("delayEnded",o,{evt:e}),vM.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!LF&&o.nativeDraggable&&(CT.draggable=!0),o._triggerDragStart(e,t),OT({sortable:o,name:"choose",originalEvent:e}),GF(CT,l.chosenClass,!0))},l.ignore.split(",").forEach(function(e){eT(CT,e.trim(),pM)}),KF(i,"dragover",sM),KF(i,"mousemove",sM),KF(i,"touchmove",sM),l.supportPointer?(KF(i,"pointerup",o._onDrop),!this.nativeDraggable&&KF(i,"pointercancel",o._onDrop)):(KF(i,"mouseup",o._onDrop),KF(i,"touchend",o._onDrop),KF(i,"touchcancel",o._onDrop)),LF&&this.nativeDraggable&&(this.options.touchStartThreshold=4,CT.draggable=!0),wT("delayStart",this,{evt:e}),!l.delay||l.delayOnTouchOnly&&!t||this.nativeDraggable&&(BF||AF))r();else{if(vM.eventCanceled)return void this._onDrop();l.supportPointer?(KF(i,"pointerup",o._disableDelayedDrag),KF(i,"pointercancel",o._disableDelayedDrag)):(KF(i,"mouseup",o._disableDelayedDrag),KF(i,"touchend",o._disableDelayedDrag),KF(i,"touchcancel",o._disableDelayedDrag)),KF(i,"mousemove",o._delayedDragTouchMoveHandler),KF(i,"touchmove",o._delayedDragTouchMoveHandler),l.supportPointer&&KF(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(){CT&&pM(CT),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;UF(e,"mouseup",this._disableDelayedDrag),UF(e,"touchend",this._disableDelayedDrag),UF(e,"touchcancel",this._disableDelayedDrag),UF(e,"pointerup",this._disableDelayedDrag),UF(e,"pointercancel",this._disableDelayedDrag),UF(e,"mousemove",this._delayedDragTouchMoveHandler),UF(e,"touchmove",this._delayedDragTouchMoveHandler),UF(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?KF(document,"pointermove",this._onTouchMove):KF(document,t?"touchmove":"mousemove",this._onTouchMove):(KF(CT,"dragend",this),KF(ST,"dragstart",this._onDragStart));try{document.selection?gM(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if($T=!1,ST&&CT){wT("dragStarted",this,{evt:t}),this.nativeDraggable&&KF(document,"dragover",dM);var n=this.options;!e&&GF(CT,n.dragClass,!1),GF(CT,n.ghostClass,!0),vM.active=this,e&&this._appendGhost(),OT({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(AT){this._lastX=AT.clientX,this._lastY=AT.clientY,uM();for(var e=document.elementFromPoint(AT.clientX,AT.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(AT.clientX,AT.clientY))!==t;)t=e;if(CT.parentNode[pT]._isOutsideThisEl(e),t)do{if(t[pT]){if(t[pT]._onDragOver({clientX:AT.clientX,clientY:AT.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=$F(t));cM()}},_onTouchMove:function(e){if(IT){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,o=e.touches?e.touches[0]:e,a=PT&&QF(PT,!0),l=PT&&a&&a.a,i=PT&&a&&a.d,u=nM&&YT&&iT(YT),c=(o.clientX-IT.clientX+r.x)/(l||1)+(u?u[0]-JT[0]:0)/(l||1),s=(o.clientY-IT.clientY+r.y)/(i||1)+(u?u[1]-JT[1]:0)/(i||1);if(!vM.active&&!$T){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===CT)return D(!1);if(m&&a===e.target&&(l=m),l&&(n=nT(l)),!1!==fM(ST,a,CT,t,l,n,e,!!l))return V(),m&&m.nextSibling?a.insertBefore(CT,m.nextSibling):a.appendChild(CT),xT=a,E(),D(!0)}else if(m&&function(e,t,n){var r=nT(oT(n.el,0,n.options,!0)),o=fT(n.el,n.options,PT),a=10;return t?e.clientXs+c*a/2:ud-UT)return-KT}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,GT,WT===l),0!==g){var S=lT(CT);do{S-=g,b=xT.children[S]}while(b&&("none"===JF(b,"display")||b===PT))}if(0===g||b===l)return D(!1);WT=l,KT=g;var j=l.nextElementSibling,k=!1,N=fM(ST,a,CT,t,l,n,e,k=1===g);if(!1!==N)return 1!==N&&-1!==N||(k=1===N),QT=!0,setTimeout(mM,30),V(),k&&!j?a.appendChild(CT):l.parentNode.insertBefore(CT,k?j:l),x&&dT(x,0,P-x.scrollTop),xT=CT.parentNode,void 0===y||GT||(UT=Math.abs(y-nT(l)[C])),E(),D(!0)}if(a.contains(CT))return D(!1)}return!1}function _(i,u){wT(i,f,DF({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 fM(ST,a,CT,t,n,nT(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&&(GF(CT,MT?MT.options.ghostClass:c.options.ghostClass,!1),GF(CT,i.ghostClass,!0)),MT!==f&&f!==vM.active?MT=f:f===vM.active&&MT&&(MT=null),v===f&&(f._ignoreWhileAnimating=l),f.animateAll(function(){_("dragOverAnimationComplete"),f._ignoreWhileAnimating=null}),f!==v&&(v.animateAll(),v._ignoreWhileAnimating=null)),(l===CT&&!CT.animated||l===a&&!l.animated)&&(WT=null),i.dragoverBubble||e.rootEl||l===document||(CT.parentNode[pT]._isOutsideThisEl(e.target),!t&&sM(e)),!i.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),p=!0}function E(){DT=lT(CT),FT=lT(CT,i.draggable),OT({sortable:f,name:"change",toEl:a,newIndex:DT,newDraggableIndex:FT,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){UF(document,"mousemove",this._onTouchMove),UF(document,"touchmove",this._onTouchMove),UF(document,"pointermove",this._onTouchMove),UF(document,"dragover",sM),UF(document,"mousemove",sM),UF(document,"touchmove",sM)},_offUpEvents:function(){var e=this.el.ownerDocument;UF(e,"mouseup",this._onDrop),UF(e,"touchend",this._onDrop),UF(e,"pointerup",this._onDrop),UF(e,"pointercancel",this._onDrop),UF(e,"touchcancel",this._onDrop),UF(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;DT=lT(CT),FT=lT(CT,n.draggable),wT("drop",this,{evt:e}),xT=CT&&CT.parentNode,DT=lT(CT),FT=lT(CT,n.draggable),vM.eventCanceled||($T=!1,GT=!1,XT=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),yM(this.cloneId),yM(this._dragStartId),this.nativeDraggable&&(UF(document,"drop",this),UF(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),RF&&JF(document.body,"user-select",""),JF(CT,"transform",""),e&&(HT&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),PT&&PT.parentNode&&PT.parentNode.removeChild(PT),(ST===xT||MT&&"clone"!==MT.lastPutMode)&&NT&&NT.parentNode&&NT.parentNode.removeChild(NT),CT&&(this.nativeDraggable&&UF(CT,"dragend",this),pM(CT),CT.style["will-change"]="",HT&&!$T&&GF(CT,MT?MT.options.ghostClass:this.options.ghostClass,!1),GF(CT,this.options.chosenClass,!1),OT({sortable:this,name:"unchoose",toEl:xT,newIndex:null,newDraggableIndex:null,originalEvent:e}),ST!==xT?(DT>=0&&(OT({rootEl:xT,name:"add",toEl:xT,fromEl:ST,originalEvent:e}),OT({sortable:this,name:"remove",toEl:xT,originalEvent:e}),OT({rootEl:xT,name:"sort",toEl:xT,fromEl:ST,originalEvent:e}),OT({sortable:this,name:"sort",toEl:xT,originalEvent:e})),MT&&MT.save()):DT!==VT&&DT>=0&&(OT({sortable:this,name:"update",toEl:xT,originalEvent:e}),OT({sortable:this,name:"sort",toEl:xT,originalEvent:e})),vM.active&&(null!=DT&&-1!==DT||(DT=VT,FT=ET),OT({sortable:this,name:"end",toEl:xT,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){wT("nulling",this),ST=CT=xT=PT=jT=NT=kT=_T=IT=AT=HT=DT=FT=VT=ET=WT=KT=MT=TT=vM.dragged=vM.ghost=vM.clone=vM.active=null,eM.forEach(function(e){e.checked=!0}),eM.length=BT=LT=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":CT&&(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 TM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function MM(e){for(var t=1;tl?l*(a-1)+t:t}e.sortOnRowDraggable&&pi("Table","`sortOnRowDraggable` is going to be deprecated, use dragSort='row' instead.");var C=function(t,n){var r=MM({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&&(IM(t.item),AM(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=pF(m.value,s.dataset.colkey),f=pF(m.value,d.dataset.colkey);v&&v.colKey||pi("Table","colKey is missing in ".concat(JSON.stringify(v))),f&&f.colKey||pi("Table","colKey is missing in ".concat(JSON.stringify(f))),u=mF(e.columns,v.colKey),c=mF(e.columns,f.colKey);var p={data:m.value,currentIndex:u,current:v,targetIndex:c,target:f,newData:FM(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 vM(t,r)},x=function(e){if(w.value&&e){var t=e.querySelectorAll("thead > tr");if(t.length<=1){var n=Ya(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=Ya(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=MM({animation:150,ghostClass:d.ghost,chosenClass:d.chosen,dragClass:d.dragging,filter:".".concat(f.base,",.").concat(p.row),onMove:function(e){return!fl(e.related,f.base)},onEnd:function(r){var o;if(r.newIndex!==r.oldIndex){IM(r.item),AM(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:FM(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 vM(a,MM({},l)):new vM(a,MM(MM({},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 LM(e){return Ka(e)||a(e)||l(e)||Ua()}function RM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function zM(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=jt(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]=Ir(t)),Object.entries(n).forEach(function(t){var n=Ya(t,2),r=n[0],o=n[1];Ma(i.value[e],r,o)})},getEditRowData:function(t){var n,r=t.row,o=t.col,a=jt(r,e.rowKey||"id"),l=i.value[a];if(l&&null!==(n=e.editableRowKeys)&&void 0!==n&&n.includes(a)){var u=KM({},l);return Ma(u,o.colKey,jt(l,o.colKey)),u}return r},onPrimaryTableCellEditChange:function(t){var n=TE(t.row,e.rowKey,t.col.colKey,t.colIndex);t.isEdit?l.value[n]=t:delete l.value[n]}}}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;t1&&void 0!==arguments[1]&&arguments[1],a=[],l=function(){var l,c,s,d,f,m=$M({},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=I(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=yE(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=$M($M({},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=jt(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(HM,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=jt(e,t);return n||r?"".concat(o,"_").concat(n||0,"_").concat(r||0,"}"):o}var nI=function(){return Ti(function e(){Mi(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=jt(r.parent.row,n.childrenKey),l=a.findIndex(function(t){return jt(t,n.rowKey)===e});a.splice(l,1),rI(this.treeDataMap,r.parent.row,-1*o,"delete",n)}this.treeDataMap.delete(e),iI(this.treeDataMap,t,{minRowIndex:r.rowIndex,rowKey:n.rowKey,type:"remove"})}else vi("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&&rI(this.treeDataMap,r.parent.row,-1*o,"delete",n),r.expandChildrenLength=0,r.expanded=!1,Ma(r.row,n.childrenKey,void 0),this.treeDataMap.set(e,r),o&&iI(this.treeDataMap,t,{minRowIndex:r.rowIndex+1,rowKey:n.rowKey,type:"remove"})}else vi("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=jt(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))),iI(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))),iI(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=jt(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 tI(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=Ya(e,1)[0],l=Ya(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=cI({type:"user-reaction-change"},t);var c=tI(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=vI({},m.value);return o.cell=function(o,a){var l,i,d=RE(vI(vI({},a),{},{col:vI({},m.value)}),n.slots,{cellEmptyContent:e.cellEmptyContent}),h=p.value.treeDataMap.get(jt(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=jt(a.row,b.value.childrenKey);if(C&&C instanceof Array||!0===C){var x,P=null!==(x=p.value.treeDataMap.get(jt(a.row,b.value.rowKey)))&&void 0!==x&&x.expanded?(l=vI(vI({},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=vI(vI({},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 RE(vI(vI({},t),{},{col:vI({},m.value)}),n.slots)}),o},toggleExpandData:function(t,n){var r,o,a=vI({},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=jt(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:S,getTreeNode:function(){return p.value.getTreeNode(h.value,b.value)},resetData:_,getTreeExpandedRow:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"data";return p.value.getTreeExpandedRow(h.value,b.value,e)},onExpandFoldIconClick:k}}function pI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function mI(e){for(var t=1;t0&&v=0?e.rowIndex:e.rowIndex<0?w(e.parent):void 0:-1};return n.expose(OI(OI({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 pi("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)&&pi("Table","".concat(e.key," does not exist in data, check `rowKey` or `data` please."))}r.value.scrollToElement(OI(OI({},e),{},{index:t}))}})),function(){var o,a=OI(OI({},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=jt(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(qM,t.mergeProps(a,{ref:r}),n.slots)}}}),xI=Nl(oF),PI=Nl(qM),SI=Nl(CI),jI=Nl(Ir(qM),"TTable"),kI={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)}}},NI={vertical:["left","right"],horizontal:["top","bottom"]},_I=Symbol("timeLineProvide"),VI=t.computed(function(){return{theme:"default",reverse:!1,itemsStatus:[],layout:"horizontal",renderAlign:"left",mode:"alternate"}}),DI={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 EI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function FI(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])}}}),zI={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 HI=t.defineComponent({name:"TCollapsePanel",props:zI,setup:function(e,n){var r=n.slots,o=Rl(),a=Hl(),l=ei("collapse-panel"),i=ei("is-disabled"),u=ei("is-clickable"),c=ei("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 S={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}},j=S.beforeEnter,k=S.enter,N=S.afterEnter,_=S.beforeLeave,V=S.leave,D=S.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}),M=t.computed(function(){return[l.value,s({},i.value,F.value)]}),I=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===I.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(Hy,{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:M.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:j,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]}}))])])}}}),WI=Nl(RI),KI=Nl(HI),UI={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 YI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $I(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 qI(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(Wc,null,null)}:function(){return t.createVNode(Ls,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(Kg,t.mergeProps(o,{content:d.value}),{default:function(){return[t.createVNode(Iu,{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),nA("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(aA,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 iA=t.defineComponent({name:"TTypography",setup:function(){var e=Rl();return function(){var n,r;return t.createVNode(lA,null,"function"==typeof(r=n=e("default"))||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}})}}}),uA={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)}}};function cA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sA(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 CA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n31||e>>>t!==0)throw new RangeError("Value out of range");for(var r=t-1;r>=0;r--)n.push(e>>>r&1)}function PA(e,t){return!!(e>>>t&1)}function SA(e){if(!e)throw new Error("Assertion error")}var jA=function(){return Ti(function e(t,n){Mi(this,e),s(this,"modeBits",void 0),s(this,"numBitsCharCount",void 0),this.modeBits=t,this.numBitsCharCount=n},[{key:"numCharCountBits",value:function(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}}])}();s(jA,"NUMERIC",new(fA=jA)(1,[10,12,14])),s(jA,"ALPHANUMERIC",new fA(2,[9,11,13])),s(jA,"BYTE",new fA(4,[8,16,16])),s(jA,"KANJI",new fA(8,[8,10,12])),s(jA,"ECI",new fA(7,[0,0,0]));var kA=Ti(function e(t,n){Mi(this,e),s(this,"ordinal",void 0),s(this,"formatBits",void 0),this.ordinal=t,this.formatBits=n});s(kA,"LOW",new(pA=kA)(0,1)),s(kA,"MEDIUM",new pA(1,0)),s(kA,"QUARTILE",new pA(2,3)),s(kA,"HIGH",new pA(3,2));var NA=function(){function e(t,n,r){if(Mi(this,e),s(this,"mode",void 0),s(this,"numChars",void 0),s(this,"bitData",void 0),this.mode=t,this.numChars=n,this.bitData=r,n<0)throw new RangeError("Invalid argument");this.bitData=r.slice()}return Ti(e,[{key:"getData",value:function(){return this.bitData.slice()}}],[{key:"makeBytes",value:function(t){var n,r=[],o=OA(t);try{for(o.s();!(n=o.n()).done;){xA(n.value,8,r)}}catch(e){o.e(e)}finally{o.f()}return new e(jA.BYTE,t.length,r)}},{key:"makeNumeric",value:function(t){if(!e.isNumeric(t))throw new RangeError("String contains non-numeric characters");for(var n=[],r=0;r=1<e.MAX_VERSION)throw new RangeError("Version value out of range");if(a<-1||a>7)throw new RangeError("Mask value out of range");this.size=4*t+17;for(var l=[],i=0;i=0&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}return Ti(e,[{key:"getModule",value:function(e,t){return e>=0&&e=0&&t>>9);var o=21522^(t<<10|n);SA(o>>>15==0);for(var a=0;a<=5;a++)this.setFunctionModule(8,a,PA(o,a));this.setFunctionModule(8,7,PA(o,6)),this.setFunctionModule(8,8,PA(o,7)),this.setFunctionModule(7,8,PA(o,8));for(var l=9;l<15;l++)this.setFunctionModule(14-l,8,PA(o,l));for(var i=0;i<8;i++)this.setFunctionModule(this.size-1-i,8,PA(o,i));for(var u=8;u<15;u++)this.setFunctionModule(8,this.size-15+u,PA(o,u));this.setFunctionModule(8,this.size-8,!0)}},{key:"drawVersion",value:function(){if(!(this.version<7)){for(var e=this.version,t=0;t<12;t++)e=e<<1^7973*(e>>>11);var n=this.version<<12|e;SA(n>>>18==0);for(var r=0;r<18;r++){var o=PA(n,r),a=this.size-11+r%3,l=Math.floor(r/3);this.setFunctionModule(a,l,o),this.setFunctionModule(l,a,o)}}}},{key:"drawFinderPattern",value:function(e,t){for(var n=-4;n<=4;n++)for(var r=-4;r<=4;r++){var o=Math.max(Math.abs(r),Math.abs(n)),a=e+r,l=t+n;a>=0&&a=0&&l=i)&&m.push(t[e])})},g=0;g=1;r-=2){6===r&&(r=5);for(var o=0;o>>3],7-(7&n)),n++)}}SA(n===8*t.length)}},{key:"applyMask",value:function(e){if(e<0||e>7)throw new RangeError("Mask value out of range");for(var t=0;t5&&t++:(this.finderPenaltyAddHistory(o,a),r||(t+=this.finderPenaltyCountPatterns(a)*e.PENALTY_N3),r=this.modules[n][l],o=1);t+=this.finderPenaltyTerminateAndCount(r,o,a)*e.PENALTY_N3}for(var i=0;i5&&t++:(this.finderPenaltyAddHistory(c,s),u||(t+=this.finderPenaltyCountPatterns(s)*e.PENALTY_N3),u=this.modules[d][i],c=1);t+=this.finderPenaltyTerminateAndCount(u,c,s)*e.PENALTY_N3}for(var v=0;v=0&&b<=9),SA((t+=b*e.PENALTY_N4)>=0&&t<=2568888),t}},{key:"getAlignmentPatternPositions",value:function(){if(1===this.version)return[];for(var e=Math.floor(this.version/7)+2,t=32===this.version?26:2*Math.ceil((4*this.version+4)/(2*e-2)),n=[6],r=this.size-7;n.length0&&e[2]===t&&e[3]===3*t&&e[4]===t&&e[5]===t;return(n&&e[0]>=4*t&&e[6]>=t?1:0)+(n&&e[6]>=4*t&&e[0]>=t?1:0)}},{key:"finderPenaltyTerminateAndCount",value:function(e,t,n){var r=t;return e&&(this.finderPenaltyAddHistory(r,n),r=0),r+=this.size,this.finderPenaltyAddHistory(r,n),this.finderPenaltyCountPatterns(n)}},{key:"finderPenaltyAddHistory",value:function(e,t){var n=e;0===t[0]&&(n+=this.size),t.pop(),t.unshift(n)}}],[{key:"encodeText",value:function(t,n){var r=NA.makeSegments(t);return e.encodeSegments(r,n)}},{key:"encodeBinary",value:function(t,n){var r=NA.makeBytes(t);return e.encodeSegments([r],n)}},{key:"encodeSegments",value:function(t,n){var r,o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:40,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1,u=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];if(!(e.MIN_VERSION<=a&&a<=l&&l<=e.MAX_VERSION)||i<-1||i>7)throw new RangeError("Invalid value");for(r=a;;r++){var c=8*e.getNumDataCodewords(r,n),s=NA.getTotalBits(t,r);if(s<=c){o=s;break}if(r>=l)throw new RangeError("Data too long")}for(var d=n,v=0,f=[kA.MEDIUM,kA.QUARTILE,kA.HIGH];v>>3]|=e<<7-(7&t)}),new e(r,d,P,i)}},{key:"getNumRawDataModules",value:function(t){if(te.MAX_VERSION)throw new RangeError("Version number out of range");var n=(16*t+128)*t+64;if(t>=2){var r=Math.floor(t/7)+2;n-=(25*r-10)*r-55,t>=7&&(n-=36)}return SA(n>=208&&n<=29648),n}},{key:"getNumDataCodewords",value:function(t,n){return Math.floor(e.getNumRawDataModules(t)/8)-e.ECC_CODEWORDS_PER_BLOCK[n.ordinal][t]*e.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][t]}},{key:"reedSolomonComputeDivisor",value:function(t){if(t<1||t>255)throw new RangeError("Degree out of range");for(var n=[],r=0;r>>8!=0||t>>>8!=0)throw new RangeError("Byte out of range");for(var n=0,r=7;r>=0;r--)n=n<<1^285*(n>>>7),n^=(t>>>r&1)*e;return SA(n>>>8==0),n}}])}();s(_A,"MIN_VERSION",1),s(_A,"MAX_VERSION",40),s(_A,"PENALTY_N1",3),s(_A,"PENALTY_N2",3),s(_A,"PENALTY_N3",40),s(_A,"PENALTY_N4",10),s(_A,"ECC_CODEWORDS_PER_BLOCK",[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]]),s(_A,"NUM_ERROR_CORRECTION_BLOCKS",[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]]);var VA={L:kA.LOW,M:kA.MEDIUM,Q:kA.QUARTILE,H:kA.HIGH},DA=!1,EA=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=[];return e.forEach(function(e,r){var o=null;e.forEach(function(a,l){if(!a&&null!==o)return n.push("M".concat(o+t," ").concat(r+t,"h").concat(l-o,"v1H").concat(o+t,"z")),void(o=null);if(l!==e.length-1)a&&null===o&&(o=l);else{if(!a)return;null===o?n.push("M".concat(l+t,",").concat(r+t," h1v1H").concat(l+t,"z")):n.push("M".concat(o+t,",").concat(r+t," h").concat(l+1-o,"v1H").concat(o+t,"z"))}})}),n.join("")},FA=function(e,t){return e.slice().map(function(e,n){return n=t.y+t.h?e:e.map(function(e,n){return(n=t.x+t.w)&&e})})},TA=function(){try{(new Path2D).addPath(new Path2D)}catch(e){return!1}return!0}(),MA={value:{type:String,default:""},size:{type:Number,default:128},level:{type:String,default:"L"},bgColor:{type:String,default:"#FFFFFF"},fgColor:{type:String,default:"#000000"},style:{type:Object,default:function(){return{}}},includeMargin:{type:Boolean,default:!1},marginSize:{type:Number,default:0},imageSettings:{type:Object,default:function(){return{}}},title:{type:String,default:""},minVersion:{type:Number,default:1}},IA={locale:{type:Object,default:function(){return{}}},onRefresh:{type:Function},statusRender:{type:Function},status:{type:String,default:"active"}},AA=function(e){var n=e.value,r=e.level,o=e.minVersion,a=e.includeMargin,l=e.marginSize,i=e.imageSettings,u=e.size,c=t.computed(function(){var e=NA.makeSegments(n);return _A.encodeSegments(e,VA[r],o)}),s=t.computed(function(){return c.value.getModules()}),d=t.computed(function(){return function(e,t){return null!=t?Math.max(Math.floor(t),0):e?4:0}(a,l)}),v=t.computed(function(){return function(e,t,n,r){if(null==r)return null;var o=e.length+2*n,a=Math.floor(.1*t),l=o/t,i=(r.width||a)*l,u=(r.height||a)*l,c=null==r.x?e.length/2-i/2:r.x*l,s=null==r.y?e.length/2-u/2:r.y*l,d=null==r.opacity?1:r.opacity,v=null;if(r.excavate){var f=Math.floor(c),p=Math.floor(s);v={x:f,y:p,w:Math.ceil(i+c-f),h:Math.ceil(u+s-p)}}return{x:c,y:s,h:u,w:i,excavation:v,opacity:d,crossOrigin:r.crossOrigin}}(s.value,u,d.value,i)});return{cells:s,margin:d,numCells:t.computed(function(){return s.value.length+2*d.value}),calculatedImageSettings:v,qrcode:c}},BA=t.defineComponent({name:"QRCodeCanvas",props:MA,setup:function(e){var n=t.computed(function(){var t;return null===(t=e.imageSettings)||void 0===t?void 0:t.src}),r=t.ref(null),o=t.ref(null),a=t.ref(""),l=function(){var n,l=AA({value:e.value,level:e.level,minVersion:1,includeMargin:DA,marginSize:e.marginSize,imageSettings:e.imageSettings,size:e.size}),i=l.margin,u=l.cells,c=l.numCells,s=l.calculatedImageSettings;if(o.value){var d=o.value,v=d.getContext("2d");if(v){a.value=null===(n=s.value)||void 0===n?void 0:n.crossOrigin;var f=u,p=r.value;p&&(p.crossOrigin=s.value.crossOrigin);var m=s.value&&null!==p&&p.complete&&0!==p.naturalHeight&&0!==p.naturalWidth;m&&null!=s.value.excavation&&(f=t.computed(function(){return FA(u.value,s.value.excavation)}));var h=window.devicePixelRatio||1;d.height=e.size*h,d.width=e.size*h;var g=e.size/c.value*h;v.scale(g,g),v.fillStyle=e.bgColor,v.fillRect(0,0,c.value,c.value),v.fillStyle=e.fgColor,TA?v.fill(new Path2D(EA(f.value,i.value))):u.value.forEach(function(e,t){e.forEach(function(e,n){e&&v.fillRect(n+i.value,t+i.value,1,1)})}),s&&(v.globalAlpha=s.value.opacity),m&&(v.globalAlpha=s.value.opacity,v.drawImage(p,s.value.x+i.value,s.value.y+i.value,s.value.w,s.value.h))}}};return t.watchEffect(function(){l()}),t.onMounted(function(){l()}),function(){return t.createVNode(t.Fragment,null,[t.createVNode("canvas",{ref:o,role:"img"},null),null!=n.value?t.createVNode("img",{ref:r,onLoad:l,style:{display:"none"},src:n.value},null):null])}}}),LA=t.defineComponent({name:"QRCodeSVG",props:MA,setup:function(e){var n=t.computed(function(){return AA({value:e.value,level:e.level,minVersion:1,includeMargin:DA,marginSize:e.marginSize,imageSettings:e.imageSettings,size:e.size})}),r=t.computed(function(){var t,r=n.value,o=r.cells,a=r.calculatedImageSettings;return e.imageSettings&&null!=(null===(t=a.value)||void 0===t?void 0:t.excavation)?FA(o.value,a.value.excavation):o.value}),o=t.computed(function(){var r=n.value,o=r.calculatedImageSettings,a=r.margin;return e.imageSettings&&o.value?t.createVNode("image",{href:e.imageSettings.src,height:o.value.h,width:o.value.w,x:o.value.x+a.value,y:o.value.y+a.value,crossOrigin:o.value.crossOrigin},null):null});return function(){var a=n.value,l=a.margin,i=a.numCells,u=EA(r.value,l.value);return t.createVNode("svg",{height:e.size,width:e.size,viewBox:"0 0 ".concat(i.value," ").concat(i.value),role:"img",style:e.style},[!!e.title&&t.createVNode("title",null,[e.title]),t.createVNode("path",{fill:e.bgColor,d:"M0,0 h".concat(i.value,"v").concat(i.value,"H0z"),"shape-rendering":"crispEdges"},null),t.createVNode("path",{fill:e.fgColor,d:u,"shape-rendering":"crispEdges"},null),o.value])}}}),RA=t.defineComponent({name:"QRCodeStatus",props:IA,setup:function(e){var n,r=ei(),o=t.createVNode(Du,{size:"32px"},null),a=t.computed(function(){var n,o;return t.createVNode(t.Fragment,null,[t.createVNode("p",{class:"".concat(r.value,"-expired__text")},[null===(n=e.locale)||void 0===n?void 0:n.expiredText]),(null==e?void 0:e.onRefresh)&&t.createVNode("p",{class:"".concat(r.value,"-expired__button"),onClick:null==e?void 0:e.onRefresh},[t.createVNode(zv,{size:"16"},null),null===(o=e.locale)||void 0===o?void 0:o.refreshText])])}),l=t.createVNode("p",{class:"".concat(r.value,"-scanned")},[t.createVNode(Bc,{size:"16",class:"".concat(r.value,"-scanned__icon")},null),null===(n=e.locale)||void 0===n?void 0:n.scannedText]),i=t.computed(function(){return{expired:a.value,loading:o,scanned:l,active:null}});return function(){return t.createVNode(t.Fragment,null,[e.statusRender||(n={status:e.status,onRefresh:e.onRefresh},i.value[n.status])]);var n}}}),zA=t.defineComponent({name:"TQRCode",props:wA,setup:function(e){var n=ei(),r=Rl(),o=Jl("qrcode").globalConfig,a=su({themeFgColor:"--td-text-color-primary",themeBgColor:"--td-bg-color-specialcomponent"}),l=a.themeFgColor,i=a.themeBgColor,u=t.computed(function(){return e.bgColor||i.value||"transparent"}),c=t.computed(function(){return e.color||l.value||"#000000"});if(!e.value)return null;var d=t.computed(function(){var t,n,r,o;return{src:e.icon,x:void 0,y:void 0,height:Uo(e.iconSize)?e.iconSize:null!==(t=null===(n=e.iconSize)||void 0===n?void 0:n.height)&&void 0!==t?t:40,width:Uo(e.iconSize)?e.iconSize:null!==(r=null===(o=e.iconSize)||void 0===o?void 0:o.width)&&void 0!==r?r:40,excavate:!0,crossOrigin:"anonymous"}}),v=t.computed(function(){return["".concat(n.value,"-qrcode"),s(s({},"".concat(n.value,"-borderless"),e.borderless),"".concat(n.value,"-qrcode-svg"),"svg"===e.type)]}),f=t.computed(function(){return{backgroundColor:u.value,width:"".concat(e.size,"px"),height:"".concat(e.size,"px")}});return function(){var a={value:e.value,size:e.size,bgColor:u.value,fgColor:c.value,imageSettings:e.icon?d.value:void 0,level:e.level};return t.createVNode("div",t.mergeProps({class:v.value,style:f.value},{level:e.level}),["active"!==e.status&&t.createVNode("div",{class:["".concat(n.value,"-mask"),s({},"".concat(n.value,"-").concat(e.status),"loading"!==e.status)]},[t.createVNode(RA,{locale:o.value,status:e.status,onRefresh:e.onRefresh,statusRender:r("statusRender",{params:{status:e.status,onRefresh:e.onRefresh}})},null)]),"canvas"===e.type?t.createVNode(BA,t.mergeProps(a,{size:e.size}),null):t.createVNode(LA,t.mergeProps(a,{size:e.size}),null)])}}}),HA=Nl(zA,"TQrcode"),WA={close:{type:[String,Boolean,Function],default:!1},closeBtn:{type:[String,Boolean,Function],default:!1},default:{type:[String,Function]},icon:{type:Function},maxLine:{type:Number,default:0},message:{type:[String,Function]},operation:{type:Function},theme:{type:String,default:"info",validator:function(e){return!e||["success","info","warning","error"].includes(e)}},title:{type:[String,Function]},onClose:Function,onClosed:Function},KA=t.defineComponent({name:"TAlert",props:WA,setup:function(e,n){var r=n.slots,o=t.getCurrentInstance(),a=Jl("alert"),l=a.globalConfig,i=a.classPrefix,u=si({CheckCircleFilledIcon:Bc,CloseIcon:Ts,ErrorCircleFilledIcon:sd,HelpCircleFilledIcon:tv,InfoCircleFilledIcon:hv}),c=u.CheckCircleFilledIcon,d=u.CloseIcon,v=u.ErrorCircleFilledIcon,f=u.HelpCircleFilledIcon,p=u.InfoCircleFilledIcon,m=ei("alert"),h=Rl(),g=function(){var e=t.getCurrentInstance();return function(n,r){var o;if(H(e.props[n]))o=e.props[n](t.h);else if(e.slots[n])o=e.slots[n]&&e.slots[n](null)[0];else if(r){var a=r[e.props.theme];o=t.createVNode(a,null,null)}return o}}(),y=t.ref(null),b=t.ref(null),w=t.ref(0),O=t.ref(!0),C=t.ref(!0),x=function(){var n=e.closeBtn,a=Object.prototype.hasOwnProperty.call(o.vnode.props||{},"close")||r.close,l=a?e.close:n;a&&fi("TAlert","prop `close` is going to be deprecated, please use `closeBtn` instead.");var i=null;return(i=!0===l||""===l?t.createVNode(d,null,null):To(l)?l:h(a?"close":"closeBtn"))?t.createVNode("div",{class:"".concat(m.value,"__close"),onClick:j},[i]):null},P=function(){var n,r=h("default")||h("message");S(r)&&(r=r.filter(function(e){return!kl(e)}));var o=S(r)?r.length:1,a=e.maxLine>0&&e.maxLinedocument.documentElement.clientWidth?AV():0;a.value=document.createElement("style"),a.value.dataset.id="td_drawer_".concat(+new Date,"_").concat(GA+=1),a.value.innerHTML="\n html body {\n overflow-y: hidden;\n transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;\n ".concat("push"===e.mode?"":"width: calc(100% - ".concat(t,"px);"),"\n }\n ")}}(),a.value&&!document.head.contains(a.value)&&document.head.appendChild(a.value))};t.watch(function(){return e.visible},function(t){if(!sl){var n,a;if(t)M(),null===(n=e.onBeforeOpen)||void 0===n||n.call(e);else F(),null===(a=e.onBeforeClose)||void 0===a||a.call(e);!function(t){if(t&&(b.value=!0),!e.destroyOnClose)return r.value&&t?(r.value=!1,void setTimeout(function(){return o.value=!0})):void setTimeout(function(){return o.value=t});t?(r.value=!1,setTimeout(function(){return o.value=!0})):(o.value=!1,r.value&&(r.value=!1),setTimeout(function(){return r.value=!0},300))}(t)}},{immediate:!0});var I=function(t){var n;null===(n=e.onCloseBtnClick)||void 0===n||n.call(e,{e:t}),B({trigger:"close-btn",e:t})},A=function(t){var n,r;null===(n=e.onOverlayClick)||void 0===n||n.call(e,{e:t}),(null!==(r=e.closeOnOverlayClick)&&void 0!==r?r:i.value.closeOnOverlayClick)&&B({trigger:"overlay",e:t})},B=function(t){var r;null===(r=e.onClose)||void 0===r||r.call(e,t),n.emit("update:visible",!1)};t.onUpdated(function(){if(_.value&&"push"===e.mode){var t={left:{name:"margin-left",value:j.value},right:{name:"margin-right",value:"-".concat(j.value)},top:{name:"margin-top",value:j.value},bottom:{name:"margin-bottom",value:"-".concat(j.value)}}[e.placement];o.value?_.value.style.setProperty(t.name,t.value):_.value.style.removeProperty(t.name)}}),t.onMounted(function(){M(),window.addEventListener("keydown",E)}),t.onBeforeUnmount(function(){F(),window.removeEventListener("keydown",E)});var L=t.computed(function(){return b.value?o.value||!r.value:!e.lazy});return function(){if(L.value){var r,o,a=d("body","default"),l=c("header"),s=(r=C({confirmBtn:e.confirmBtn,globalConfirm:i.value.confirm,className:"".concat(v.value,"__confirm")}),o=x({cancelBtn:e.cancelBtn,globalCancel:i.value.cancel,className:"".concat(v.value,"__cancel")}),t.createVNode("div",{style:D.value},["right"===e.placement?r:null,o,"right"!==e.placement?r:null]));return t.createVNode(t.Teleport,{disabled:!e.attach||!w.value,to:w.value},{default:function(){return[t.createVNode("div",t.mergeProps({ref:P,class:S.value,style:{zIndex:e.zIndex},onKeydown:E,tabindex:0},n.attrs),[e.showOverlay&&t.createVNode("div",{class:"".concat(v.value,"__mask"),onClick:A},null),t.createVNode("div",{class:N.value,style:XA(XA({},k.value),g.value)},[l&&t.createVNode("div",{class:"".concat(v.value,"__header")},[l]),e.closeBtn&&t.createVNode("div",{class:"".concat(v.value,"__close-btn"),onClick:I},[c("closeBtn",t.createVNode(u,null,null))]),t.createVNode("div",{class:["".concat(v.value,"__body"),"narrow-scrollbar"]},[a]),e.footer&&t.createVNode("div",{class:"".concat(v.value,"__footer")},[c("footer",s)]),e.sizeDraggable&&t.createVNode("div",{style:h.value,onMousedown:m},null)])])]}})}}}});function QA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function eB(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)},I=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=jl(),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=Pl(t,"position");return"body"!==t.tagName.toLowerCase()&&"relative"===d||"sticky"===d?{top:l-c,left:i-s}:Sl(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=jl();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")});Hi(e,s)},A=function(){t.nextTick(function(){var e;C.value=function(e){if(!e)return document.body;var t,n=null;if(To(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&&(aB(C.value),I(w.value),I(O.value,!0),lB(C.value),null===(e=S.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,aB(C.value),I(w.value),lB(C.value)})),T.value=!0},z=function(t){var n,r=k.value;j.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;j.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=ei("notification-list"),a=e.placement,l=t.ref([]),i=t.ref([]),u=t.computed(function(){return OB({zIndex:6e3},vB[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:dB};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(bB,t.mergeProps({ref:v,key:e.id,style:d(e)},function(e,t){return OB(OB({},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 xB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function PB(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.value.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(Iu,{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(Iu,{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(Iu,{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(Iu,{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 WB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function KB(e){for(var t=1;t=xi.KB&&c=xi.MB&&c=xi.GB?"".concat((c/xi.GB).toFixed(1)," GB"):"")]),t.createVNode("td",null,[M(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?Si.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(A_,{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(Iu,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(Iu,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(iD,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 qB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function XB(e){for(var t=1;tt*xi[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 rL(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 oL(e){var t=e.action,n=e.toUploadFiles,r=e.requestMethod;return new Promise(function(o){if(!t&&!r)return pi("Upload","one of action and requestMethod must be exist."),void o({});if(!n||!n.length)return vi("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)||vi("Upload","`requestMethodResponse.response.url` or `requestMethodResponse.response.files` is required if `status` is `success`"),!0):(pi("Upload","`requestMethodResponse.status` must be `success` or `fail`, examples `{ status: 'success', response: { url: '' } }`"),!1):(pi("Upload","`requestMethodResponse.status` is missing, which value only can be `success` or `fail`"),!1):(pi("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 tL(tL(tL({},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)||Pi()}),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,S=e.onError,j=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=_,j({percent:_,file:m||N[0],files:N.map(function(e){return QB(QB({},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){S({event:e,file:m,files:N,XMLHttpRequest:V}),clearInterval(n),clearTimeout(r)},V.ontimeout=function(e){S({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 QB(QB({},e),{},{percent:_})});j({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 S({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,pi("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)||Pi()}),"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=rL(tL(tL({},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=rL(tL(tL({},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&&pi("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}}(tL(tL({},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 aL(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 oL(tL(tL({},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 oL(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=n,o=function(){var n=t[a],o=e.findIndex(function(e){return e.raw&&e.raw===n.raw||e.name&&e.name===n.name}),l=o>=0?tL(tL({},e[o]),n):n;r.push(l)},a=0,l=t.length;a2&&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)),tL({raw:e,lastModified:e.lastModified,name:e.name,size:e.size,type:e.type,percent:r,status:n},o)})}function iL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function uL(e){for(var t=1;tr&&(u=!0)}var s,d=lL(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){nL(t,{beforeUpload:e.beforeUpload,sizeLimit:e.sizeLimit}).then(function(e){var r=Ya(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=LM(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=lL(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?M(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 M(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=[],aL({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 I(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","/* 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 * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\nfunction baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n}\n\nexport default baseInRange;\n","import baseInRange from './_baseInRange.js';\nimport toFinite from './toFinite.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\nfunction inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n}\n\nexport default inRange;\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 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 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 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","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 baseIteratee from './_baseIteratee.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nexport default uniqBy;\n","import toString from './toString.js';\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nexport default uniqueId;\n","import arrayFilter from './_arrayFilter.js';\nimport baseRest from './_baseRest.js';\nimport baseXor from './_baseXor.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\nvar xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n});\n\nexport default xorWith;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nexport default baseXor;\n","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 };","// 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, isVNode, Comment } from 'vue';\nimport raf from 'raf';\nimport { isArray, isString, isFunction } from 'lodash-es';\n\nimport { easeInOutCubic, EasingFunction } from '@tdesign/common-js/utils/easing';\nimport { ScrollContainer, ScrollContainerElement } from '../../components/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\n/**\n * 判断一个 VNode 是否是注释节点(Comment)\n * Vue 3 中注释节点的 type 是 Comment\n *\n * @param node - 任意节点\n * @returns 是否为注释类型的 VNode\n */\nexport const isCommentVNode = (node: unknown): node is VNode => {\n return isVNode(node) && node.type === Comment;\n};\n","import { App, Plugin, Component, Directive } from 'vue';\n\nexport function 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","import { VNode, isVNode, Fragment } from 'vue';\nimport { isArray, isString, isObject } from 'lodash-es';\n\n// TODO:PAOPAO move? i have no idea\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 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\n// TODO:PAOPAO looks like a common util??\nexport function getParams(options?: OptionsType) {\n // TODO:PAOPAO in ??? in my view, it is better to use hasOwnProperty instead of in if it is not necessary.\n return isObject(options) && 'params' in options ? options.params : {};\n}\n\n// TODO:PAOPAO as above\n// and only hooks tnode import this one, so, can we move it to tnode hooks directly????\nexport function getSlotFirst(options?: OptionsType): boolean {\n return isObject(options) && 'slotFirst' in options ? options.slotFirst : false;\n}\n","import {\n Slots,\n VNode,\n Component,\n getCurrentInstance,\n Fragment,\n Comment,\n RendererNode,\n VNodeArrayChildren,\n RendererElement,\n VNodeChild,\n isVNode,\n Teleport,\n} from 'vue';\nimport { isArray } from 'lodash-es';\nimport { getChildren } from '@tdesign/shared-utils';\n\n/**\n * 渲染default slot,获取子组件VNode。处理多种子组件创建场景\n * 使用场景: , \n * @returns {function(childComponentName: string, slots: Slots): VNode[]}\n * @param childComponentName\n * @param slots\n * @example const getChildByName = useChildComponentSlots()\n * @example getChildComponentByName('TStepItem')\n */\nexport function useChildComponentSlots() {\n const instance = getCurrentInstance();\n return (childComponentName: string, slots?: Slots): VNode[] => {\n if (!slots) {\n slots = instance.slots;\n }\n const content = slots?.default?.() || [];\n\n return getChildren(content).filter((item: VNode) =>\n (item.type as Component).name?.endsWith(childComponentName),\n ) as VNode[];\n };\n}\n\n/**\n * 渲染default slot,获取slot child\n * @param childComponentName\n * @param slots\n * @example const getChildSlots = useChildSlots()\n * @example getChildSlots()\n */\nexport function useChildSlots(): () => (\n | VNode<\n RendererNode,\n RendererElement,\n {\n [key: string]: any;\n }\n >\n | VNodeArrayChildren\n | VNodeChild\n)[] {\n const instance = getCurrentInstance();\n return () => {\n const { slots } = instance;\n const content = slots?.default?.() || [];\n\n return content\n .filter((item) => {\n if (typeof item.type === 'symbol' && !item.children) {\n return false;\n }\n return item.type !== Comment;\n })\n .map((item) => {\n if (item.children && isArray(item.children) && item.type === Fragment) return item.children;\n return item;\n })\n .flat();\n };\n}\n\n/**\n * 递归展开所有 Fragment,并跳过 Comment 节点,返回一维 VNodeChild 数组\n * @example const useFlatChildrenSlots = useFlatChildrenSlotsHook()\n * @example useFlatChildrenSlots(children)\n */\nexport function useFlatChildrenSlots() {\n function getFlatChildren(children: VNodeChild[]): VNodeChild[] {\n const result: VNodeChild[] = [];\n children.forEach((child) => {\n if (isVNode(child) && child.type === Fragment && Array.isArray(child.children)) {\n result.push(...getFlatChildren(child.children as VNodeChild[]));\n } else if (isVNode(child) && [Teleport, Comment].some((vNode) => vNode === child.type)) {\n // skip Teleport and Comment\n } else {\n result.push(child);\n }\n });\n return result;\n }\n return getFlatChildren;\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, getCurrentInstance, ComponentInternalInstance, VNode } from 'vue';\nimport { camelCase, kebabCase, isFunction } from 'lodash-es';\n\nimport {\n getDefaultNode,\n getParams,\n OptionsType,\n JSXRenderContext,\n getSlotFirst,\n isCommentVNode,\n} from '@tdesign/shared-utils';\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) => !isCommentVNode(t)).length) return node;\n // 检查是否存在 中划线命名 的插槽\n node = instance.slots[kebabCase(name)]?.(params);\n if (node && node.filter((t) => !isCommentVNode(t)).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 // 如果该属性的类型有多种且包含 Boolean 和 Slot 的情况下,处理 boolean casting true 的场景\n // https://vuejs.org/guide/components/props.html#boolean-casting\n const types = instance.type.props[name]?.type;\n if (types?.length > 1) {\n if (types.includes(Boolean) && types.includes(Function)) {\n if (propsNode === '' && !renderSlot) return defaultNode;\n }\n }\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\n/**\n * 过滤掉注释节点。\n *\n * @param nodes - VNode 数组\n * @returns 去除注释节点后的 VNode 数组。\n */\nexport const filterCommentNode = (nodes: VNode[]): VNode[] => {\n return nodes.filter((node) => !isCommentVNode(node));\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","import { isString } from 'lodash-es';\n\n/**\n * 复数规则判断函数\n * @param count 数量\n * @returns 返回复数形式的索引 (0: zero/none, 1: one, 2: other/many)\n */\nfunction getPluralIndex(count: number): number {\n if (count === 0) return 0; // no items\n if (count === 1) return 1; // one item\n return 2; // multiple items\n}\n\n/**\n * @see https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/config-provider/hooks/useConfig.ts#L48\n * 自定义 t function 可能依赖特定库函数,例如 tdesign-vue-next 中使用了 vue 的 h 函数\n * 因此交由各个类库自行实现\n */\n\n/**\n * 国际化函数,支持复数处理和变量替换\n *\n * 示例用法:\n * 1. 基本变量替换:\n * t('Hello {name}', { name: 'World' }) // => 'Hello World'\n *\n * 2. 复数处理(传入数字):\n * t('no apples | one apple | {count} apples', 0) // => 'no apples'\n * t('no apples | one apple | {count} apples', 1) // => 'one apple'\n * t('no apples | one apple | {count} apples', 5) // => '5 apples'\n *\n * 3. 复合使用:\n * t('no items found | found {count} item | found {count} items', 3, { count: 3 }) // => 'found 3 items'\n */\n\n// 类型重载定义\nexport function t(pattern: string): string;\nexport function t(pattern: string, data: Record): string;\nexport function t(pattern: string, count: number): string;\nexport function t(pattern: string, count: number, data: Record): string;\nexport function t(pattern: T): string;\n\n/**\n * @param pattern 文本模式,可以是字符串、函数或其他类型\n * @param args 参数列表,支持 (count: number) 或 (count: number, data: object) 或 (data: object)\n * @returns 处理后的文本\n */\nexport function t(pattern: T, ...args: any[]): string {\n if (isString(pattern)) {\n let text = pattern as string;\n let count: number | undefined;\n let data: Record = {};\n\n // 解析参数\n if (args.length > 0) {\n const [firstArg, secondArg] = args;\n\n if (typeof firstArg === 'number') {\n // 第一个参数是数字,表示 count\n count = firstArg;\n if (secondArg && typeof secondArg === 'object') {\n // 第二个参数是对象,表示额外的数据\n data = secondArg;\n } else {\n data.count = count; // 若没有提供第二个参数,则将 count 添加到数据中\n }\n } else if (typeof firstArg === 'object' && firstArg !== null) {\n // 第一个参数是对象,表示数据\n data = firstArg;\n }\n }\n\n // 处理复数形式:支持 \"no items | one item | {count} items\" 格式\n if (text.includes('|')) {\n const pluralParts = text.split('|').map((part) => part.trim());\n\n if (typeof count === 'number') {\n // 使用 count 进行复数处理\n const pluralIndex = getPluralIndex(count);\n\n // 根据复数索引选择对应的文本\n if (pluralIndex < pluralParts.length) {\n text = pluralParts[pluralIndex];\n } else {\n // 如果索引超出范围,使用最后一个选项\n text = pluralParts[pluralParts.length - 1];\n }\n } else {\n // 如果没有 count,默认使用第一个选项\n const [firstPart] = pluralParts;\n text = firstPart;\n }\n }\n\n // 处理变量替换:{key} 格式\n if (data && Object.keys(data).length > 0) {\n const regular = /\\{\\s*([\\w-]+)\\s*\\}/g;\n text = text.replace(regular, (match, key) => {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n return String(data[key]);\n }\n return match; // 如果找不到对应的键,保留原始占位符\n });\n }\n\n return text as any;\n }\n\n // 如果不是字符串或函数,返回空字符串\n return '';\n}\n","// TODO 应当提取到公共 hooks 中\nimport { computed, h, inject, getCurrentInstance, ref, provide } from 'vue';\nimport { cloneDeep, isFunction } from 'lodash-es';\n\nimport { defaultGlobalConfig, configProviderInjectKey, mergeWith } from '../utils/context';\nimport { GlobalConfigProvider, TdConfigProviderProps } from '../type';\n\nimport { t as commonT } from '@tdesign/common-js/global-config/t';\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 if (isFunction(pattern)) {\n // 重要:组件的渲染必须存在参数 h,不能移除\n if (!args.length) return pattern(h);\n return pattern(...args);\n }\n // 使用公共翻译函数,以支持复数处理\n // @ts-expect-error be passed to rest parameter\n return commonT(pattern, ...args);\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';\n// TODO need refactor\nimport { useConfig } from '../../../components/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 { useConfig };\n","import { computed } from 'vue';\nimport { useConfig } from '../useConfig';\n\nexport function useCommonClassName() {\n const { classPrefix } = useConfig('classPrefix');\n\n return {\n classPrefix,\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 type CommonClassNameType = ReturnType;\n","import { ref, Ref, getCurrentInstance } from 'vue';\nimport { kebabCase } from 'lodash-es';\nimport { ChangeHandler } from '../useVModel';\n\nexport function useDefaultValue(\n value: Ref,\n defaultValue: T,\n onChange: ChangeHandler,\n propsName: string,\n): [Ref, ChangeHandler] {\n const { emit, vnode } = getCurrentInstance();\n const internalValue: Ref = ref();\n\n const vProps = vnode.props || {};\n const isVMP =\n Object.prototype.hasOwnProperty.call(vProps, propsName) ||\n Object.prototype.hasOwnProperty.call(vProps, kebabCase(propsName));\n\n if (isVMP) {\n return [\n value,\n (newValue, ...args) => {\n emit(`update:${propsName}`, newValue);\n onChange?.(newValue, ...args);\n },\n ];\n }\n\n internalValue.value = defaultValue;\n return [\n internalValue,\n (newValue, ...args) => {\n internalValue.value = newValue;\n onChange?.(newValue, ...args);\n },\n ];\n}\n","import { ref, provide, onUpdated } from 'vue';\n\nexport const TDisplayNoneElementRefresh = 't-display-none-element-refresh';\n\n// destroyOnClose=false 时,父元素为 display: none,此时的子元素无法获取到自身元素的任何宽度\n// 因此,需在父元素 display: none 发生变化时主动更新子元素\nexport function useDestroyOnClose() {\n const refresh = ref(0);\n provide(TDisplayNoneElementRefresh, refresh);\n onUpdated(() => {\n refresh.value += 1;\n });\n}\n","import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { isBoolean } from 'lodash-es';\n// TODO: need refator\nimport { TdFormProps } from '../../../components/form/type';\n\nexport interface FormDisabledProvider {\n disabled: Ref;\n}\n\nexport interface DisabledContext {\n beforeDisabled?: Ref;\n afterDisabled?: Ref;\n}\n\n/**\n * 用于实现组件全局禁用状态的hook\n * 优先级:(beforeDisabled) > Component.disabled > ComponentGroup.disabled(afterDisabled) > Form.disabled\n * @returns\n */\nexport function useDisabled(context?: DisabledContext) {\n const currentInstance = getCurrentInstance();\n const componentDisabled = computed(() => currentInstance.props.disabled as boolean);\n\n const formDisabled = inject('formDisabled', Object.create(null));\n\n return computed(() => {\n if (isBoolean(context?.beforeDisabled?.value)) return context.beforeDisabled.value;\n // Component\n if (isBoolean(componentDisabled.value)) return componentDisabled.value;\n // ComponentGroup\n if (isBoolean(context?.afterDisabled?.value)) return context.afterDisabled.value;\n // Form\n if (isBoolean(formDisabled.disabled?.value)) return formDisabled.disabled.value;\n\n return false;\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 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","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 { useConfig } from '../useConfig';\n// TODO need refactor\nimport { IconConfig } from '@tdesign/components/config-provider/type';\n\n// 从 globalConfig 获取 icon 配置用于覆盖组件内置 icon\nexport function useGlobalIcon(tdIcon: object): IconConfig {\n const { globalConfig } = useConfig('icon');\n\n const resultIcon: IconConfig = {};\n\n Object.keys(tdIcon).forEach((key: keyof typeof tdIcon) => {\n resultIcon[key] = globalConfig.value?.[key] || tdIcon[key];\n });\n\n return resultIcon;\n}\n\nexport default useGlobalIcon;\n","/* eslint-disable no-console */\nimport { Log } from './types';\n\nconst logSet = new Set();\n\nconst log: Log = {\n warn(componentName, message): void {\n console.warn(`TDesign ${componentName} Warn: ${message}`);\n },\n warnOnce(componentName, message): void {\n const msgContent = `TDesign ${componentName} Warn: ${message}`;\n if (logSet.has(msgContent)) return;\n logSet.add(msgContent);\n console.warn(msgContent);\n },\n error(componentName, message): void {\n console.error(`TDesign ${componentName} Error: ${message}`);\n },\n errorOnce(componentName, message): void {\n const msgContent = `TDesign ${componentName} Error: ${message}`;\n if (logSet.has(msgContent)) return;\n logSet.add(msgContent);\n console.error(msgContent);\n },\n info(componentName, message): void {\n console.info(`TDesign ${componentName} Info: ${message}`);\n },\n};\n\nexport default log;\n","import { SizeUnit } from './types';\nimport log from '../log/log';\n\nexport const IMAGE_REGEXP = /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.svg|.gif|.bmp)/i;\nexport const IMAGE_ALL_REGEXP = /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.svg|.gif|.bmp|.dwg|.dxf|.svf|.tif|.tiff|.arw)/i;\nexport const FILE_PDF_REGEXP = /(.pdf)/i;\nexport const FILE_EXCEL_REGEXP = /(.xlsx|.xls|.csv|.xlc|.xlm|.xlt|.xlw)/i;\nexport const FILE_WORD_REGEXP = /(.dox|docx|.document|.wps|.wdb|.msword)/i;\nexport const FILE_PPT_REGEXP = /(.ppt|.pptx|.key)/i;\nexport const VIDEO_REGEXP = /(.avi|.mp4|.wmv|.mpg|.mpeg|.mov|.rm|.ram|.swf|.flv|.rmvb|.flash|.mid|.3gp)/i;\nexport const AUDIO_REGEXP = /(.mp2|.mp3|.mp4|.ogg|.3gpp|.ac3|.au)/i;\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n */\nconst INPUT_FILE_MAP = {\n 'audio/*': AUDIO_REGEXP,\n 'video/*': VIDEO_REGEXP,\n 'image/*': IMAGE_ALL_REGEXP,\n '.jpg': /image\\/jpeg|\\.jpg$/i,\n '.ico': /image\\/vnd.microsoft.icon/i,\n '.doc': /application\\/msword/i,\n '.docx': /application\\/vnd.openxmlformats-officedocument.wordprocessingml.document/i,\n '.xls': /application\\/vnd.ms-excel/i,\n '.xlsx': /application\\/vnd.openxmlformats-officedocument.spreadsheetml.sheet/i,\n '.ppt': /application\\/vnd.ms-powerpoint/i,\n '.pptx': /application\\/vnd.openxmlformats-officedocument.presentationml.presentation/i,\n '.vsd': /application\\/vnd.visio/i,\n '.txt': /text\\/plain/i,\n '.abw': /application\\/x-abiword/i,\n '.avi': /video\\/x-msvideo/i,\n '.azw': /application\\/vnd.amazon.ebook/i,\n '.bin': /application\\/octet-stream/i,\n '.cda': /application\\/x-cdf/i,\n '.mpkg': /application\\/vnd.apple.installer+xml/i,\n '.odp': /application\\/vnd.oasis.opendocument.presentation/i,\n '.ods': /application\\/vnd.oasis.opendocument.spreadsheet/i,\n '.odt': /application\\/vnd.oasis.opendocument.text/i,\n '.oga': /audio\\/ogg/i,\n '.ogv': /video\\/ogg/i,\n '.ogx': /application\\/ogg/i,\n};\n\n/**\n * 各个单位和 KB 的关系\n *\n * [*] 表示方法采用这种方式\n * [x] 表示方法不采用这种方式\n *\n * [x] bit 位 b 0 or 1\n * [*] byte 字节 B 8 bits\n * [x] kilobit 千位 kb 1000 bites\n * [*] kilobyte 千字节(二进制) KB 1024 bytes\n * [x] kilobyte 千字节(十进制) KB 1000 bytes\n * [x] Megabite 百万位 Mb 1000 kilobits\n * [*] Megabyte 兆字节(二进制) KB 1024 kilobytes\n * [*] Megabyte 兆字节(十进制) KB 1000 kilobytes\n * [x] Gigabit 万亿位 Gb 1000 Megabite\n * [*] Gigabyte 吉字节(二进制) GB 1024 Megabytes\n * [x] Gigabyte 吉字节(十进制) GB 1000 Megabytes\n */\nexport const SIZE_MAP = {\n B: 1,\n KB: 1024,\n MB: 1048576, // 1024 * 1024\n GB: 1073741824, // 1024 * 1024 * 1024\n};\n\nexport function returnFileSize(number: number) {\n if (number < SIZE_MAP.KB) {\n return `${number} Bytes`;\n }\n if (number >= SIZE_MAP.KB && number < SIZE_MAP.MB) {\n return `${(number / SIZE_MAP.KB).toFixed(1)} KB`;\n }\n if (number >= SIZE_MAP.MB && number < SIZE_MAP.GB) {\n return `${(number / SIZE_MAP.MB).toFixed(1)} MB`;\n }\n\n if (number >= SIZE_MAP.GB) {\n return `${(number / SIZE_MAP.GB).toFixed(1)} GB`;\n }\n return '';\n}\n\nexport function getCurrentDate(needTime = false) {\n const d = new Date();\n let month: string | number = d.getMonth() + 1;\n month = month < 10 ? `0${month}` : month;\n const date = `${d.getFullYear()}-${month}-${d.getDate()}`;\n const time = `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`;\n if (needTime) return [date, time].join(' ');\n return date;\n}\n\n/**\n * 缩略文件名 ABCDEFG => ABC...FG\n * @param inputName 文件名\n * @param leftCount 左边长度\n * @param rightCount 右边长度\n * @returns 缩略后的文件名\n */\nexport function abridgeName(\n inputName: string,\n leftCount = 5,\n rightCount = 7\n): string {\n const name = inputName;\n let leftLength = 0;\n let rightLength = 0;\n if (!name) return '';\n for (let i = 0; i < name.length; i++) {\n const w = name[i];\n const isCn = escape(w).indexOf('%u') === 0;\n if (i < leftCount * 2 && leftLength < leftCount) {\n // eslint-disable-next-line no-unused-expressions\n isCn ? (leftLength += 1) : (leftLength += 2);\n } else if (i > i - rightCount && rightLength < rightCount) {\n // eslint-disable-next-line no-unused-expressions\n isCn ? (rightLength += 1) : (rightLength += 2);\n }\n }\n return name.replace(\n new RegExp(`^(.{${leftLength}})(.+)(.{${rightLength}})$`),\n '$1…$3'\n );\n}\n\nexport function getFileSizeText(number: number) {\n if (number < 1024) {\n return `${number} Bytes`;\n }\n if (number >= 1024 && number < 1048576) {\n return `${(number / 1024).toFixed(1)} KB`;\n }\n if (number >= 1048576) {\n return `${(number / 1048576).toFixed(1)} MB`;\n }\n return '';\n}\n\n/**\n * 大小比较\n * @param size 文件大小,单位:B\n * @param unit 计算机计量单位\n */\nexport function isOverSizeLimit(\n fileSize: number,\n sizeLimit: number,\n unit: SizeUnit\n) {\n const units = ['B', 'KB', 'MB', 'GB'];\n const KBIndex = 1;\n let index = units.indexOf(unit);\n if (index === -1) {\n log.warn('Upload', `\\`sizeLimit.unit\\` can only be one of ${units.join()}`);\n index = KBIndex;\n }\n const num = SIZE_MAP[unit];\n return fileSize > sizeLimit * num;\n}\n\n// vue2临时使用的 sizeLimit 计算\nexport function isOverSizeLimit1(\n fileSize: number,\n sizeLimit: number,\n unit: SizeUnit\n) {\n // 以 KB 为单位进行比较\n const units = ['B', 'KB', 'MB', 'GB'];\n // 各个单位和 KB 的关系\n\n const KBIndex = 1;\n let index = units.indexOf(unit);\n if (index === -1) {\n // eslint-disable-next-line no-console\n console.warn(\n `TDesign Upload Warn: \\`sizeLimit.unit\\` can only be one of ${units.join()}`\n );\n index = KBIndex;\n }\n const num = SIZE_MAP[unit];\n const limit = index < KBIndex ? sizeLimit / num : sizeLimit * num;\n return fileSize <= limit;\n}\n\nexport const urlCreator = () => window.webkitURL || window.URL;\n\nexport function getFileUrlByFileRaw(fileRaw: File): Promise {\n return new Promise((resolve) => {\n if (!fileRaw) {\n resolve('');\n return;\n }\n const reader = new FileReader();\n reader.readAsDataURL(fileRaw);\n reader.onload = (event: ProgressEvent) => {\n resolve(event.target?.result as string);\n };\n });\n}\n\nexport function validateFileType(accept: string, fileType: string, fileName?: string) {\n const tmpFileType = fileType || fileName;\n if (!accept) return true;\n\n if (!tmpFileType) return false;\n\n const acceptList = accept.split(',').map((v) => v.trim());\n for (let i = 0, len = acceptList.length; i < len; i++) {\n const oneRule = acceptList[i] as keyof typeof INPUT_FILE_MAP;\n if (INPUT_FILE_MAP[oneRule] && INPUT_FILE_MAP[oneRule].test(tmpFileType)) {\n return true;\n }\n const regExp = new RegExp(oneRule, 'i');\n if (regExp.test(tmpFileType)) {\n return true;\n }\n }\n return false;\n}\n\nexport function getFileList(files: FileList, accept: string = '') {\n const fileList: File[] = [];\n for (let i = 0; i < files.length; i++) {\n if (validateFileType(accept, files[i].type, files[i].name)) {\n fileList.push(files[i]);\n }\n }\n return fileList;\n}\n","import { ComputedRef, ref, Ref, watch } from 'vue';\nimport { getFileUrlByFileRaw } from '@tdesign/common-js/upload/utils';\n\nexport function useImagePreviewUrl(imgUrl: Ref | ComputedRef) {\n const previewUrl = ref('');\n\n watch(\n [imgUrl],\n ([imgUrl], [preImgUrl]) => {\n if (preImgUrl === imgUrl) return;\n if (typeof imgUrl === 'string') {\n previewUrl.value = imgUrl;\n return;\n }\n getFileUrlByFileRaw(imgUrl).then((url) => {\n previewUrl.value = url;\n });\n },\n { immediate: true },\n );\n\n return { previewUrl };\n}\n","import { useConfig } from '../useConfig';\n// TODO need refactor\nimport { EAnimationType } from '../../../components/config-provider/utils/context';\n\nconst { expand, ripple, fade } = EAnimationType;\n\nexport function useKeepAnimation() {\n const { globalConfig } = useConfig('animation');\n\n const keepAnimation = (type: EAnimationType) => {\n const animationConfig = globalConfig.value;\n return animationConfig && !animationConfig.exclude?.includes(type) && animationConfig.include?.includes(type);\n };\n return {\n keepExpand: keepAnimation(expand),\n keepRipple: keepAnimation(ripple),\n keepFade: keepAnimation(fade),\n };\n}\n","import { onBeforeUnmount, onMounted } from 'vue';\n\n/**\n * 用于订阅Listener事件\n * @param updateSize\n */\nexport function useListener(type: string, listener: () => void): void {\n onMounted(() => {\n window.addEventListener(type, listener);\n });\n\n onBeforeUnmount(() => {\n window.removeEventListener(type, listener);\n });\n}\n\nexport function useResize(listener: () => void, observer?: HTMLElement) {\n useListener('resize', listener);\n\n let resizeObserver: ResizeObserver = null;\n\n onMounted(() => {\n if (!window.ResizeObserver || !observer) return;\n resizeObserver = new window.ResizeObserver(listener);\n resizeObserver.observe(observer);\n });\n\n onBeforeUnmount(() => {\n resizeObserver?.disconnect();\n });\n}\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","// https://github.dev/arco-design/arco-design-vue\nimport { onMounted, onBeforeUnmount, readonly, Ref, ref, watch } from 'vue';\nexport type PopupType = 'popup' | 'dialog' | 'message' | 'drawer';\n\nconst popupStackType = ['dialog', 'drawer'];\nconst POPUP_BASE_Z_INDEX = 1000;\nconst MESSAGE_BASE_Z_INDEX = 5000;\nconst Z_INDEX_STEP = 1;\n\nclass PopupManager {\n private popupStack = {\n popup: new Set(),\n dialog: new Set(),\n message: new Set(),\n drawer: new Set(),\n };\n\n private zIndexStack: number[] = [];\n\n private getNextZIndex = (type: PopupType) => {\n const current =\n type === 'message'\n ? Array.from(this.popupStack.message).pop() || MESSAGE_BASE_Z_INDEX\n : Array.from(this.popupStack.popup).pop() || POPUP_BASE_Z_INDEX;\n return current + Z_INDEX_STEP;\n };\n\n public add = (type: PopupType) => {\n const zIndex = this.getNextZIndex(type);\n this.popupStack[type].add(zIndex);\n if (popupStackType.includes(type)) {\n this.popupStack.popup.add(zIndex);\n }\n this.zIndexStack.push(zIndex);\n return zIndex;\n };\n\n public delete = (zIndex: number, type: PopupType) => {\n this.popupStack[type].delete(zIndex);\n if (popupStackType.includes(type)) {\n this.popupStack.popup.delete(zIndex);\n }\n const index = this.zIndexStack.indexOf(zIndex);\n if (index !== -1) {\n this.zIndexStack.splice(index, 1);\n }\n };\n\n // 最顶层的交互式弹窗(指Dialog和Drawer)\n public isTopInteractivePopup = (popupType: PopupType, zIndex: number) => {\n if (popupStackType.includes(popupType)) {\n const lastZIndex = this.zIndexStack[this.zIndexStack.length - 1];\n return zIndex === lastZIndex;\n }\n\n if (this.popupStack[popupType]?.size > 1) {\n return zIndex === Array.from(this.popupStack[popupType]).pop();\n }\n\n return true;\n };\n\n public getLastZIndex = () => {\n return this.zIndexStack[this.zIndexStack.length - 1];\n };\n}\n\nconst popupManager = new PopupManager();\n\nexport function usePopupManager(\n type: PopupType,\n {\n visible,\n runOnMounted,\n }: {\n visible?: Ref;\n runOnMounted?: boolean;\n } = {},\n) {\n const zIndex = ref(0);\n\n const open = () => {\n zIndex.value = popupManager.add(type);\n };\n\n const close = () => {\n popupManager.delete(zIndex.value, type);\n };\n\n const isTopInteractivePopup = () => {\n if (popupStackType.includes(type)) {\n return popupManager.isTopInteractivePopup(type, zIndex.value);\n }\n return false;\n };\n\n watch(\n () => visible?.value,\n (visible) => {\n if (visible) {\n open();\n } else {\n close();\n }\n },\n {\n immediate: true,\n },\n );\n\n if (runOnMounted) {\n onMounted(() => {\n open();\n });\n\n onBeforeUnmount(() => {\n close();\n });\n }\n\n return {\n zIndex: readonly(zIndex),\n open,\n close,\n isTopInteractivePopup,\n };\n}\n","import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { isBoolean } from 'lodash-es';\n// TODO need refactor\nimport { TdFormProps } from '../../../components/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 { Ref, watch, onBeforeUnmount } from 'vue';\n\nexport function useResizeObserver(container: Ref, callback: (data: ResizeObserverEntry[]) => void) {\n if (typeof window === 'undefined') return;\n\n const isSupport = window && (window as Window & typeof globalThis).ResizeObserver;\n // unit tests do not need any warn console; too many warns influence focusing on more important log info\n if (!isSupport) return;\n\n let containerObserver: ResizeObserver = null;\n\n const cleanupObserver = () => {\n if (!containerObserver || !container.value) return;\n containerObserver.unobserve(container.value);\n containerObserver.disconnect();\n containerObserver = null;\n };\n\n const addObserver = (el: HTMLElement) => {\n containerObserver = new ResizeObserver(callback);\n containerObserver.observe(el);\n };\n\n // can not use container.value to judge\n container &&\n watch(\n container,\n (el) => {\n cleanupObserver();\n el && addObserver(el);\n },\n { immediate: true, flush: 'post' },\n );\n\n onBeforeUnmount(() => {\n cleanupObserver();\n });\n}\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 { ref, onMounted, onUnmounted, Ref } from 'vue';\nimport { useKeepAnimation } from '../useKeepAnimation';\nimport { usePrefixClass } from '../useConfig';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\n\nconst period = 200;\nconst noneRippleBg = 'rgba(0, 0, 0, 0)';\nconst defaultRippleColor = 'rgba(0, 0, 0, 0.35)';\n\n// 设置动画颜色 get the ripple animation color\nconst getRippleColor = (el: HTMLElement, fixedRippleColor?: string) => {\n // get fixed color from params\n if (fixedRippleColor) {\n return fixedRippleColor;\n }\n // get dynamic color from the dataset\n if (el?.dataset?.ripple) {\n const rippleColor = el.dataset.ripple;\n return rippleColor;\n }\n // use css variable\n const cssVariable = getComputedStyle(el).getPropertyValue('--ripple-color');\n if (cssVariable) {\n return cssVariable;\n }\n return defaultRippleColor;\n};\n\n/**\n * 斜八角动画hooks 支持三种方式使用\n * 1. fixedRippleColor 固定色值 useRipple(ref,fixedRippleColor);\n * 2. dynamicColor 动态色值 data.ripple=\"rippleColor\" useRipple(ref)\n * 3. CSS variables(recommended) 配合节点对应CSS设置 --ripple-color useRipple(ref)\n * @param ref 需要使用斜八角动画的DOM\n * @param fixedRippleColor 斜八角的动画颜色\n */\nexport function useRipple(el: Ref, fixedRippleColor?: Ref) {\n const rippleContainer = ref(null);\n const classPrefix = usePrefixClass();\n\n // 全局配置ripple\n const { keepRipple } = useKeepAnimation();\n\n // 为节点添加斜八角动画 add ripple to the DOM and set up the animation\n const handleAddRipple = (e: MouseEvent) => {\n const dom = el.value;\n const rippleColor = getRippleColor(dom, fixedRippleColor?.value);\n if (e.button !== 0 || !el || !keepRipple) return;\n\n if (\n dom.classList.contains(`${classPrefix.value}-is-active`) ||\n dom.classList.contains(`${classPrefix.value}-is-disabled`) ||\n dom.classList.contains(`${classPrefix.value}-is-checked`) ||\n dom.classList.contains(`${classPrefix.value}-is-loading`)\n )\n return;\n\n const elStyle = getComputedStyle(dom);\n\n const elBorder = parseInt(elStyle.borderWidth, 10);\n const border = elBorder > 0 ? elBorder : 0;\n const width = dom.offsetWidth;\n const height = dom.offsetHeight;\n\n if (rippleContainer.value.parentNode === null) {\n setStyle(rippleContainer.value, {\n position: 'absolute',\n left: `${0 - border}px`,\n top: `${0 - border}px`,\n width: `${width}px`,\n height: `${height}px`,\n borderRadius: elStyle.borderRadius,\n pointerEvents: 'none',\n overflow: 'hidden',\n });\n dom.appendChild(rippleContainer.value);\n }\n // 新增一个ripple\n const ripple = document.createElement('div');\n\n setStyle(ripple, {\n marginTop: '0',\n marginLeft: '0',\n right: `${width}px`,\n width: `${width + 20}px`,\n height: '100%',\n transition: `transform ${period}ms cubic-bezier(.38, 0, .24, 1), background ${period * 2}ms linear`,\n transform: 'skewX(-8deg)',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n backgroundColor: rippleColor,\n opacity: '0.9',\n });\n\n // fix zIndex:避免遮盖内部元素\n const elMap = new WeakMap();\n for (let n = dom.children.length, i = 0; i < n; ++i) {\n const child = dom.children[i];\n if ((child as HTMLElement).style.zIndex === '' && child !== rippleContainer.value) {\n (child as HTMLElement).style.zIndex = '1';\n elMap.set(child, true);\n }\n }\n\n // fix position\n const initPosition = dom.style.position ? dom.style.position : getComputedStyle(dom).position;\n if (initPosition === '' || initPosition === 'static') {\n // eslint-disable-next-line no-param-reassign\n dom.style.position = 'relative';\n }\n rippleContainer.value.insertBefore(ripple, rippleContainer.value.firstChild);\n\n setTimeout(() => {\n ripple.style.transform = `translateX(${width}px)`;\n }, 0);\n // 清除动画节点 clear ripple container\n const handleClearRipple = () => {\n ripple.style.backgroundColor = noneRippleBg;\n\n if (!el.value) return;\n\n el.value.removeEventListener('pointerup', handleClearRipple, false);\n el.value.removeEventListener('pointerleave', handleClearRipple, false);\n\n setTimeout(() => {\n ripple.remove();\n if (rippleContainer.value.children.length === 0) rippleContainer.value.remove();\n }, period * 2 + 100);\n };\n el.value.addEventListener('pointerup', handleClearRipple, false);\n el.value.addEventListener('pointerleave', handleClearRipple, false);\n };\n\n onMounted(() => {\n const dom = el?.value;\n if (!dom) return;\n\n rippleContainer.value = document.createElement('div');\n\n dom.addEventListener('pointerdown', handleAddRipple, false);\n });\n\n onUnmounted(() => {\n el?.value?.removeEventListener('pointerdown', handleAddRipple, false);\n });\n}\n","import { getAttach } from '@tdesign/shared-utils';\nimport { computed, Ref, onMounted, ref, watch } from 'vue';\n// TODO need refactor\nimport { AttachNode } from '../../../components/common';\nimport { isFunction } from 'lodash-es';\n\n/**\n * @description 返回挂载的节点, 用于teleport\n * @param attach 既可以是一个函数, 也可以是一个ref\n * @param triggerNode 既可以是一个函数, 也可以是一个ref\n */\nexport function 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","import { ref, Ref, getCurrentInstance } from 'vue';\nimport { kebabCase } from 'lodash-es';\n\nexport type ChangeHandler = (value: T, ...args: P) => void;\n\nexport function useVModel(\n value: Ref,\n modelValue: Ref,\n defaultValue: T,\n onChange: ChangeHandler,\n propName = 'value',\n): [Ref, ChangeHandler] {\n const { emit, vnode } = getCurrentInstance();\n const internalValue: Ref = ref();\n\n const vProps = vnode.props || {};\n const isVM =\n Object.prototype.hasOwnProperty.call(vProps, 'modelValue') ||\n Object.prototype.hasOwnProperty.call(vProps, 'model-value');\n const isVMP =\n Object.prototype.hasOwnProperty.call(vProps, propName) ||\n Object.prototype.hasOwnProperty.call(vProps, kebabCase(propName));\n\n if (isVM) {\n return [\n modelValue,\n (newValue, ...args) => {\n emit('update:modelValue', newValue);\n onChange?.(newValue, ...args);\n },\n ];\n }\n\n if (isVMP) {\n return [\n value,\n (newValue, ...args) => {\n emit(`update:${propName}`, newValue);\n onChange?.(newValue, ...args);\n },\n ];\n }\n\n internalValue.value = defaultValue;\n return [\n internalValue,\n (newValue, ...args) => {\n internalValue.value = newValue;\n onChange?.(newValue, ...args);\n },\n ];\n}\n","/**\n * 基于原作者(@louiszhai)的思路二次开发,为保证其他组件暂不受影响,单独开一个文件\n * 新增支持以下 3 个特性\n * 1. 支持不同表格高度\n * 2. 支持滚动到特定元素,方便 Select 等组件展开时直接定位到选中元素\n * 3. 支持数据变化不重置,方便支持树形结构虚拟滚动\n */\nimport { ref, computed, watch, Ref } from 'vue';\n// TODO need refactor\nimport { TScroll } from '../../../components/common';\nimport { useResizeObserver } from '../useResizeObserver';\nimport { max, min, sum, 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\nexport function useVirtualScrollNew(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","import { onBeforeUnmount, onMounted, ref, watch } from 'vue';\nimport { debounce, isEqual } from 'lodash-es';\n\nexport interface MutationCallback {\n (mutations: MutationRecord[]): void;\n}\n\ninterface Options {\n debounceTime?: number;\n config?: MutationObserverInit;\n}\n\nconst DEFAULT_OPTIONS: Options = {\n debounceTime: 0,\n config: {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n },\n};\n\n/**\n * useMutationObservable\n * @param targetEl 监听对象\n * @param callback 回调方法\n * @param options 配置项\n */\nexport function useMutationObservable(\n targetEl: HTMLElement | null,\n callback: MutationCallback,\n options: Options = DEFAULT_OPTIONS,\n) {\n const mergedOptions = ref({ ...DEFAULT_OPTIONS, ...options });\n let observer: MutationObserver | null = null;\n\n const initObserver = () => {\n if (!targetEl) return;\n\n const { debounceTime = 0, config = DEFAULT_OPTIONS.config } = mergedOptions.value;\n const handler: MutationCallback = (...args) => {\n callback?.(...args);\n };\n\n observer?.disconnect();\n observer = new MutationObserver(debounceTime > 0 ? debounce(handler, debounceTime) : handler);\n observer.observe(targetEl, config);\n };\n\n watch(\n () => options,\n (newOptions) => {\n if (!isEqual(newOptions, mergedOptions.value)) {\n mergedOptions.value = { ...DEFAULT_OPTIONS, ...newOptions };\n initObserver();\n }\n },\n { deep: true },\n );\n\n onMounted(initObserver);\n onBeforeUnmount(() => observer?.disconnect());\n}\n\nexport default useMutationObservable;\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\nexport const THEME_MODE = 'theme-mode';\n","/**\n * 获取颜色token的色值\n * @example getColorTokenColor('--td-brand-color')\n * @returns string\n */\nexport const getColorTokenColor = (token: string): string => {\n const targetElement = document?.documentElement;\n const styles = getComputedStyle(targetElement);\n return styles.getPropertyValue(token).trim() ?? '';\n};\n\nexport default getColorTokenColor;\n","import { ref } from 'vue';\nimport type { Ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { THEME_MODE } from '@tdesign/common-js/common';\nimport getColorTokenColor from '@tdesign/common-js/utils/getColorTokenColor';\nimport useMutationObservable from '../useMutationObservable';\n\n/**\n * useVariables\n * @param variable CSS 变量名\n * @example\n * const { textColor, brandColor } = useVariables({\n * textColor: '--td-color-primary',\n * brandColor: '--td-brand-color',\n * });\n */\nexport function useVariables>(variables: T): Record> {\n const values = {} as Record>;\n let varsArray: string[] = [];\n\n varsArray = Object.values(variables);\n Object.entries(variables).forEach(([key, varName]) => {\n values[key as keyof T] = ref(getColorTokenColor(varName));\n });\n\n varsArray.forEach((varName) => {\n values[varName as keyof T] = ref(getColorTokenColor(varName));\n });\n\n const targetElement = document?.documentElement;\n useMutationObservable(targetElement, (mutationsList) => {\n mutationsList.some((mutation) => {\n if (mutation.type === 'attributes' && mutation.attributeName === THEME_MODE) {\n if (isString(variables) || Array.isArray(variables)) {\n varsArray.forEach((varName) => {\n values[varName].value = getColorTokenColor(varName);\n });\n } else {\n Object.entries(variables).forEach(([key, varName]) => {\n values[key].value = getColorTokenColor(varName);\n });\n }\n return true;\n }\n return false;\n });\n });\n\n return values;\n}\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 '@tdesign/shared-hooks';\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 // 判断是否为 iPadOS 下的微信和企业微信\n const isIpadWechat = /(?=.*iPad)[?=.*MicroMessenger]/.test(ua) && !/Chrome/.test(ua);\n\n // 注意:chrome上调试mobile/ipad端时,loading出现异常,属于正常现象,不需要修改。\n if (isSafari || isIosWechat || isIpadWechat) {\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","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\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: '' as TdLoadingProps['attach'],\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 as TdLoadingProps['indicator'],\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 '@tdesign/shared-utils';\nimport { getPropertyValFromObj } from '@tdesign/common-js/utils/general';\nimport { useContent, useTNodeJSX, useTeleport, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\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, createVNode, defineComponent, h, reactive, render, AppContext } from 'vue';\nimport { merge } from 'lodash-es';\nimport LoadingComponent from './loading';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport { getAttach, removeClass, addClass } from '@tdesign/shared-utils';\nimport { TdLoadingProps, LoadingInstance, LoadingMethod } from './type';\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, context?: AppContext): 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\n return () => h(LoadingComponent, loadingOptions);\n },\n });\n\n const attach = getAttach(mergedProps.fullscreen ? 'body' : mergedProps.attach);\n\n const instance = createVNode(component);\n\n // eslint-disable-next-line no-underscore-dangle\n if (context ?? LoadingPlugin._context) {\n // eslint-disable-next-line no-underscore-dangle\n instance.appContext = context ?? LoadingPlugin._context;\n }\n\n const wrapper = document.createElement('div');\n render(instance, wrapper);\n\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 removeClass(attach, parentRelativeClass);\n removeClass(document.body, lockClass.value);\n // 卸载组件渲染\n render(null, wrapper);\n wrapper.remove();\n },\n };\n return loadingInstance;\n}\n\nfunction produceLoading(props: boolean | TdLoadingProps, context?: AppContext): LoadingInstance {\n // 全屏加载\n if (props === true) {\n fullScreenLoadingInstance = createLoading(\n {\n fullscreen: true,\n loading: true,\n attach: 'body',\n preventScrollThrough: true,\n },\n context,\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 &\n LoadingMethod & {\n _context?: AppContext;\n };\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 // eslint-disable-next-line no-underscore-dangle\n LoadingPlugin._context = app._context;\n};\n\nexport default LoadingPlugin;\n","import type { Directive, DirectiveBinding } from 'vue';\nimport { mapKeys, isEqual, isObject } from 'lodash-es';\n\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 { vLoading } from './directive';\nimport _Loading from './loading';\nimport { withInstall } from '@tdesign/shared-utils';\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, useResizeObserver } from '@tdesign/shared-hooks';\n\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 { h, defineComponent, Transition, ref, computed, watch, onMounted, nextTick } from 'vue';\nimport { debounce, isFunction } 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, useDragSort, useGlobalIcon, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\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 { useVModel, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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 '@tdesign/shared-hooks';\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, useContent, useTNodeJSX, usePrefixClass, useCollapseAnimation } from '@tdesign/shared-hooks';\n\nimport { Popup, PopupPlacement } from '../popup';\nimport { isFunction } from 'lodash-es';\nimport { TdSubmenuProps } from './type';\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\n const submenu = inject('TdSubmenu', {});\n const { setSubPopup, closeParentPopup } = submenu;\n\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 let virtualChild;\n\n if (mode.value === 'popup') {\n events = {\n onMouseenter: handleMouseEnter,\n onMouseleave: handleMouseLeave,\n };\n // popup模式下且存在多层的特殊封装场景中,需要将子节点挂载进行计算高亮\n if (activeValues.value.length < 2)\n virtualChild =
{renderContent('default', 'content')}
;\n }\n if (Object.keys(slots).length > 0) {\n child = isHead ? renderHeadSubmenu() : renderSubmenu();\n }\n\n return (\n
  • \n {child}\n {virtualChild}\n
  • \n );\n };\n },\n});\n","export 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 { isArray, isFunction } 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 { useVModel, usePrefixClass, useDefaultValue } from '@tdesign/shared-hooks';\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 { useRipple, useContent, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\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 const activeValues = menu.activeValues.value;\n if (activeValues.includes(props.value) && !activeValues.includes(submenu?.value)) {\n activeValues.push(submenu?.value);\n }\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 { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 { 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 '@tdesign/shared-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, useDisabled, useReadonly } from '@tdesign/shared-hooks';\n\nimport { useLengthLimit } from './useLengthLimit';\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 if (isComposition.value) {\n isComposition.value = false;\n compositionValue.value = '';\n }\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 '@tdesign/shared-hooks';\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 {\n useConfig,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\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, isComposition);\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, isComposition?: 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 // 修复中文输入法回车键冲突:在中文输入法激活时不触发onEnter事件\n if (!isComposition?.value) {\n props.onEnter?.(tmpValue, { e });\n }\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 { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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 { useVModel, useReadonly, useDisabled, useCommonClassName } from '@tdesign/shared-hooks';\n\nimport { InputNumberValue, TdInputNumberProps } from '../type';\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';\n\nimport { StrInputProps } from '../../input';\n\n/**\n * 独立一个组件 Hook 方便用户直接使用相关逻辑 自定义任何样式的数字输入框\n */\nexport default function useInputNumber(props: TdInputNumberProps) {\n const { classPrefix, SIZE, STATUS } = 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 SIZE.value[props.size],\n {\n [STATUS.value.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 { [STATUS.value.disabled]: disabledReduce.value },\n ]);\n\n const addClasses = computed(() => [\n `${classPrefix.value}-input-number__increase`,\n { [STATUS.value.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 // 先处理小数位数限制,然后再更新显示值和实际值\n let processedVal = val;\n if (props.decimalPlaces !== undefined && val !== '' && val.includes('.')) {\n const parts = val.split('.');\n // 获取实际小数位数限制\n const decimalLimit = typeof props.decimalPlaces === 'number' ? props.decimalPlaces : props.decimalPlaces.places;\n\n if (parts[1] && parts[1].length > decimalLimit) {\n // 直接截断为指定小数位数\n processedVal = `${parts[0]}.${parts[1].substring(0, decimalLimit)}`;\n }\n }\n\n // 更新显示值\n userInput.value = processedVal;\n\n if (props.largeNumber) {\n setTValue(processedVal, { type: 'input', e });\n return;\n }\n\n // 当处理后的值与当前值不同时,才更新\n const newNumber = processedVal === '' ? undefined : Number(processedVal);\n if (canSetValue(processedVal, Number(tValue.value))) {\n setTValue(newNumber, { 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) {\n // 当值为 undefined 或 null 且最小值不为默认值 -Infinity 时,设置为最小值\n if ([undefined, null].includes(tValue.value) && min !== -Infinity) {\n setTValue(min, { type: 'blur', e: ctx.e });\n props.onBlur?.(min, ctx);\n return;\n }\n // 当值不为 undefined 时,进行范围检查\n if (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 }\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 '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 {\n useConfig,\n useContent,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { Styles } from '../common';\n\nexport default defineComponent({\n name: 'TTag',\n props,\n setup(props) {\n const { globalConfig: tagGlobalConfig } = useConfig('tag');\n const COMPONENT_NAME = usePrefixClass('tag');\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { SIZE } = useCommonClassName();\n const { vnode } = getCurrentInstance();\n\n const tagClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}--${props.theme}`,\n `${COMPONENT_NAME.value}--${props.variant}`,\n {\n [`${COMPONENT_NAME.value}--ellipsis`]: props.maxWidth,\n [`${COMPONENT_NAME.value}--close`]: props.closable,\n [`${COMPONENT_NAME.value}--disabled`]: props.disabled,\n [SIZE.value[props.size]]: props.size !== 'medium',\n },\n props.shape !== 'square' && `${COMPONENT_NAME.value}--${props.shape}`,\n ];\n });\n const tagStyle = computed(() => {\n return getTagColorStyle();\n });\n\n const textStyle = computed(() => {\n if (!props.maxWidth) return {};\n\n return {\n maxWidth: isNaN(Number(props.maxWidth)) ? String(props.maxWidth) : `${props.maxWidth}px`,\n };\n });\n\n const getTagColorStyle = () => {\n const { color, variant } = props;\n if (!color) return {};\n\n const luminance = tinycolor(color).getLuminance();\n\n const style: Styles = {\n color: luminance > 0.5 ? 'black' : 'white',\n };\n\n if (variant === 'outline' || variant === 'light-outline') {\n style.borderColor = color;\n }\n if (variant !== 'outline') {\n const getLightestShade = () => {\n const { r, g, b } = tinycolor(color).toRgb();\n // alpha 0.1 is designed by @wen1kang\n return `rgba(${r}, ${g}, ${b}, 0.1)`;\n };\n style.backgroundColor = variant === 'dark' ? color : getLightestShade();\n }\n if (variant !== 'dark') {\n style.color = color;\n }\n return style;\n };\n\n const handleClick = (e: MouseEvent) => {\n if (props.disabled) return;\n props.onClick?.({ e });\n };\n\n const getCloseIcon = () => {\n if (!props.closable) return null;\n const iconClassName = `${COMPONENT_NAME.value}__icon-close`;\n if (tagGlobalConfig.value.closeIcon) {\n return h(tagGlobalConfig.value.closeIcon(h) as VNode, { class: iconClassName });\n }\n return (\n {\n if (e) e.stopPropagation();\n props.onClose?.({ e });\n }}\n class={iconClassName}\n />\n );\n };\n\n const renderTitle = (tagContent: string) => {\n const vProps = vnode.props || {};\n if (Reflect.has(vProps, 'title')) {\n return vProps.title || undefined;\n }\n\n if (tagContent) {\n return tagContent;\n }\n\n return undefined;\n };\n\n return () => {\n // 关闭按钮 自定义组件使用 nativeOnClick 绑定事件\n const closeIcon = getCloseIcon();\n // 标签内容\n const tagContent = renderContent('default', 'content');\n // 图标\n const icon = renderTNodeJSX('icon');\n\n const title = renderTitle(isString(tagContent) ? tagContent : '');\n\n return (\n
    \n {icon}\n \n {tagContent}\n \n {!props.disabled && closeIcon}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckTagProps } from '../tag/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 标签选中的状态,默认风格(theme=default)才有选中态 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 标签选中的状态,默认风格(theme=default)才有选中态,非受控属性 */\n defaultChecked: Boolean,\n /** 透传标签选中态属性 */\n checkedProps: {\n type: Object as PropType,\n },\n /** 组件子元素;传入数组时:[选中内容,非选中内容] */\n content: {\n type: [String, Number, Array, Function] as PropType,\n },\n /** 组件子元素,默认插槽 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态 */\n disabled: Boolean,\n /** 标签尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCheckTagProps['size'],\n validator(val: TdCheckTagProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 透传标签未选态属性 */\n uncheckedProps: {\n type: Object as PropType,\n },\n /** 标签唯一标识,一般用于标签组场景,单个可选择标签无需设置 */\n value: {\n type: [String, Number] as PropType,\n },\n /** 状态切换时触发 */\n onChange: Function as PropType,\n /** 点击标签时触发 */\n onClick: Function as PropType,\n};\n","import { defineComponent, computed, toRefs } from 'vue';\nimport props from './check-tag-props';\nimport { useVModel, useContent, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\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 { useVModel, usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './check-tag-group-props';\nimport CheckTag from './check-tag';\n\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 '@tdesign/shared-utils';\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 {\n useDisabled,\n useReadonly,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useDefaultValue,\n} from '@tdesign/shared-hooks';\n\nimport { useTagScroll, useHover, useDragSorter, useTagList } from './hooks';\n\nimport { isArray } from 'lodash-es';\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] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const { excessTagsDisplayType, clearable, placeholder } = toRefs(props);\n const { isHover, addHover, cancelHover } = useHover({\n readonly: isReadonly.value,\n disabled: isDisabled.value,\n onMouseenter: props.onMouseenter,\n onMouseleave: props.onMouseleave,\n });\n const isComposition = ref(false);\n const { classPrefix } = useConfig();\n const isFocused = ref(false);\n\n // 这里不需要响应式,因此直接传递参数\n const { getDragProps } = useDragSorter({\n ...props,\n sortOnDraggable: props.dragSort,\n onDragOverCheck: {\n x: true,\n targetClassNameRegExp: new RegExp(`^${classPrefix.value}-tag`),\n },\n });\n const { scrollToRight, onWheel, scrollToRightOnEnter, scrollToLeftOnLeave, tagInputRef, isScrollable } =\n useTagScroll(props);\n // handle tag add and remove\n // 需要响应式,为了尽量的和 react 版本做法相同,这里进行响应式处理\n const { tagValue, onInnerEnter, onInputBackspaceKeyUp, onInputBackspaceKeyDown, clearAll, renderLabel, onClose } =\n useTagList(\n reactive({\n ...toRefs(props),\n getDragProps,\n }),\n );\n\n const classes = computed(() => {\n const isEmpty = !(isArray(tagValue.value) && tagValue.value.length);\n return [\n NAME_CLASS.value,\n {\n [BREAK_LINE_CLASS.value]: excessTagsDisplayType.value === 'break-line',\n [`${classPrefix.value}-is-empty`]: isEmpty,\n [`${classPrefix.value}-tag-input--with-tag`]: !isEmpty,\n [`${classPrefix.value}-tag-input--drag-sort`]: props.dragSort && !isReadonly.value && !isDisabled.value,\n },\n ];\n });\n\n const tagInputPlaceholder = computed(() => (!tagValue.value?.length ? placeholder.value : ''));\n\n const showClearIcon = computed(() =>\n Boolean(\n !isReadonly.value &&\n !isDisabled.value &&\n clearable.value &&\n isHover.value &&\n (tagValue.value?.length || tInputValue.value),\n ),\n );\n\n const onInputEnter = (value: string, context: { e: KeyboardEvent }) => {\n // 阻止 Enter 默认行为,避免在 Form 中触发 submit 事件\n context.e?.preventDefault?.();\n setTInputValue('', { e: context.e, trigger: 'enter' });\n !isComposition.value && onInnerEnter(value, context);\n nextTick(() => {\n scrollToRight();\n isComposition.value = false;\n });\n };\n\n const onInputCompositionstart = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = true;\n inputProps.value?.onCompositionstart?.(value, context);\n };\n\n const onInputCompositionend = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = false;\n inputProps.value?.onCompositionend?.(value, context);\n };\n\n const onClick: TdInputProps['onClick'] = (ctx) => {\n if (isDisabled.value) return;\n isFocused.value = true;\n tagInputRef.value?.focus();\n props.onClick?.(ctx);\n };\n\n const onClearClick = (context: { e: MouseEvent }) => {\n clearAll(context);\n setTInputValue('', { e: context.e, trigger: 'clear' });\n props.onClear?.(context);\n };\n\n const onMouseEnter: InputProps['onMouseenter'] = (context) => {\n addHover(context);\n scrollToRightOnEnter();\n };\n\n const onMouseLeave: InputProps['onMouseleave'] = (context) => {\n cancelHover(context);\n scrollToLeftOnLeave();\n };\n\n const onInnerFocus: InputProps['onFocus'] = (inputValue: string, context: { e: MouseEvent }) => {\n if (isFocused.value) return;\n isFocused.value = true;\n props.onFocus?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerBlur: InputProps['onBlur'] = (inputValue: string, context: { e: MouseEvent }) => {\n isFocused.value = false;\n setTInputValue('', { e: context.e, trigger: 'blur' });\n props.onBlur?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerChange: StrInputProps['onChange'] = (val, context) => {\n setTInputValue(val, { ...context, trigger: 'input' });\n };\n\n watch(\n () => isScrollable.value,\n (v) => {\n if (props.excessTagsDisplayType !== 'scroll') return;\n const scrollElementClass = `${classPrefix.value}-input__prefix`;\n const scrollElement = tagInputRef.value.$el.querySelector(`.${scrollElementClass}`);\n if (v) scrollElement.classList.add(`${scrollElementClass}--scrollable`);\n else scrollElement.classList.remove(`${scrollElementClass}--scrollable`);\n },\n );\n\n return () => {\n const suffixIconNode = showClearIcon.value ? (\n \n ) : (\n renderTNodeJSX('suffixIcon')\n );\n const prefixIconNode = renderTNodeJSX('prefixIcon');\n const suffixClass = `${classPrefix.value}-tag-input__with-suffix-icon`;\n if (suffixIconNode && !classes.value.includes(suffixClass)) {\n classes.value.push(suffixClass);\n }\n // 自定义 Tag 节点\n const displayNode = renderTNodeJSX('valueDisplay', {\n params: {\n value: tagValue.value,\n onClose: (index: number) => onClose({ index }),\n },\n });\n // 左侧文本\n const label = renderTNodeJSX('label', { silent: true });\n // const inputProps = inputProps as TdTagInputProps['inputProps'];\n const readonly = isReadonly.value || inputProps.value?.readonly;\n\n return (\n renderLabel({ displayNode, label })}\n class={classes.value}\n tips={tips.value}\n status={status.value}\n placeholder={tagInputPlaceholder.value}\n suffix={suffix.value}\n suffixIcon={() => suffixIconNode}\n prefixIcon={() => prefixIconNode}\n keepWrapperWidth={!autoWidth.value}\n onWheel={onWheel}\n onChange={onInnerChange}\n onPaste={onPaste.value}\n onEnter={onInputEnter}\n onKeyup={onInputBackspaceKeyUp}\n onKeydown={onInputBackspaceKeyDown}\n onMouseenter={onMouseEnter}\n onMouseleave={onMouseLeave}\n onFocus={onInnerFocus}\n onBlur={onInnerBlur}\n onClick={onClick}\n onCompositionstart={onInputCompositionstart}\n onCompositionend={onInputCompositionend}\n {...inputProps.value}\n />\n );\n };\n },\n});\n","import { ref } from 'vue';\n\nexport interface UseHoverParams {\n readonly: boolean;\n disabled: boolean;\n onMouseenter: (context: { e: MouseEvent }) => void;\n onMouseleave: (context: { e: MouseEvent }) => void;\n}\n\nexport function useHover(props: UseHoverParams) {\n const { disabled, readonly, onMouseenter, onMouseleave } = props;\n const isHover = ref(false);\n\n const addHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = true;\n onMouseenter?.(context);\n };\n\n const cancelHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = false;\n onMouseleave?.(context);\n };\n\n return { isHover, addHover, cancelHover };\n}\n","import { ref, reactive } from 'vue';\nimport { DragSortProps, DragSortInnerProps } from '../types';\n\nexport function useDragSorter(props: DragSortProps): DragSortInnerProps {\n const { sortOnDraggable, onDragSort, onDragOverCheck } = props;\n const draggingIndex = ref(-1);\n const dragStartData = ref(null);\n const isDropped = ref(null);\n const startInfo = reactive({ nodeX: 0, nodeWidth: 0, mouseX: 0 });\n\n const onDragOver = (e: DragEvent, index: number, record: T) => {\n e.preventDefault();\n if (draggingIndex.value === index || draggingIndex.value === -1) return;\n const target = e.target as HTMLElement;\n if (onDragOverCheck?.targetClassNameRegExp && !onDragOverCheck?.targetClassNameRegExp.test(target.className)) {\n return;\n }\n\n if (onDragOverCheck?.x && target) {\n if (!startInfo.nodeWidth) return;\n\n const { x, width } = target.getBoundingClientRect();\n const targetNodeMiddleX = x + width / 2;\n const draggingNodeLeft = e.clientX - (startInfo.mouseX - startInfo.nodeX);\n const draggingNodeRight = draggingNodeLeft + startInfo.nodeWidth;\n\n let overlap = false;\n if (draggingNodeLeft > x && draggingNodeLeft < x + width) {\n overlap = draggingNodeLeft < targetNodeMiddleX;\n } else {\n overlap = draggingNodeRight > targetNodeMiddleX;\n }\n\n if (!overlap) return;\n }\n\n onDragSort?.({\n currentIndex: draggingIndex.value,\n current: dragStartData,\n target: record,\n targetIndex: index,\n });\n\n draggingIndex.value = index;\n };\n\n if (!sortOnDraggable) {\n return {};\n }\n\n function onDragStart(e: DragEvent, index: number, record: T) {\n draggingIndex.value = index;\n dragStartData.value = record;\n const target = e.target as HTMLElement;\n if (onDragOverCheck && target) {\n const { x, width } = target.getBoundingClientRect();\n startInfo.nodeX = x;\n startInfo.nodeWidth = width;\n startInfo.mouseX = e.clientX;\n }\n }\n\n function onDrop() {\n isDropped.value = true;\n }\n\n function onDragEnd() {\n if (!isDropped.value) {\n // 取消排序,待扩展 api,输出 dragStartData\n }\n isDropped.value = false;\n draggingIndex.value = -1;\n dragStartData.value = null;\n }\n\n function getDragProps(index: number, record: T) {\n if (sortOnDraggable) {\n return {\n draggable: true,\n onDragstart: (e: DragEvent) => {\n onDragStart(e, index, record);\n },\n onDragover: (e: DragEvent) => {\n onDragOver(e, index, record);\n },\n onDrop: () => {\n onDrop();\n },\n onDragend: () => {\n onDragEnd();\n },\n };\n }\n return {};\n }\n\n return { onDragStart, onDragOver, onDrop, onDragEnd, getDragProps, dragging: draggingIndex.value !== -1 };\n}\n","/**\n * 当标签数量过多时,输入框显示不下,则需要滚动查看,以下为滚动逻辑\n * 如果标签过多时的处理方式,是标签省略,则不需要此功能\n */\n\nimport { isFunction } from 'lodash-es';\nimport { onMounted, onUnmounted, ref, toRefs } from 'vue';\nimport { TdTagInputProps } from '../type';\n\nexport function useTagScroll(props: TdTagInputProps) {\n const tagInputRef = ref();\n const { excessTagsDisplayType, readonly, disabled } = toRefs(props);\n // 允许向右滚动的最大距离\n const scrollDistance = ref(0);\n const scrollElement = ref();\n const mouseEnterTimer = ref();\n const isScrollable = ref(false); // 设置可滚动\n\n const updateScrollElement = (element: HTMLElement) => {\n const inputElement = element.children[0] as HTMLElement;\n scrollElement.value = inputElement;\n };\n\n const updateScrollDistance = () => {\n scrollDistance.value = scrollElement.value.scrollWidth - scrollElement.value.clientWidth;\n };\n\n const scrollTo = (distance: number) => {\n if (!isFunction(scrollElement.value?.scroll)) return;\n scrollElement.value.scroll({ left: distance, behavior: 'smooth' });\n };\n\n const scrollToRight = () => {\n updateScrollDistance();\n scrollTo(scrollDistance.value);\n setTimeout(() => {\n isScrollable.value = true;\n }, 200);\n };\n\n const scrollToLeft = () => {\n scrollTo(0);\n };\n\n // TODO:MAC 电脑横向滚动,Windows 纵向滚动。当前只处理了横向滚动\n const onWheel = ({ e }: { e: WheelEvent }) => {\n if (readonly.value || disabled.value) return;\n if (!scrollElement.value) return;\n if (e.deltaX > 0) {\n const distance = Math.min(scrollElement.value.scrollLeft + 120, scrollDistance.value);\n scrollTo(distance);\n } else {\n const distance = Math.max(scrollElement.value.scrollLeft - 120, 0);\n scrollTo(distance);\n }\n };\n\n // 鼠标 hover,自动滑动到最右侧,以便输入新标签\n const scrollToRightOnEnter = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n // 一闪而过的 mousenter 不需要执行\n mouseEnterTimer.value = setTimeout(() => {\n scrollToRight();\n clearTimeout(mouseEnterTimer.value);\n }, 100);\n };\n\n const scrollToLeftOnLeave = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n isScrollable.value = false; // 离开焦点不可滚动\n scrollTo(0);\n clearTimeout(mouseEnterTimer.value);\n };\n\n const init = () => {\n const element = tagInputRef.value?.$el;\n if (!element) return;\n updateScrollElement(element);\n };\n\n const clear = () => {\n clearTimeout(mouseEnterTimer.value);\n };\n\n onMounted(init);\n\n onUnmounted(clear);\n\n return {\n tagInputRef,\n scrollElement,\n scrollDistance,\n scrollTo,\n scrollToRight,\n scrollToLeft,\n updateScrollElement,\n updateScrollDistance,\n onWheel,\n scrollToRightOnEnter,\n scrollToLeftOnLeave,\n isScrollable,\n };\n}\n","import { computed, ref, toRefs } from 'vue';\nimport { TagInputValue, TagInputChangeContext } from '../type';\nimport { TagInputProps } from '../types';\nimport { InputValue } from '../../input';\nimport Tag from '../../tag';\nimport { useVModel, useTNodeJSX, useDisabled, useReadonly, usePrefixClass } from '@tdesign/shared-hooks';\n\nexport type ChangeParams = [TagInputChangeContext];\n\n// handle tag add and remove\nexport function useTagList(props: TagInputProps) {\n const renderTNode = useTNodeJSX();\n const classPrefix = usePrefixClass();\n const { value, modelValue, onRemove, max, minCollapsedNum, size, tagProps, getDragProps } = toRefs(props);\n // handle controlled property and uncontrolled property\n const [_tagValue, setTagValue] = useVModel(value, modelValue, props.defaultValue || [], props.onChange);\n const tagValue = computed(() => _tagValue.value || []);\n const oldInputValue = ref();\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // 点击标签关闭按钮,删除标签\n const onClose = (p: { e?: MouseEvent; index: number }) => {\n const arr = [...tagValue.value];\n const [item] = arr.splice(p.index, 1); // 当前删除的item无需参数传递\n setTagValue(arr, { trigger: 'tag-remove', ...p, item });\n onRemove.value?.({ ...p, item, trigger: 'tag-remove', value: arr });\n };\n\n const clearAll = (context: { e: MouseEvent }) => {\n setTagValue([], { trigger: 'clear', e: context.e });\n };\n\n // 按下 Enter 键,新增标签\n const onInnerEnter = (value: string, context: { e: KeyboardEvent }) => {\n const valueStr = value ? String(value).trim() : '';\n const isLimitExceeded = max && tagValue.value.length >= max.value;\n let newValue: TagInputValue = tagValue.value;\n if (!isLimitExceeded && valueStr) {\n newValue = tagValue.value.concat(String(valueStr));\n setTagValue(newValue, {\n trigger: 'enter',\n index: newValue.length - 1,\n item: valueStr,\n e: context.e,\n });\n }\n props?.onEnter?.(newValue, { ...context, inputValue: value });\n };\n\n // 按下回退键,删除标签\n const onInputBackspaceKeyUp = (value: InputValue) => {\n if (!tagValue.value.length) return;\n oldInputValue.value = value;\n };\n // 按下回退键,删除标签\n const onInputBackspaceKeyDown = (value: InputValue, context: { e: KeyboardEvent }) => {\n const { e } = context;\n if (!tagValue.value.length || e.key === 'Process' || isReadonly.value) return;\n // 回车键删除,输入框值为空时,才允许 Backspace 删除标签\n const isDelete = /(Backspace|NumpadDelete)/i.test(e.code) || /(Backspace|NumpadDelete)/i.test(e.key);\n if (!value && isDelete) {\n const index = tagValue.value.length - 1;\n const item = tagValue.value[index];\n const trigger = 'backspace';\n const newValue = tagValue.value.slice(0, -1);\n setTagValue(newValue, { e, index, item, trigger });\n onRemove.value?.({ e, index, item, trigger, value: newValue });\n }\n oldInputValue.value = value;\n };\n\n const renderLabel = ({ displayNode, label }: { displayNode: any; label: any }) => {\n const newList = minCollapsedNum.value ? tagValue.value.slice(0, minCollapsedNum.value) : tagValue.value;\n const list = displayNode\n ? [displayNode]\n : newList.map((item, index) => {\n const tagContent = renderTNode('tag', { params: { value: item } });\n return (\n onClose({ e: context.e, index })}\n closable={!isReadonly.value && !isDisabled.value}\n {...getDragProps.value?.(index, item)}\n {...tagProps.value}\n >\n {tagContent ?? item}\n \n );\n }) || [];\n if (![null, undefined, ''].includes(label)) {\n list.unshift(\n
    \n {label}\n
    ,\n );\n }\n // 超出省略\n if (newList.length !== tagValue.value.length) {\n const len = tagValue.value.length - newList.length;\n const more = renderTNode('collapsedItems', {\n params: {\n value: tagValue.value,\n count: tagValue.value.length - minCollapsedNum.value,\n collapsedTags: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n collapsedSelectedItems: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n onClose,\n },\n });\n list.push(\n more ?? (\n \n +{len}\n \n ),\n );\n }\n return list;\n };\n\n return {\n tagValue,\n clearAll,\n onClose,\n onInnerEnter,\n onInputBackspaceKeyUp,\n onInputBackspaceKeyDown,\n renderLabel,\n };\n}\n","import _TagInput from './tag-input';\nimport { withInstall } from '@tdesign/shared-utils';\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 { useDisabled, useReadonly, usePrefixClass, useDefaultValue } from '@tdesign/shared-hooks';\n\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] = useDefaultValue(\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, isFunction } from 'lodash-es';\n\nimport { TdSelectInputProps } from '../type';\nimport { TdPopupProps, PopupVisibleChangeContext } from '../../popup';\nimport { useDisabled, useReadonly } from '@tdesign/shared-hooks';\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 { pick, isObject } from 'lodash-es';\n\nimport Input, { StrInputProps } from '../../input';\nimport Loading from '../../loading';\nimport { useTNodeJSX, useDisabled, useReadonly, usePrefixClass, useDefaultValue } from '@tdesign/shared-hooks';\n\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\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 !value.value ||\n (props.valueDisplayOptions?.useInputDisplay && popupVisible) ||\n (popupVisible && props.allowInput)\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 (popupVisible && props.allowInput) {\n return displayedValue;\n }\n if (\n !props.valueDisplayOptions?.useInputDisplay ||\n (props.valueDisplayOptions?.useInputDisplay && !popupVisible)\n ) {\n return undefined;\n }\n }\n\n return displayedValue;\n };\n\n const renderPlaceholder = (singleValueDisplay: any) => {\n // 使用valueDisplay插槽时,如用户传入usePlaceholder使用自带占位符实现,未传则认为用户自行实现。\n // 如果当前存在value(对应直接使用组件和select组件调用时),不显示占位符。\n\n if (singleValueDisplay) {\n if (!value.value || (props.allowInput && props.popupVisible)) return props.placeholder;\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 { useTNodeJSX, usePrefixClass } from '@tdesign/shared-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 '@tdesign/shared-utils';\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","import { defineComponent, ref, toRefs, inject, watch, computed } from 'vue';\nimport { isString } from 'lodash-es';\nimport props from './props';\nimport {\n useVModel,\n useRipple,\n useContent,\n useDisabled,\n useReadonly,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { CheckboxGroupInjectionKey } from './consts';\nimport useCheckboxLazyLoad from './hooks/useCheckboxLazyLoad';\nimport useKeyboardEvent from './hooks/useKeyboardEvent';\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、Cascader 等组件中使用 阻止 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 e.stopPropagation()}\n key=\"input\"\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 { isObject, isUndefined, intersection } from 'lodash-es';\n\nimport Checkbox from './checkbox';\nimport props from './checkbox-group-props';\nimport { CheckboxOptionObj, TdCheckboxProps, CheckboxGroupValue } from './type';\nimport { CheckboxGroupInjectionKey } from './consts';\nimport { useVModel, useTNodeJSX, usePrefixClass, useChildComponentSlots } from '@tdesign/shared-hooks';\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 */\n const getAllCheckboxValue = () => {\n const checkAllVal = new Set();\n const uncheckAllVal = new Set();\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) {\n if (!innerValue.value.includes(item.value)) continue;\n else uncheckAllVal.add(item.value); // 添加禁用状态项的值到集合中\n }\n if (item.readonly) {\n if (!innerValue.value.includes(item.value)) continue;\n else uncheckAllVal.add(item.value); // 添加禁用状态项的值到集合中\n }\n\n checkAllVal.add(item.value); // 添加非排除状态项的值到集合中\n\n // 如果已达到最大限制,则终止循环\n if (maxExceeded.value) break;\n }\n\n return { checkAllVal: [...checkAllVal], uncheckAllVal: [...uncheckAllVal] }; // 从 Set 集合转换为数组并返回\n };\n\n const onCheckAllChange = (checked: boolean, context: { e: Event; source?: 't-checkbox' }) => {\n const { checkAllVal, uncheckAllVal } = getAllCheckboxValue();\n\n const value: CheckboxGroupValue = checked ? checkAllVal : uncheckAllVal;\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 '@tdesign/shared-utils';\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 isRemote: boolean,\n searchDisplayOptions: ComputedRef,\n optionsMap: ComputedRef, TdOptionProps>>,\n): string => {\n if (isRemote) {\n return searchDisplayOptions.value.filter((option) => option.value === value)[0]?.label || value?.toString();\n }\n\n const option = optionsMap.value.get(value);\n return option?.label || value?.toString();\n};\n\nexport const getMultipleContent = (\n value: SelectValue[],\n isRemote: boolean,\n searchDisplayOptions: ComputedRef,\n optionsMap: ComputedRef, TdOptionProps>>,\n) => {\n const res = [];\n for (const iterator of value) {\n const resLabel = getSingleContent(iterator, isRemote, searchDisplayOptions, 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 { useRipple, useContent, useDisabled, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\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, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\nimport props from './option-group-props';\n\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 '@tdesign/shared-hooks';\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,主要是为了方便跟其他组件搭配使用,比如说表格或者下拉框\nexport function 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}\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 { useConfig, useTNodeJSX, usePrefixClass, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport { usePanelVirtualScroll } from '../hooks';\nimport { selectInjectKey } from '../consts';\nimport type { TdSelectProps as SelectProps } from '../type';\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 keys: TdSelectProps.keys,\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 const keys = computed(() => props.keys as SelectProps['keys']);\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\n const defaultOmit = ['index', '$index', 'className', 'tagName'];\n\n const { value, label, disabled } = keys.value || {};\n // 如果 keys 中刚好有 content,则移除 content 渲染 https://github.com/Tencent/tdesign-vue-next/issues/5088\n const shouldOmitContent = [value, label, disabled].includes('content');\n const option = omit(item, defaultOmit.concat(shouldOmitContent ? 'content' : []));\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\n return () => {\n return isVirtual.value ? (\n <>\n {renderTNodeJSX('panelTopContent')}\n
    \n
    \n {renderPanel(visibleData.value, panelStyle.value)}\n
    \n {renderTNodeJSX('panelBottomContent')}\n \n ) : (\n <>\n {renderTNodeJSX('panelTopContent')}\n {renderPanel(displayOptions.value)}\n {renderTNodeJSX('panelBottomContent')}\n \n );\n };\n },\n});\n","import { defineComponent, provide, computed, toRefs, watch, ref, nextTick, PropType } from 'vue';\nimport { get, isArray, debounce, cloneDeep, isFunction, intersection, pick as picker } from 'lodash-es';\n\nimport FakeArrow from '../common-components/fake-arrow';\nimport SelectInput from '../select-input';\nimport SelectPanel from './components/select-panel';\nimport Tag from '../tag';\nimport props from './props';\n// hooks\nimport {\n useVModel,\n useConfig,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n usePrefixClass,\n useDefaultValue,\n} from '@tdesign/shared-hooks';\n\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, TdOptionProps } 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\n const isObjectType = computed(() => props.valueType === 'object');\n\n // 内部数据,格式化过的\n const innerValue = computed(() => {\n if (orgValue.value === undefined) {\n return props.multiple ? [] : undefined;\n }\n if (isObjectType.value) {\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 { optionsMap, optionsList, optionsCache, displayOptions, filterMethods, searchDisplayOptions } =\n useSelectOptions(props, keys, innerInputValue, innerValue);\n\n const setInnerValue: TdSelectProps['onChange'] = (newVal: SelectValue | SelectValue[], context) => {\n if (isObjectType.value) {\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 &&\n innerPopupVisible.value &&\n getSingleContent(innerValue.value, isRemoteSearch.value, currentSelectOptions, 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[], isRemoteSearch.value, currentSelectOptions, optionsMap)\n : getSingleContent(innerValue.value, isRemoteSearch.value, currentSelectOptions, optionsMap),\n );\n\n // valueDisplayParams参数\n const valueDisplayParams = computed(() => {\n if (!props.multiple) {\n return {\n ...optionsMap.value.get(innerValue.value),\n value: innerValue.value,\n label: displayText.value,\n };\n }\n\n const val = isArray(innerValue.value) ? innerValue.value.map((value) => optionsMap.value.get(value)) : [];\n const params = {\n value: val,\n onClose: props.multiple ? (index: number) => removeTag(index) : () => {},\n };\n\n if (props.minCollapsedNum && isArray(innerValue.value)) {\n return {\n ...params,\n displayValue: Array.isArray(val) ? 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 === 'backspace') {\n // 如果最后一个为disabled,则应删除前一项(非disabled的)\n let closest = -1;\n let len = index;\n\n const currentSelected = getCurrentSelectedOptions();\n while (len >= 0) {\n if (!currentSelected[len]?.disabled) {\n closest = len;\n break;\n }\n len -= 1;\n }\n // 只剩下disabled的情况,不做任何操作\n if (closest < 0) return;\n\n // 前面不是disabled的option\n const values = currentSelected[closest];\n\n const currentSelectedOptions = currentSelected.filter((item) => item.value !== values.value);\n\n setInnerValue(\n currentSelectedOptions.map((item) => item.value),\n { selectedOptions: currentSelectedOptions, trigger, e },\n );\n\n props.onRemove?.({\n value: values.value as string | number,\n data: values,\n e,\n });\n\n return;\n }\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 // 获取当前选中的选项,和 getSelectedOptions 的区别是 这个会保持选择的先后顺序\n const getCurrentSelectedOptions = () => {\n const options: TdOptionProps[] = [];\n\n // 需要处理 objectType 的情况\n const selectedValue = isObjectType.value ? orgValue.value : innerValue.value;\n const values = isArray(selectedValue) ? selectedValue : [selectedValue];\n\n values.forEach((value) => {\n const option = optionsMap.value.get(isObjectType.value ? value.value : value);\n if (option) options.push(option);\n // 处理不存在选项的值的场景,也需要推入\n else options.push(isObjectType.value ? value : { value });\n });\n return options;\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 = isObjectType.value\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 (\n intersectionLen.value === (isRemoteSearch.value ? searchDisplayOptions.value.length : optionalList.value.length)\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 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\n /**\n * 获取当前选中的选项 —— 远程搜索数据和本地传入的数据\n */\n const currentSelectOptions = computed(() => {\n return isRemoteSearch.value ? searchDisplayOptions.value : getCurrentSelectedOptions();\n });\n\n const renderValueDisplay = () => {\n const renderTag = () => {\n if (!props.multiple || props.selectInputProps?.multiple === false) {\n return undefined;\n }\n\n return innerValue.value\n .slice(0, props.minCollapsedNum ? props.minCollapsedNum : innerValue.value.length)\n .map?.((v: string, key: number) => {\n const option = currentSelectOptions.value.find((item) => {\n if (item.value === v) {\n return true;\n }\n });\n\n return (\n {\n e.stopPropagation();\n props.tagProps?.onClose?.({ e });\n removeTag(key);\n }}\n >\n {option ? option.label ?? option?.value : v}\n \n );\n });\n };\n\n return (\n renderTNodeJSX('valueDisplay', {\n params: valueDisplayParams.value,\n }) || renderTag()\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={renderValueDisplay}\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 { computed, Slots, Ref, ref } from 'vue';\nimport { get, isArray, isFunction, uniqBy } from 'lodash-es';\n\nimport { useChildComponentSlots } from '@tdesign/shared-hooks';\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 = (\n props: TdSelectProps,\n keys: Ref,\n inputValue: Ref,\n innerValue: Ref>,\n) => {\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 searchOptions = ref([]);\n\n const getSelectedOptions = (options: TdOptionProps[], selectValue: SelectValue[] | SelectValue) => {\n return options.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 * @description 获取搜索结果选项\n * 这里通过记录所有时间选中的 options 来保证搜索结果中选中的选项不会被过滤掉\n */\n const searchDisplayOptions = computed(() => {\n const currentSelectedOptions = getSelectedOptions(optionsList.value, innerValue.value);\n searchOptions.value = uniqBy([...searchOptions.value, ...currentSelectedOptions], 'value');\n const searchSelectedOptions = getSelectedOptions(searchOptions.value, innerValue.value);\n\n return uniqBy([...searchSelectedOptions, ...optionsList.value], 'value');\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 searchDisplayOptions,\n };\n};\n","import { ref, watch, ComputedRef, Ref } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { getNewMultipleValue } from '../utils';\n\nimport type { SelectOption, TdOptionProps, SelectValue } from '../type';\nimport type { ChangeHandler } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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, isNumber, isFunction } from 'lodash-es';\n\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport props from './props';\n\nexport default defineComponent({\n name: 'TInputAdornment',\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 '@tdesign/shared-utils';\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, isObject } 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 {\n useConfig,\n useVModel,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useDefaultValue,\n} from '@tdesign/shared-hooks';\n\nimport TInputNumber from '../input-number';\nimport { Select } from '../select';\nimport TInputAdornment from '../input-adornment';\nimport props from './props';\nimport { usePaginationClasses, useMoreAction } from './hooks';\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 '@tdesign/shared-hooks';\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 { useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport TButton from '../button';\nimport TTooltip from '../tooltip';\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 const renderWithTooltip = (content: string | undefined, node: JSX.Element) => {\n if (!content) return node;\n return (\n \n {node}\n \n );\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 {renderWithTooltip(\n titleConfig.value.prev,\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\n {props.showCurrent &&\n renderWithTooltip(\n titleConfig.value.current,\n props.onChange?.({ e, trigger: 'current' })}\n icon={() => }\n class={`${COMPONENT_NAME.value}__current`}\n disabled={disabledConfig.value.current}\n />,\n )}\n\n {renderWithTooltip(\n titleConfig.value.next,\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});\n","import _Pagination from './pagination';\nimport _PaginationMini from './pagination-mini';\nimport { withInstall } from '@tdesign/shared-utils';\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, useContent, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-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 { useVModel, usePrefixClass, useChildComponentSlots } from '@tdesign/shared-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 '@tdesign/shared-utils';\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 { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\nimport type { Styles } from '../common';\nimport Popup from '../popup';\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, useChildComponentSlots } from '@tdesign/shared-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 '@tdesign/shared-utils';\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 '@tdesign/shared-utils';\nimport { useConfig, useContent, useChildSlots, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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 '@tdesign/shared-hooks';\nimport { isString, 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 { isString, isFunction, escapeRegExp } from 'lodash-es';\nimport HighlightOption from './highlight-option';\nimport { useConfig, usePrefixClass, CommonClassNameType } from '@tdesign/shared-hooks';\nimport { AutoCompleteOptionObj, TdAutoCompleteProps } from '../type';\nimport log from '@tdesign/common-js/log/index';\n\nimport { on, off } from '@tdesign/shared-utils';\n\nimport { ARROW_UP_REG, ARROW_DOWN_REG, ENTER_REG } from '@tdesign/common-js/common';\n\nexport default defineComponent({\n name: 'AutoCompleteOptionList',\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 emits: ['select'],\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.value[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 {\n useVModel,\n useContent,\n useTNodeJSX,\n useDisabled,\n useReadonly,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\nimport AutoCompleteOptionList from './components/option-list';\n\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { ClassName } from '../common';\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, SIZE } = 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 './components/highlight-option';\nimport { withInstall } from '@tdesign/shared-utils';\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 { isArray, isEmpty, isNumber, isObject } from 'lodash-es';\n\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 { isArray, isNumber, cloneDeep, isFunction } 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\n // 筛选情况下,不更新展开节点\n if (!cascaderContext.inputVal) {\n treeStore.replaceExpanded(expanded);\n const nodes = treeStore.getNodes().filter((node: TreeNode) => node.visible);\n setTreeNodes(nodes);\n }\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 { useRipple, useGlobalIcon, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\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 { useConfig, usePrefixClass, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport { getDefaultNode } from '@tdesign/shared-utils';\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, isString, isFunction } from 'lodash-es';\n\nimport TreeStore from '@tdesign/common-js/tree/tree-store';\nimport { useVModel, useDisabled, useDefaultValue } from '@tdesign/shared-hooks';\n\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 }\n\n if (!isEmptyValues(innerValue.value)) {\n statusContext.scopeVal = getCascaderValue(innerValue.value, valueType, multiple);\n } else {\n statusContext.scopeVal = 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 {\n useConfig,\n useTNodeJSX,\n useDisabled,\n useReadonly,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\nimport { useCascaderContext } from './hooks';\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 '@tdesign/shared-utils';\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 '@tdesign/shared-hooks';\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 /** 是否只读,优先级大于 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 '@tdesign/shared-hooks';\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 internalYear: Array as PropType>,\n partial: String,\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 const nearestYear = computed(() => {\n // 右侧面板年份选择需要保持大于左侧面板年份选择\n const extraYear =\n props.partial === 'end' &&\n props.mode === 'year' &&\n Number(props.internalYear[1]) - Number(props.internalYear[0]) <= 9\n ? 9\n : 0;\n\n return (\n yearOptions.value.find(\n (option) => option.value - (props.year + extraYear) <= 9 && option.value - (props.year + extraYear) >= 0,\n )?.value || props.year\n );\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 '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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 const valueDayjs = parseToDayjs(value, props.format).locale(dayjsLocale);\n const targetDayjs = parseToDayjs(targetValue, props.format).locale(dayjsLocale);\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]:\n valueDayjs.year() === targetDayjs.year() && valueDayjs.week() === targetDayjs.week(),\n };\n };\n\n const multipleWeekRowClass = (value: DateMultipleValue, targetValue: Date) => {\n const targetDayjs = parseToDayjs(targetValue, props.format);\n if (props.mode !== 'week' || (Array.isArray(value) && !value.length)) return {};\n const isSomeYearWeek = value\n .map?.((v) => parseToDayjs(v, props.format))\n .some((item) => item.week() === targetDayjs.week() && item.year() === targetDayjs.year());\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]: isSomeYearWeek,\n };\n };\n const activeRowCss = props.multiple ? multipleWeekRowClass : weekRowClass;\n\n return () => (\n
    props.onCellMouseLeave?.({ e })}>\n \n {showThead.value && (\n \n \n {weekArr.value.map((value: string, i: number) => (\n \n ))}\n \n \n )}\n \n {props.data.map((row: Array, i: number) => (\n \n {row.map((col: any, j: number) => (\n \n ))}\n \n ))}\n \n
    \n {value}\n
    \n
    \n );\n },\n});\n","export const AM = 'am';\nexport const PM = 'pm';\nexport const MERIDIEM_LIST = [AM, PM];\n\nexport const TIME_PICKER_EMPTY: Array = [undefined, undefined];\n\nexport const DEFAULT_STEPS = [1, 1, 1];\nexport const DEFAULT_FORMAT = 'HH:mm:ss';\nexport const EMPTY_VALUE = -1;\n\nexport enum EPickerCols {\n hour = 'hour',\n minute = 'minute',\n second = 'second',\n milliSecond = 'millisecond',\n meridiem = 'meridiem',\n}\n\n// RegExp\nexport const TIME_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\n// 上下午前置\nexport const PRE_MERIDIEM_FORMAT = /^(a|A)\\s+?[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?$/;\n// 上下午后置\nexport const POST_MERIDIEM_FORMAT = /^[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?(\\s+(a|A))?$/;\n// 12小时制\nexport const TWELVE_HOUR_FORMAT = /[h]{1}/;\n// HH:mm\nexport const HM_FORMAT = /[hH]{1,2}:m{1,2}/;\n// HH:mm:ss\nexport const HMS_FORMAT = /[hH]{1,2}:m{1,2}:s{1,2}/;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimePickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项的配置函数 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 透传给输入框(Input)组件的参数 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间选择,示例:`{ '前一小时': '11:00:00' }` */\n presets: {\n type: Object as PropType,\n },\n /** 只读状态,优先级大于 `allowInput` */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimePickerProps['size'],\n validator(val: TdTimePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimePickerProps['status'],\n validator(val: TdTimePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n modelValue: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: String as PropType,\n default: '' as TdTimePickerProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 当输入框失去焦点时触发,value 表示组件当前有效值 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 点击清空按钮时触发 */\n onClear: Function as PropType,\n /** 面板关闭时触发 */\n onClose: Function as PropType,\n /** 点击确认按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发,value 表示组件当前有效值 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板打开时触发 */\n onOpen: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { isBoolean } from 'lodash-es';\nimport { PropType } from 'vue';\nimport dayjs from 'dayjs';\n\nimport * as Props from '../props';\nimport { EPickerCols } from '@tdesign/common-js/time-picker/const';\nimport { TdTimePickerProps, TdTimeRangePickerProps } from '../type';\n\n// 布尔类型\nconst BooleanType = {\n type: Boolean,\n default: true,\n validator(v: boolean): boolean {\n return isBoolean(v);\n },\n};\n\nexport const panelProps = () => ({\n disabled: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n isFocus: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n value: {\n type: String,\n default: '',\n },\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n isShowPanel: {\n ...BooleanType,\n ...{\n default: true,\n },\n },\n activeIndex: {\n type: Number,\n },\n presets: {\n type: Object as PropType,\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n isFooterDisplay: {\n ...BooleanType,\n },\n});\n\nexport const panelColProps = () => ({\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n cols: {\n type: Array as PropType>,\n default: () => [EPickerCols.hour, EPickerCols.minute, EPickerCols.second],\n },\n value: {\n type: String,\n default: '',\n },\n range: {\n type: Array as PropType>,\n default: () => [] as Array,\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n localeMeridiems: {\n type: Array as PropType>,\n },\n});\n","import dayjs from 'dayjs';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { EPickerCols, TIME_FORMAT } from './const';\n\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\n\n// 判断是否输入的值是合法的timepicker的值\nexport function validateInputValue(value: string, format: string) {\n return dayjs(value, format).format(format) === value;\n}\n\n// 转换输入值为标准格式的timepicker的值\nexport function formatInputValue(value: string, format: string) {\n return dayjs(value, format).format(format);\n}\n\n// 计算最接近的时间点\nexport function closestLookup(\n availableArr: Array,\n calcVal: number,\n step: number\n) {\n if (step <= 1) return calcVal;\n return availableArr.sort(\n (a, b) => Math.abs(calcVal + 1 - a) - Math.abs(calcVal + 1 - b)\n )[0];\n}\n\nexport function getPickerCols(format:string) {\n const renderCol: EPickerCols[] = [];\n const {\n meridiem, hour, minute, second, milliSecond,\n } = EPickerCols;\n const match = format.match(TIME_FORMAT);\n match.forEach((m) => {\n switch (m) {\n case 'H':\n case 'HH':\n case 'h':\n case 'hh':\n renderCol.push(hour);\n break;\n case 'a':\n case 'A':\n renderCol.push(meridiem);\n break;\n case 'm':\n case 'mm':\n renderCol.push(minute);\n break;\n case 's':\n case 'ss':\n renderCol.push(second);\n break;\n case 'SSS':\n renderCol.push(milliSecond);\n break;\n default:\n break;\n }\n });\n return renderCol;\n}\n","import { computed, defineComponent, ref, watch, toRefs, onMounted, reactive, nextTick } from 'vue';\nimport { range, debounce, padStart } from 'lodash-es';\n\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 '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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 internalYear: Array as PropType>,\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 '@tdesign/shared-hooks';\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: Boolean,\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: Boolean,\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.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 '@tdesign/shared-hooks';\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 { useConfig, useTNodeJSX, useReadonly, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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: Boolean,\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 { useConfig, useTNodeJSX, useDisabled, useReadonly, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\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';\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 if (['week', 'quarter'].includes(props.mode)) {\n onChange?.(ctx.value, { trigger: 'tag-remove' });\n return;\n }\n\n const removeDate = dayjs(ctx.item).toDate();\n const newDate = processDate(removeDate);\n onChange?.(newDate, {\n dayjsValue: parseToDayjs(removeDate, formatRef.value.format),\n trigger: 'tag-remove',\n });\n }\n\n function onTagClearClick({ e }: { e: MouseEvent }) {\n e.stopPropagation();\n popupVisible.value = false;\n onChange?.([], { dayjsValue: dayjs(), trigger: 'clear' });\n }\n\n // 头部快速切换\n function onJumperClick({ trigger }: { trigger: string }) {\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n\n const current = new Date(year.value, month.value);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n const nextYear = next.getFullYear();\n const nextMonth = next.getMonth();\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // timePicker 点击\n function onTimePickerChange(val: string) {\n time.value = val;\n\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n const currentDate = !dayjs(inputValue.value as string, formatRef.value.format).isValid()\n ? dayjs()\n : dayjs(inputValue.value as string, formatRef.value.format);\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n inputValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n cacheValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n\n props.onPick?.(nextDate);\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = formatDate(inputValue.value, {\n format: formatRef.value.format,\n });\n if (nextValue) {\n props?.onConfirm?.({ date: dayjs(nextValue as string).toDate(), e });\n onChange?.(\n formatDate(inputValue.value, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(inputValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n } else {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n }\n popupVisible.value = false;\n }\n\n // 预设\n function onPresetClick(presetValue: DateValue | (() => DateValue)) {\n const presetVal = isFunction(presetValue) ? presetValue() : presetValue;\n onChange?.(\n formatDate(presetVal, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(presetVal, formatRef.value.format),\n trigger: 'preset',\n },\n );\n // 更新到 input,避免 needConfirm 导致值被覆盖\n inputValue.value = formatDate(presetVal, {\n format: formatRef.value.format,\n });\n popupVisible.value = false;\n }\n\n function onYearChange(nextYear: number) {\n year.value = nextYear;\n }\n\n function onMonthChange(nextMonth: number) {\n month.value = nextMonth;\n }\n\n const panelProps = computed(() => ({\n value: cacheValue.value as string,\n year: year.value,\n month: month.value,\n format: formatRef.value.format,\n mode: props.mode,\n presets: props.presets,\n multiple: props.multiple,\n time: props.multiple ? '' : time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: popupVisible.value,\n needConfirm: props.needConfirm,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n onPanelClick: () => inputRef.value?.focus?.(),\n }));\n\n return () => (\n
    \n renderTNodeJSX('label')}\n status={props.status}\n tips={props.tips}\n clearable={props.clearable}\n readonly={isReadOnly.value}\n multiple={props.multiple}\n popupProps={popupProps.value}\n inputProps={inputProps.value}\n placeholder={\n props.placeholder || (globalConfig.value.placeholder as { [key in typeof props.mode]: string })[props.mode]\n }\n popupVisible={!isReadOnly.value && popupVisible.value}\n valueDisplay={() => renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n needConfirm={props.needConfirm}\n {...(props.selectInputProps as TdDatePickerProps['selectInputProps'])}\n panel={() => }\n tagInputProps={{\n onRemove: onTagRemoveClick,\n }}\n onClear={onTagClearClick}\n prefixIcon={() => renderTNodeJSX('prefixIcon')}\n suffixIcon={() => renderTNodeJSX('suffixIcon') || }\n />\n
    \n );\n },\n});\n","import { ref, computed, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { omit } from 'lodash-es';\n\nimport { useDisabled, useReadonly, usePrefixClass } from '@tdesign/shared-hooks';\n\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';\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 {\n useVModel,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 '@tdesign/shared-hooks';\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 needConfirm: Boolean,\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.mode === 'year' && props.year[1] - props.year[0] <= 9 ? props.year[1] + 9 : 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 internalYear: props.year,\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, useReadonly, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { isArray, isFunction } 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';\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 if (props.needConfirm) {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n } else {\n confirmValueChange();\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 const confirmValueChange = (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: e || null,\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 function onConfirmClick({ e }: { e: MouseEvent }) {\n confirmValueChange(e);\n\n const nextValue = [...(inputValue.value as string[])];\n\n const notValidIndex = nextValue.findIndex((v) => !v || !isValidDate(v, formatRef.value.format));\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 needConfirm: props.needConfirm,\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 { isArray, isFunction } 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 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 props.onCellClick?.({\n e,\n partial: activeIndex.value ? 'end' : 'start',\n date: nextValue.map((v) => dayjs(v).toDate()),\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 '@tdesign/shared-utils';\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","/* 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 /** 表单原生的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 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","\"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 assertString(input) {\n if (input === undefined || input === null) throw new TypeError(\"Expected a string but received a \".concat(input));\n if (input.constructor.name !== 'String') throw new TypeError(\"Expected a string but received a \".concat(input.constructor.name));\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 }; }\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/**\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(ipAddress) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(ipAddress);\n\n // accessing 'arguments' for backwards compatibility: isIP(ipAddress [, version])\n // eslint-disable-next-line prefer-rest-params\n var version = (_typeof(options) === 'object' ? options.version : arguments[1]) || '';\n if (!version) {\n return isIP(ipAddress, {\n version: 4\n }) || isIP(ipAddress, {\n version: 6\n });\n }\n if (version.toString() === '4') {\n return IPv4AddressRegExp.test(ipAddress);\n }\n if (version.toString() === '6') {\n return IPv6AddressRegExp.test(ipAddress);\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;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar includes = function includes(str, val) {\n return str.indexOf(val) !== -1;\n};\nvar _default = exports.default = includes;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { isEmpty, isObject, isNumber, isBoolean } from 'lodash-es';\n\n// https://github.com/validatorjs/validator.js\n\nimport isDate from 'validator/lib/isDate';\nimport isEmail from 'validator/lib/isEmail';\n\nimport isURL from 'validator/lib/isURL';\n\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 _includesString = _interopRequireDefault(require(\"./util/includesString\"));\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\nprotocols - valid protocols can be modified with this option.\nrequire_tld - If set to false isURL will not check if the URL's host includes a top-level domain.\nrequire_protocol - if set to true isURL will return false if protocol is not present in the URL.\nrequire_host - if set to false isURL will not check if host is present in the URL.\nrequire_port - if set to true isURL will check if port is present in the URL.\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option.\nallow_underscores - if set to true, the validator will allow underscores in the URL.\nhost_whitelist - if set to an array of strings or regexp, and the domain matches none of the strings\n defined in it, the validation fails.\nhost_blacklist - if set to an array of strings or regexp, and the domain matches any of the strings\n defined in it, the validation fails.\nallow_trailing_dot - if set to true, the validator will allow the domain to end with\n a `.` character.\nallow_protocol_relative_urls - if set to true protocol relative URLs will be allowed.\nallow_fragments - if set to false isURL will return false if fragments are present.\nallow_query_components - if set to false isURL will return false if query components are present.\ndisallow_auth - if set to true, the validator will fail if the URL contains an authentication\n component, e.g. `http://username:password@example.com`\nvalidate_length - if set to false isURL will skip string length validation. `max_allowed_length`\n will be ignored if this is set as `false`.\nmax_allowed_length - if set, isURL will not allow URLs longer than the specified value (default is\n 2084 that IE maximum URL length).\n\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 && (0, _includesString.default)(url, '#')) {\n return false;\n }\n if (!options.allow_query_components && ((0, _includesString.default)(url, '?') || (0, _includesString.default)(url, '&'))) {\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;","export function getFormItemClassName(componentName: string, name?: string) {\n if (!name) return '';\n return `${componentName}__${name}`.replace(/(\\[|\\]|\\.)+/g, '_');\n}\n","import { computed, defineComponent, provide, reactive, ref, toRefs } from 'vue';\nimport { isEmpty, isArray, isBoolean, isFunction } from 'lodash-es';\n\nimport { requestSubmit } from '@tdesign/shared-utils';\nimport { FormItemValidateResult } 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';\nimport { getFormItemClassName } from './utils';\nimport { FormDisabledProvider, FormReadonlyProvider } from './hooks';\nimport { usePrefixClass, useTNodeJSX } from '@tdesign/shared-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)}\n onReset={(e) => onReset(e)}\n >\n {renderContent('default')}\n \n );\n },\n});\n","/* 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 {\n isNil,\n isArray,\n isNumber,\n isString,\n isBoolean,\n cloneDeep,\n get as lodashGet,\n set as lodashSet,\n} 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, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\nimport { getFormItemClassName } from './utils';\nimport { template } from '@tdesign/common-js/utils/stringTemplate';\n\nexport type FormItemValidateResult = { [key in keyof T]: boolean | AllValidateResult[] };\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 ?? globalConfig.value.requiredMarkPosition;\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 error: CloseCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n success: CheckCircleFilledIcon,\n }[type];\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","import _Form from './form';\nimport _FormItem from './form-item';\nimport { withInstall } from '@tdesign/shared-utils';\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 {\n useVModel,\n useContent,\n useDisabled,\n useReadonly,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\nimport { omit, isString } from 'lodash-es';\nimport props from './props';\nimport { RadioGroupInjectionKey, RadioButtonInjectionKey } from './consts';\n\n// hooks\n\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 '@tdesign/shared-hooks';\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 { isNil, isEqual, isString, isNumber, throttle, isFunction } from 'lodash-es';\n\nimport props from './radio-group-props';\nimport type { RadioOptionObj, RadioOption, TdRadioGroupProps } from './type';\nimport TRadio from './radio';\nimport TRadioButton from './radio-button';\nimport { RadioGroupInjectionKey } from './consts';\nimport {\n useVModel,\n usePrefixClass,\n useTNodeDefault,\n useResizeObserver,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { useKeyboard } from './hooks';\n\nimport { useMutationObserver } from '../watermark/hooks';\nimport type { UseMutationObserverReturn } from '../watermark/hooks';\n\nexport default defineComponent({\n name: 'TRadioGroup',\n props,\n setup(props) {\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n /** calculate bar style */\n const radioGroupRef = ref();\n const radioBtnName = usePrefixClass('radio-button');\n const { STATUS, SIZE } = useCommonClassName();\n\n const updateInnerValue: TdRadioGroupProps['onChange'] = (value, context) => {\n if (isEqual(value, innerValue.value)) return;\n setInnerValue(value, context);\n };\n\n // 键盘操作\n useKeyboard(radioGroupRef, updateInnerValue);\n\n const checkedClassName = computed(() => `.${radioBtnName.value}.${STATUS.value.checked}`);\n\n const barStyle = ref({ width: '0px', height: '0px', left: '0px', top: '0px', 'transition-property': 'none' });\n\n const calcDefaultBarStyle = () => {\n const div = document.createElement('div');\n div.setAttribute('style', 'position: absolute; visibility: hidden;');\n div.appendChild(radioGroupRef.value.cloneNode(true));\n document.body.appendChild(div);\n\n const defaultCheckedRadio: HTMLElement = div.querySelector(checkedClassName.value);\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = defaultCheckedRadio;\n barStyle.value = {\n ...barStyle.value,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n document.body.removeChild(div);\n };\n\n const calcBarStyle = (disableAnimation = false) => {\n if (props.variant === 'outline') return;\n\n const checkedRadio: HTMLElement = radioGroupRef.value.querySelector(checkedClassName.value);\n\n const transitionProperty = disableAnimation ? 'none' : 'all';\n if (!checkedRadio) {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: '0px',\n height: '9px',\n left: '0px',\n top: '0px',\n };\n return;\n }\n\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = checkedRadio;\n // current node is not rendered,fallback to default render\n if (!offsetWidth) {\n calcDefaultBarStyle();\n } else {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n }\n };\n\n let observerReturn: UseMutationObserverReturn;\n\n watch(innerValue, async () => {\n await nextTick();\n calcBarStyle();\n });\n\n onMounted(() => {\n calcBarStyle(true);\n useResizeObserver(\n radioGroupRef,\n throttle(async () => {\n await nextTick();\n calcBarStyle();\n }, 300),\n );\n\n const checkedRadioLabel: HTMLElement = radioGroupRef.value.querySelector(\n `${checkedClassName.value} .${radioBtnName.value}__label`,\n );\n if (checkedRadioLabel) {\n observerReturn = useMutationObserver(\n checkedRadioLabel,\n (mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'characterData') {\n calcBarStyle();\n }\n });\n },\n {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n },\n );\n }\n });\n onUnmounted(() => {\n observerReturn?.stop();\n });\n /** calculate bar style end */\n\n const { name, disabled, readonly } = toRefs(props);\n provide(\n RadioGroupInjectionKey,\n reactive({\n name,\n disabled,\n readonly,\n value: innerValue,\n allowUncheck: props.allowUncheck,\n setValue: updateInnerValue,\n }),\n );\n\n const radioGroupName = usePrefixClass('radio-group');\n const renderSlot = useTNodeDefault();\n const renderBlock = (): VNode => {\n if (props.variant.includes('filled') && !isNil(innerValue.value))\n return
    ;\n };\n const renderOptions = (): VNode[] => {\n return props.options?.map((option: RadioOption) => {\n let opt = option as RadioOptionObj;\n if (isNumber(option) || isString(option)) {\n opt = { value: option, label: option.toString() };\n }\n const RadioComponent = props.theme === 'button' ? TRadioButton : TRadio;\n return (\n \n {isFunction(opt.label) ? opt.label(h) : opt.label}\n \n );\n });\n };\n\n const groupClass = computed(() => [\n `${radioGroupName.value}`,\n SIZE.value[props.size],\n {\n [`${radioGroupName.value}__outline`]: props.variant === 'outline',\n [`${radioGroupName.value}--filled`]: props.variant.includes('filled'),\n [`${radioGroupName.value}--primary-filled`]: props.variant === 'primary-filled',\n },\n ]);\n\n return () => (\n
    \n {renderSlot('default') || renderOptions()}\n {renderBlock()}\n
    \n );\n },\n});\n","import { onBeforeMount, onMounted, Ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { off, on } from '@tdesign/shared-utils';\nimport { CHECKED_CODE_REG } from '@tdesign/common-js/common';\n\n/** 键盘操作 */\nexport function useKeyboard(\n radioGroupRef: Ref,\n setInnerValue: (value: any, context: { e: Event }) => void,\n) {\n const checkRadioInGroup = (e: KeyboardEvent) => {\n const inputNode = (e.target as HTMLElement).querySelector('input');\n if (!inputNode) return;\n\n const isCheckedCode = CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code);\n if (isCheckedCode) {\n e.preventDefault();\n\n const data = inputNode.dataset;\n if (inputNode.checked && data.allowUncheck) {\n setInnerValue(undefined, { e });\n } else {\n // Number\n let value: number | string | boolean = !isNaN(Number(data.value)) ? Number(data.value) : data.value;\n // Boolean\n value = (isString(value) && { true: true, false: false }[value]) || value;\n // String\n value = isString(value) && value[0] === \"'\" ? value.replace(/'/g, '') : value;\n setInnerValue(value, { e });\n }\n }\n };\n\n onMounted(() => {\n on(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n\n onBeforeMount(() => {\n off(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n}\n","import _Radio from './radio';\nimport _Group from './group';\nimport _RadioButton from './radio-button';\nimport { withInstall } from '@tdesign/shared-utils';\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 '@tdesign/shared-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 '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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, isBoolean } from 'lodash-es';\nimport { TdSliderProps } from '../type';\nimport InputNumber, { InputNumberProps, ChangeContext } from '../../input-number';\n\ninterface useSliderInputProps {\n inputNumberProps: boolean | TdSliderProps['inputNumberProps'];\n max: number;\n min: number;\n step: number;\n prefixName: string;\n vertical: boolean;\n disabled: boolean;\n}\n\n/**\n * 聚合管理inputNumber渲染逻辑\n */\nexport const useSliderInput = (config: Ref) => {\n const name = config.value.prefixName;\n\n /** 根据传入属性缓存计算inputNumber props */\n const sliderInputState = computed(() => {\n let initialState: InputNumberProps = {\n format: undefined,\n placeholder: '',\n theme: 'column',\n decimalPlaces: config.value.step.toString().split('.')[1]?.length || 0,\n };\n const inputProps = config.value;\n if (!isBoolean(inputProps.inputNumberProps)) {\n const inputTheme = inputProps.inputNumberProps?.theme;\n initialState = { ...initialState, ...omit(inputProps.inputNumberProps, 'onChange') };\n if (['column', 'row', 'normal'].includes(inputTheme)) {\n initialState.theme = inputTheme;\n }\n }\n return initialState;\n });\n\n const sliderNumberClass = computed(() => {\n return [\n `${name}__input`,\n {\n 'is-vertical': config.value.vertical,\n },\n ];\n });\n\n const renderInputNumber = (val: number, changeFn: (val: number) => void) => {\n // if exist min or max prop, onChange callback function will pass undefined value when decrease\n const normalizeChangeFn = (num: number | undefined, context: ChangeContext) => {\n if (num !== undefined && !isNaN(num)) {\n changeFn(num);\n }\n (config.value?.inputNumberProps as InputNumberProps)?.onChange?.(num, context);\n };\n return (\n \n );\n };\n\n return renderInputNumber;\n};\n","import { isNull } from 'lodash-es';\nimport { calculateNodeSize } from './helper';\n\ntype CalculateStyleType = {\n height?: string,\n minHeight?: string\n};\n\ntype LimitType = number | null;\n\nconst TEXTAREA_STYLE = `\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n`;\n\nlet hiddenTextarea: HTMLTextAreaElement;\n\nfunction calcTextareaHeight(\n targetElement: HTMLTextAreaElement,\n minRows: LimitType = 1,\n maxRows: LimitType = null,\n): CalculateStyleType {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.appendChild(hiddenTextarea);\n }\n\n const {\n paddingSize,\n borderSize,\n boxSizing,\n sizingStyle,\n } = calculateNodeSize(targetElement);\n\n hiddenTextarea.setAttribute('style', `${sizingStyle};${TEXTAREA_STYLE}`);\n hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';\n\n let height = hiddenTextarea.scrollHeight;\n const result: CalculateStyleType = {};\n const isBorderbox = boxSizing === 'border-box';\n const isContentbox = boxSizing === 'content-box';\n\n if (isBorderbox) {\n height += borderSize;\n } else if (isContentbox) {\n height -= paddingSize;\n }\n\n hiddenTextarea.value = '';\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n hiddenTextarea?.parentNode?.removeChild(hiddenTextarea);\n // @ts-ignore\n hiddenTextarea = null;\n\n const calcHeight = (rows: number) => {\n let rowsHeight = singleRowHeight * rows;\n if (isBorderbox) {\n rowsHeight = rowsHeight + paddingSize + borderSize;\n }\n return rowsHeight;\n };\n\n if (!isNull(minRows)) {\n const minHeight = calcHeight(minRows);\n height = Math.max(minHeight, height);\n result.minHeight = `${minHeight}px`;\n }\n if (!isNull(maxRows)) {\n height = Math.min(calcHeight(maxRows), height);\n }\n result.height = `${height}px`;\n return result;\n}\n\nexport default calcTextareaHeight;\n","import {\n defineComponent,\n VNode,\n ref,\n reactive,\n provide,\n computed,\n onBeforeUnmount,\n onMounted,\n watch,\n toRefs,\n} from 'vue';\nimport { isArray, isNumber } from 'lodash-es';\n\nimport props from './props';\nimport TSliderButton from './slider-button';\nimport { SliderValue } from './type';\n\n// hooks\nimport { useVModel, useDisabled, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\nimport { useSliderMark } from './hooks/useSliderMark';\nimport { useSliderInput } from './hooks/useSliderInput';\nimport { formatSliderValue, getStopStyle } from './utils';\nimport { sliderPropsInjectKey } from './consts';\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 { isArray, 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';\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 '@tdesign/shared-utils';\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 { useVModel, useDisabled, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\nimport TLoading from '../loading';\nimport props from './props';\nimport { TNodeReturnValue } from '../common';\n\n// hooks\n\nimport { isArray, isString, isFunction } 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 ${val} 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 '@tdesign/shared-utils';\nimport { TdSwitchProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SwitchProps = TdSwitchProps;\n\nexport const Switch = withInstall(_Switch);\nexport default Switch;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTextareaProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 超出maxlength或maxcharacter之后是否还允许输入 */\n allowInputOverMax: Boolean,\n /** 自动聚焦,拉起键盘 */\n autofocus: Boolean,\n /** 高度自动撑开。 autosize = true 表示组件高度自动撑开,同时,依旧允许手动拖高度。如果设置了 autosize.maxRows 或者 autosize.minRows 则不允许手动调整高度 */\n autosize: {\n type: [Boolean, Object] as PropType,\n default: false as TdTextareaProps['autosize'],\n },\n /** 是否禁用文本框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度 */\n maxcharacter: {\n type: Number,\n },\n /** 用户最多可以输入的字符个数 */\n maxlength: {\n type: [String, Number] as PropType,\n },\n /** 名称,HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 文本框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTextareaProps['status'],\n validator(val: TdTextareaProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 文本框值 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n /** 文本框值,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入内容变化时触发 */\n onChange: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 字数超出限制时触发 */\n onValidate: Function as PropType,\n};\n","import {\n defineComponent,\n computed,\n watch,\n ref,\n nextTick,\n onMounted,\n toRefs,\n inject,\n StyleValue,\n CSSProperties,\n} from 'vue';\nimport { isObject, merge, omit } from 'lodash-es';\n\nimport { FormItemInjectionKey } from '../form/consts';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\nimport { getCharacterLength, getValidAttrs } from '@tdesign/common-js/utils/helper';\n\n// hooks\nimport {\n useVModel,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { useLengthLimit } from '../input/hooks/useLengthLimit';\n\nimport props from './props';\nimport type { TextareaValue, TdTextareaProps } from './type';\n\nimport calcTextareaHeight from '@tdesign/common-js/utils/calcTextareaHeight';\n\nexport default defineComponent({\n name: 'TTextarea',\n inheritAttrs: false,\n props,\n setup(props: TdTextareaProps, { attrs, expose }) {\n const prefix = usePrefixClass();\n const name = usePrefixClass('textarea');\n const TEXTAREA_TIPS_CLASS = computed(() => `${name.value}__tips`);\n const TEXTAREA_LIMIT = computed(() => `${name.value}__limit`);\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const disabled = useDisabled();\n const isReadonly = useReadonly();\n const textareaStyle = ref({});\n\n const refTextareaElem = ref();\n const focused = ref(false);\n const isComposing = ref(false);\n\n const focus = () => refTextareaElem.value?.focus();\n const blur = () => refTextareaElem.value?.blur();\n\n // methods\n const adjustTextareaHeight = () => {\n if (props.autosize === true) {\n nextTick(() => {\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value);\n });\n } else if (props.autosize && typeof props.autosize === 'object') {\n const { minRows, maxRows } = props.autosize;\n nextTick(() => {\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value, minRows, maxRows);\n });\n } else if (attrs.rows) {\n textareaStyle.value = { height: 'auto', minHeight: 'auto' };\n } else if (attrs.style && refTextareaElem.value?.style?.height) {\n textareaStyle.value = { height: refTextareaElem.value.style.height };\n }\n };\n\n const setInputValue = (v: TextareaValue = '') => {\n const textareaElem = refTextareaElem.value;\n const sV = String(v);\n if (!textareaElem) {\n return;\n }\n\n if (textareaElem.value !== sV) {\n textareaElem.value = sV;\n innerValue.value = sV;\n }\n };\n const inputValueChangeHandle = (e: InputEvent) => {\n const { target } = e;\n let val = (target as HTMLInputElement).value;\n if (props.maxcharacter && props.maxcharacter >= 0) {\n const stringInfo = getCharacterLength(val, props.maxcharacter);\n if (!props.allowInputOverMax) {\n val = typeof stringInfo === 'object' && stringInfo.characters;\n }\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 ]);\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 '@tdesign/shared-utils';\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 { isArray, cloneDeep, isUndefined } from 'lodash-es';\n\nimport { TransferListOptionBase, TransferItemOption, TdTransferProps, TransferValue, DataOption } from '../types';\n\n// TODO:PAOPAO for what?\n// export { 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 { useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\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 { useConfig, usePrefixClass, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport { filter, isString, cloneDeep } from 'lodash-es';\n\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 { useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport props from '../props';\nimport { isArray, isString, isFunction } 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, 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, useDisabled, usePrefixClass, useDefaultValue } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 {\n useVModel,\n useConfig,\n useTNodeJSX,\n useDisabled,\n useReadonly,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\nimport type { InputProps } from '../input';\n\nimport props from './props';\n\n// hooks\n\nimport { TdTimePickerProps } from './type';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimePicker',\n props,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker');\n const { STATUS } = useCommonClassName();\n const { TimeIcon } = useGlobalIcon({ TimeIcon: TdTimeIcon });\n\n const currentValue = ref('');\n const isShowPanel = ref(false);\n const isReadonly = useReadonly();\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const disabled = useDisabled();\n const { allowInput, format } = toRefs(props);\n\n const inputClasses = computed(() => [\n `${COMPONENT_NAME.value}__group`,\n {\n [STATUS.value.focused]: isShowPanel.value,\n },\n ]);\n\n const handleShowPopup = (visible: boolean, context: { e: MouseEvent }) => {\n isShowPanel.value = visible;\n visible ? props.onOpen?.(context) : props.onClose?.(context); // trigger on-open and on-close\n };\n\n const handleClear = (context: { e: MouseEvent }) => {\n const { e } = context;\n e.stopPropagation();\n currentValue.value = null;\n setInnerValue(null);\n props?.onClear?.(context);\n };\n\n const handleInputChange = (value: string) => {\n currentValue.value = value;\n };\n\n const handleInputBlur = (value: string, context: SelectInputBlurContext) => {\n if (allowInput.value) {\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) {\n setInnerValue(formatInputValue(currentValue.value, format.value));\n }\n }\n props.onBlur?.({ value, inputValue: context.inputValue, e: context.e });\n };\n\n const handleClickConfirm = (e: MouseEvent) => {\n props?.onConfirm?.({ e });\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) setInnerValue(currentValue.value);\n isShowPanel.value = false;\n };\n\n const handlePanelChange = (v: string, e: MouseEvent) => {\n currentValue.value = v;\n props.onPick?.(v, { e });\n };\n\n const valueDisplayParams = computed(() => {\n return {\n value: isShowPanel.value ? currentValue.value : innerValue.value ?? undefined,\n };\n });\n\n watch(\n () => isShowPanel.value,\n () => {\n currentValue.value = isShowPanel.value ? innerValue.value ?? '' : '';\n },\n );\n\n return () => (\n
    \n }\n popupVisible={!isReadonly.value && isShowPanel.value}\n onInputChange={handleInputChange}\n onBlur={handleInputBlur}\n onPopupVisibleChange={handleShowPopup}\n placeholder={!innerValue.value ? props.placeholder || globalConfig.value.placeholder : undefined}\n value={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputValue={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputProps={{ ...(props.inputProps as InputProps), size: props.size }}\n popupProps={{ overlayInnerStyle: { width: 'auto', padding: 0 }, ...(props.popupProps as object) }}\n status={props.status}\n tips={props.tips}\n valueDisplay={() => renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n {...(props.selectInputProps as TdTimePickerProps['selectInputProps'])}\n panel={() => (\n \n )}\n />\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimeRangePickerProps } from '../time-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 是否自动调换左右区间的顺序,默认为 true;若需要支持跨天的场景,可以设置为 false */\n autoSwap: {\n type: Boolean,\n default: true,\n },\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件,值为数组表示可分别控制开始日期和结束日期是否禁用 */\n disabled: {\n type: [Boolean, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['disabled'],\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符,值为数组表示可分别为开始日期和结束日期设置占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['placeholder'],\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间范围选择,示例:{ '下午': ['13:00:00', '18:00:00'] } */\n presets: {\n type: Object as PropType,\n },\n /** 透传给范围输入框 RangeInput 组件的参数 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态,优先级大于 `allowInput` */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimeRangePickerProps['size'],\n validator(val: TdTimeRangePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimeRangePickerProps['status'],\n validator(val: TdTimeRangePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimeRangePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 范围输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 input 表示输入内容,value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { defineComponent, ref, toRefs, watch, computed } from 'vue';\nimport dayjs from 'dayjs';\nimport { isArray } from 'lodash-es';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { TimeIcon as TdTimeIcon } from 'tdesign-icons-vue-next';\n\nimport { RangeInputPopup, RangeInputPosition } from '../range-input';\nimport TimePickerPanel from './panel/time-picker-panel';\n\nimport { TIME_PICKER_EMPTY } from '@tdesign/common-js/time-picker/const';\nimport { formatInputValue, validateInputValue } from '@tdesign/common-js/time-picker/utils';\n\n// interfaces\nimport props from './time-range-picker-props';\nimport { TimeRangeValue } from './types';\nimport { TimeRangePickerPartial } from './type';\n// hooks\nimport {\n useVModel,\n useConfig,\n useDisabled,\n useReadonly,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\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 } else {\n const previousValue = innerValue.value ?? TIME_PICKER_EMPTY;\n currentPanelIdx.value === 0\n ? (currentValue.value = [previousValue[0] ?? TIME_PICKER_EMPTY[0], currentValue.value[1]])\n : (currentValue.value = [currentValue.value[0], previousValue[1] ?? TIME_PICKER_EMPTY[1]]);\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 '@tdesign/shared-utils';\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","// 在这个文件,解决 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 {\n VirtualScrollConfig,\n useVModel as tdUseVModel,\n useDefaultValue as tdUseDefaultValue,\n} from '@tdesign/shared-hooks';\nimport { withInstall as tdWithInstall } from '@tdesign/shared-utils';\n\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 '@tdesign/shared-hooks';\nexport { useGlobalIcon } from '@tdesign/shared-hooks';\nexport { useLazyLoad } from '@tdesign/shared-hooks';\nexport { useVirtualScrollNew } from '@tdesign/shared-hooks';\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 '../utils/adapt';\nimport { TypeTreeItemState } from '../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 '../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 '../utils/adapt';\nimport {\n TreeNodeValue,\n TypeTreeState,\n TypeTargetNode,\n TypeExpandEventContext,\n TypeActiveEventContext,\n TypeChangeEventContext,\n} from '../types';\nimport { getNode, pathMatchClass } from '../utils';\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 '../utils/adapt';\nimport { TypeEventState, TypeTreeItemState } from '../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 '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport { getTNode } from '../utils';\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 '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport { getTNode } from '../utils';\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 '../utils/adapt';\nimport { TypeTreeItemState } from '../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 '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport { getTNode } from '../utils';\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 '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport { getTNode } from '../utils';\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 '@tdesign/shared-utils';\n\nexport type UseLazyLoadParams = UnwrapRef<{\n type: 'lazy' | 'virtual';\n rowHeight?: number;\n bufferSize?: number;\n}>;\n\nexport function useLazyLoad(containerRef: Ref, childRef: Ref, params: UseLazyLoadParams) {\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 './utils/adapt';\nimport { TypeTreeItemProps } from './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 '../utils/adapt';\nimport { TypeTreeItemProps, TypeTreeItemState } from '../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 '../utils/adapt';\nimport { TypeTreeRow, TypeTreeNode, TypeTreeState } from '../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 '../types';\nimport { getMark, emitEvent } from '../utils';\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 let isRightClick = false;\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 isRightClick = 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 if (isRightClick) return;\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, TypeScroll, TreeNode } from '../utils/adapt';\nimport { get } from 'lodash-es';\nimport { TypeTreeState, TypeTimer } from '../types';\nimport log from '@tdesign/common-js/log/index';\nimport { useVirtualScrollNew } from '@tdesign/shared-hooks';\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 = useVirtualScrollNew(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 '../utils/adapt';\nimport { TypeTreeState } from '../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, upperFirst } from 'lodash-es';\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 './utils/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 './types';\nimport { getNode } from './utils';\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\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 props,\n setup(props, context) {\n const { t, global } = useConfig('tree');\n const classPrefix = usePrefixClass();\n const componentName = usePrefixClass('tree');\n const renderTNodeJSX = useTNodeJSX();\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 renderTNodeJSX,\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) : this.renderTNodeJSX('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 '../utils/adapt';\nimport { TreeProps, TypeTreeStore, TypeTreeState } from '../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 '../utils/adapt';\nimport {\n TreeProps,\n TypeValueMode,\n TreeNodeValue,\n TypeEventState,\n TypeTreeNodeModel,\n TypeTreeNode,\n TypeTNodeValue,\n TypeTreeState,\n} from '../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 '../utils/adapt';\nimport { TreeProps, TypeDragEventState, TypeTreeState, TypeDragHandle } from '../types';\nimport { DragPosition } from './useDraggable';\nimport { emitEvent } from '../utils';\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 './utils/adapt';\n\nimport './style';\n\nexport const Tree = withInstall(_TdTree);\n\nexport * from './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 { isNil, isArray, isEmpty, isBoolean, isFunction } from 'lodash-es';\n\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 './types';\nimport { TreeSelectValue, TdTreeSelectProps, TreeSelectValueChangeTrigger } from './type';\nimport { TreeOptionData } from '../common';\nimport props from './props';\n\n// hooks\nimport {\n useConfig,\n useVModel,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n usePrefixClass,\n useTNodeDefault,\n useDefaultValue,\n} from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TTreeSelect',\n props,\n setup(props: TdTreeSelectProps, { slots, expose }) {\n const renderTNodeJSX = useTNodeJSX();\n const renderDefaultTNode = useTNodeDefault();\n const classPrefix = usePrefixClass();\n const { globalConfig } = useConfig('treeSelect');\n const formDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // ref\n const treeRef = ref(null);\n\n // data\n const actived = ref([]);\n const expanded = ref([]);\n const nodeInfo = ref(null);\n const treeKey = ref(0);\n\n // model\n const { value, modelValue, popupVisible, inputValue } = toRefs(props);\n const [treeSelectValue, setTreeSelectValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [innerVisible, setInnerVisible] = useDefaultValue(\n popupVisible,\n false,\n props.onPopupVisibleChange,\n 'popupVisible',\n );\n const [innerInputValue, setInnerInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n\n /**\n * 设置树的所有父节点展开\n */\n const setTreeParentsExpanded = () => {\n const getParents = (value: TreeSelectValue) =>\n findParentValues(props.data, value, realValue.value, realChildren.value);\n\n let treeParents: TreeSelectValue[] = [];\n if (treeSelectValue.value) {\n if (Array.isArray(treeSelectValue.value) && props.multiple) {\n treeParents = treeSelectValue.value.flatMap(getParents);\n } else if (!Array.isArray(treeSelectValue.value) && !props.multiple) {\n treeParents = getParents(treeSelectValue.value);\n }\n }\n expanded.value = Array.from(new Set([...expanded.value, ...treeParents]));\n };\n\n // watch\n watch(treeSelectValue, async () => {\n await changeNodeInfo();\n if (!props.multiple) {\n actived.value = nodeInfo.value ? [nodeInfo.value.value] : [];\n }\n setTreeParentsExpanded();\n });\n watch(\n () => props.data,\n async () => {\n await changeNodeInfo();\n treeRerender();\n },\n {\n deep: true,\n },\n );\n\n // computed\n /** filterByText keep pace with innerInputValue */\n const filterByText = computed(() => {\n const value = innerInputValue.value || '';\n if (value === '') {\n return null;\n }\n return (node: TreeNodeModel) => {\n if (isFunction(props.filter)) {\n const filter: boolean | Promise = props.filter(String(value), node);\n if (isBoolean(filter)) {\n return filter;\n }\n }\n return node.data[realLabel.value].indexOf(value) >= 0;\n };\n });\n const tDisabled = computed(() => {\n return formDisabled.value || props.disabled;\n });\n\n const inputPlaceholder = computed(\n () => (innerVisible.value && nodeInfo.value?.label) || props.placeholder || globalConfig.value.placeholder,\n );\n\n const popupClass = computed(() => {\n return [`${classPrefix.value}-select__dropdown`, 'narrow-scrollbar'];\n });\n\n const dropdownInnerSize = computed(() => {\n return {\n small: 's',\n medium: 'm',\n large: 'l',\n }[props.size];\n });\n\n const isObjectValue = computed(() => props.valueType === 'object');\n\n const checked = computed((): Array => {\n if (props.multiple) {\n if (isObjectValue.value) {\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions).value)\n : [];\n }\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => item as TreeNodeValue)\n : [];\n }\n return [];\n });\n\n const multiLimitDisabled = computed(() => {\n return (\n props.multiple &&\n !!props.max &&\n isArray(treeSelectValue.value) &&\n props.max <= (treeSelectValue.value as Array).length\n );\n });\n\n const realLabel = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.label || 'label';\n }\n return props.keys?.label || 'label';\n });\n\n const realValue = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.value || 'value';\n }\n return props.keys?.value || 'value';\n });\n\n const realChildren = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.children || 'children';\n }\n return props.keys?.children || 'children';\n });\n\n onMounted(async () => {\n setTreeParentsExpanded();\n if (!treeSelectValue.value && props.defaultValue) {\n change(props.defaultValue, null, 'uncheck');\n }\n if (isObjectValue.value) {\n actived.value = isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions)?.value)\n : [(treeSelectValue.value as INodeOptions)?.value];\n } else {\n (actived.value as TreeSelectValue) = isArray(treeSelectValue.value)\n ? treeSelectValue.value\n : [treeSelectValue.value];\n }\n changeNodeInfo();\n });\n\n const change = (\n valueParam: TreeSelectValue,\n node: TreeNodeModel,\n trigger: TreeSelectValueChangeTrigger,\n ) => {\n setTreeSelectValue(valueParam, { node, trigger });\n changeNodeInfo();\n };\n\n const clear = (content: { e: MouseEvent }) => {\n const defaultValue: TreeSelectValue = props.multiple ? [] : '';\n actived.value = [];\n change(defaultValue, null, 'clear');\n props.onClear?.({ e: content.e });\n };\n\n const treeNodeChange = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n current = valueParam.map(getNodeItem);\n }\n change(current, context.node, 'check');\n };\n\n const treeNodeActive = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n if (!props.multiple) {\n setInnerVisible(false, context);\n }\n // 多选模式屏蔽 Active 事件和取消选中状态改变\n if (props.multiple || !context.node.actived) {\n return;\n }\n // 单选模式重复选择不清空\n if (treeSelectValue.value === context.node.data[realValue.value]) {\n return;\n }\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n const nodeValue = isEmpty(valueParam) ? '' : valueParam[0];\n current = getNodeItem(nodeValue);\n } else {\n current = isEmpty(valueParam) ? '' : valueParam[0];\n }\n change(current, context.node, 'check');\n actived.value = valueParam;\n };\n\n const treeNodeExpand = (valueParam: Array) => {\n expanded.value = valueParam;\n };\n\n const treeNodeLoad = () => {\n changeNodeInfo();\n };\n\n const inputChange = (value: string): boolean => {\n // 未打开状态不处理输入框输入\n if (!innerVisible.value) {\n props.onSearch?.(String(value));\n return;\n }\n setInnerInputValue(value);\n props.onSearch?.(String(value));\n };\n\n const tagChange: TdSelectInputProps['onTagChange'] = (value, context) => {\n const { trigger, index } = context;\n if (['tag-remove', 'backspace'].includes(trigger)) {\n isArray(treeSelectValue.value) && (treeSelectValue.value as Array).splice(index, 1);\n }\n props.onRemove?.({ value, data: null, e: context && (context.e as MouseEvent) });\n change(treeSelectValue.value, null, trigger as 'tag-remove' | 'backspace');\n };\n\n const handlePopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n setInnerVisible(visible, context);\n // 在通过点击选择器打开弹窗时 清空此前的输入内容 避免在关闭时就清空引起的闪烁问题\n if (visible && context.trigger === 'trigger-element-click') setInnerInputValue('');\n };\n const changeNodeInfo = async () => {\n if (!props.multiple) {\n if (treeSelectValue.value || treeSelectValue.value === 0) {\n nodeInfo.value = getSingleNodeInfo();\n } else {\n nodeInfo.value = '';\n }\n } else if (props.multiple) {\n if (isArray(treeSelectValue.value)) {\n nodeInfo.value = getMultipleNodeInfo();\n } else {\n nodeInfo.value = [];\n }\n } else {\n nodeInfo.value = null;\n }\n };\n\n const getSingleNodeInfo = () => {\n const nodeValue = isObjectValue.value ? (treeSelectValue.value as INodeOptions).value : treeSelectValue.value;\n return getNodeItem(nodeValue);\n };\n\n const getMultipleNodeInfo = () => {\n return (treeSelectValue.value as Array).map((value) => {\n const nodeValue = isObjectValue.value ? (value as INodeOptions).value : value;\n return getNodeItem(nodeValue);\n });\n };\n\n const getNodeItem = (targetValue: TreeSelectValue) => {\n if (treeRef.value) {\n const node = treeRef.value.getItem(targetValue);\n if (node) {\n return {\n ...node.data,\n label: node.data[realLabel.value],\n value: node.data[realValue.value],\n };\n }\n }\n const node = getTreeNode(props.data, targetValue);\n if (node) {\n return node;\n }\n return {\n label: targetValue,\n value: targetValue,\n };\n };\n\n const getTreeNode = (data: Array, targetValue: TreeSelectValue): TreeSelectValue | null => {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n if (item[realValue.value] === targetValue) {\n return {\n ...item,\n label: item[realLabel.value],\n value: item[realValue.value],\n };\n }\n if (item?.[realChildren.value]) {\n const result = getTreeNode(item?.[realChildren.value], targetValue);\n if (!isNil(result)) {\n return result;\n }\n }\n }\n return null;\n };\n\n const treeRerender = () => {\n treeKey.value += 1;\n };\n\n const renderTree = () => (\n \n renderDefaultTNode('empty', {\n defaultNode:
    {globalConfig.value.empty}
    ,\n }),\n }}\n {...(props.treeProps as TdTreeSelectProps['treeProps'])}\n />\n );\n\n const renderSuffixIcon = () => (\n \n );\n\n expose({\n treeRef,\n });\n\n return () => (\n renderTNodeJSX('prefixIcon')}\n suffix={props.suffix}\n suffixIcon={() => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n return renderSuffixIcon();\n }}\n onClear={clear}\n onBlur={(_: any, context) => {\n props.onBlur?.({ value: treeSelectValue.value, e: context.e as FocusEvent });\n }}\n onFocus={(_: any, context: { e: FocusEvent }) => {\n props.onFocus?.({ value: treeSelectValue.value, e: context.e });\n }}\n valueDisplay={() =>\n renderTNodeJSX('valueDisplay', {\n params: props.multiple\n ? {\n value: nodeInfo.value,\n onClose: (index: number) => {\n const value = nodeInfo.value.map((node: TreeOptionData) => node.value);\n tagChange(value, {\n trigger: 'tag-remove',\n index,\n item: value[index],\n });\n },\n }\n : {\n value: nodeInfo.value || { [realLabel.value]: '', [realValue.value]: undefined },\n },\n })\n }\n v-slots={{\n suffix: slots.suffix,\n panel: () => (\n \n {renderTNodeJSX('panelTopContent')}\n \n {renderDefaultTNode('loadingText', {\n defaultNode:
    {globalConfig.value.loadingText}
    ,\n })}\n

    \n {renderTree()}\n {renderTNodeJSX('panelBottomContent')}\n
    \n ),\n collapsedItems: slots.collapsedItems,\n }}\n onInputChange={inputChange}\n onTagChange={tagChange}\n onPopupVisibleChange={handlePopupVisibleChange}\n {...(props.selectInputProps as TdTreeSelectProps['selectInputProps'])}\n />\n );\n },\n});\n","import { isString, isNull } from 'lodash-es';\n/* eslint-disable no-param-reassign */\n/**\n * 用于反解析渐变字符串为对象\n * https://stackoverflow.com/questions/20215440/parse-css-gradient-rule-with-javascript-regex\n */\nimport tinyColor from 'tinycolor2';\n\n/**\n * Utility combine multiple regular expressions.\n *\n * @param {RegExp[]|string[]} regexpList List of regular expressions or strings.\n * @param {string} flags Normal RegExp flags.\n */\nconst combineRegExp = (regexpList: (string | RegExp)[], flags: string): RegExp => {\n let source = '';\n for (let i = 0; i < regexpList.length; i++) {\n if (isString(regexpList[i])) {\n source += regexpList[i];\n } else {\n source += (regexpList[i] as RegExp).source;\n }\n }\n return new RegExp(source, flags);\n};\n\ninterface RegExpLib {\n gradientSearch: RegExp;\n colorStopSearch: RegExp;\n}\n\ninterface ColorStop {\n color: string;\n position?: string;\n}\n\ninterface ParseGradientResult {\n original: string;\n colorStopList?: ColorStop[];\n line?: string;\n angle?: string;\n sideCorner?: string;\n}\n\n/**\n * Generate the required regular expressions once.\n *\n * Regular Expressions are easier to manage this way and can be well described.\n *\n * @result {object} Object containing regular expressions.\n */\nconst generateRegExp = (): RegExpLib => {\n // Note any variables with \"Capture\" in name include capturing bracket set(s).\n const searchFlags = 'gi'; // ignore case for angles, \"rgb\" etc\n const rAngle = /(?:[+-]?\\d*\\.?\\d+)(?:deg|grad|rad|turn)/; // Angle +ive, -ive and angle types\n // optional 2nd part\n const rSideCornerCapture = /to\\s+((?:(?:left|right|top|bottom)(?:\\s+(?:top|bottom|left|right))?))/;\n const rComma = /\\s*,\\s*/; // Allow space around comma.\n const rColorHex = /#(?:[a-f0-9]{6}|[a-f0-9]{3})/; // 3 or 6 character form\n const rDigits3 = /\\(\\s*(?:\\d{1,3}\\s*,\\s*){2}\\d{1,3}\\s*\\)/;\n const // \"(1, 2, 3)\"\n rDigits4 = /\\(\\s*(?:\\d{1,3}\\s*,\\s*){2}\\d{1,3}\\s*,\\s*\\d*\\.?\\d+\\)/;\n const // \"(1, 2, 3, 4)\"\n rValue = /(?:[+-]?\\d*\\.?\\d+)(?:%|[a-z]+)?/;\n const // \".9\", \"-5px\", \"100%\".\n rKeyword = /[_a-z-][_a-z0-9-]*/;\n const // \"red\", \"transparent\".\n rColor = combineRegExp(\n ['(?:', rColorHex, '|', '(?:rgb|hsl)', rDigits3, '|', '(?:rgba|hsla)', rDigits4, '|', rKeyword, ')'],\n '',\n );\n const rColorStop = combineRegExp([rColor, '(?:\\\\s+', rValue, '(?:\\\\s+', rValue, ')?)?'], '');\n const // Single Color Stop, optional %, optional length.\n rColorStopList = combineRegExp(['(?:', rColorStop, rComma, ')*', rColorStop], '');\n const // List of color stops min 1.\n rLineCapture = combineRegExp(['(?:(', rAngle, ')|', rSideCornerCapture, ')'], '');\n const // Angle or SideCorner\n rGradientSearch = combineRegExp(['(?:(', rLineCapture, ')', rComma, ')?(', rColorStopList, ')'], searchFlags);\n const // Capture 1:\"line\", 2:\"angle\" (optional), 3:\"side corner\" (optional) and 4:\"stop list\".\n rColorStopSearch = combineRegExp(\n ['\\\\s*(', rColor, ')', '(?:\\\\s+', '(', rValue, '))?', '(?:', rComma, '\\\\s*)?'],\n searchFlags,\n ); // Capture 1:\"color\" and 2:\"position\" (optional).\n\n return {\n gradientSearch: rGradientSearch,\n colorStopSearch: rColorStopSearch,\n };\n};\n\n/**\n * Actually parse the input gradient parameters string into an object for reusability.\n *\n *\n * @note Really this only supports the standard syntax not historical versions, see MDN for details\n * https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient\n *\n * @param regExpLib\n * @param {string} input\n * @returns {object|undefined}\n */\nconst parseGradient = (regExpLib: RegExpLib, input: string) => {\n let result: ParseGradientResult;\n let matchColorStop: any;\n let stopResult: ColorStop;\n\n // reset search position, because we reuse regex.\n regExpLib.gradientSearch.lastIndex = 0;\n\n const matchGradient = regExpLib.gradientSearch.exec(input);\n if (!isNull(matchGradient)) {\n result = {\n original: matchGradient[0],\n colorStopList: [],\n };\n\n // Line (Angle or Side-Corner).\n if (matchGradient[1]) {\n // eslint-disable-next-line prefer-destructuring\n result.line = matchGradient[1];\n }\n // Angle or undefined if side-corner.\n if (matchGradient[2]) {\n // eslint-disable-next-line prefer-destructuring\n result.angle = matchGradient[2];\n }\n // Side-corner or undefined if angle.\n if (matchGradient[3]) {\n // eslint-disable-next-line prefer-destructuring\n result.sideCorner = matchGradient[3];\n }\n\n // reset search position, because we reuse regex.\n regExpLib.colorStopSearch.lastIndex = 0;\n\n // Loop though all the color-stops.\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);\n while (!isNull(matchColorStop)) {\n stopResult = {\n color: matchColorStop[1],\n };\n\n // Position (optional).\n if (matchColorStop[2]) {\n // eslint-disable-next-line prefer-destructuring\n stopResult.position = matchColorStop[2];\n }\n result.colorStopList.push(stopResult);\n\n // Continue searching from previous position.\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);\n }\n }\n\n // Can be undefined if match not found.\n return result;\n};\n\nexport interface GradientColorPoint {\n id?: string;\n color?: string;\n left?: number;\n}\n\nexport interface GradientColors {\n points: GradientColorPoint[];\n degree: number;\n}\n\nconst REGEXP_LIB = generateRegExp();\nconst REG_GRADIENT = /.*gradient\\s*\\(((?:\\([^)]*\\)|[^)(]*)*)\\)/gim;\n\n/**\n * 验证是否是渐变字符串\n * @param input\n * @returns\n */\nexport const isGradientColor = (input: string): null | RegExpExecArray => {\n REG_GRADIENT.lastIndex = 0;\n return REG_GRADIENT.exec(input);\n};\n\n// 边界字符串和角度关系\nconst sideCornerDegreeMap = {\n top: 0,\n right: 90,\n bottom: 180,\n left: 270,\n 'top left': 315,\n 'left top': 315,\n 'top right': 45,\n 'right top': 45,\n 'bottom left': 225,\n 'left bottom': 225,\n 'bottom right': 135,\n 'right bottom': 135,\n};\n\n/**\n * 解析渐变字符串为 GradientColors 对象\n * @param input\n * @returns\n */\nexport const parseGradientString = (input: string): GradientColors | false => {\n const match = isGradientColor(input);\n if (!match) return false;\n\n const gradientColors: GradientColors = {\n points: [],\n degree: 0,\n };\n\n const result: ParseGradientResult = parseGradient(REGEXP_LIB, match[1]);\n if (result.original.trim() !== match[1].trim()) return false;\n\n const points: GradientColorPoint[] = result.colorStopList.map(\n ({ color, position }, index, array) => {\n const point = Object.create(null);\n point.color = tinyColor(color).toRgbString();\n\n let left = parseFloat(position);\n if (Number.isNaN(left)) {\n left = (index / (array.length - 1)) * 100;\n }\n\n point.left = left;\n return point;\n }\n );\n gradientColors.points = points;\n\n let degree = parseInt(result.angle, 10);\n if (Number.isNaN(degree)) {\n /* 如果角度不存在,使用 CSS 渐变的默认逻辑(180 deg)\n https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_images/Using_CSS_gradients */\n degree = sideCornerDegreeMap[result.sideCorner as keyof typeof sideCornerDegreeMap] || 180;\n }\n gradientColors.degree = degree;\n\n return gradientColors;\n};\n\nexport default parseGradientString;\n","import { TreeOptionData } from '../common';\n\ntype TargetValue = string | number | object;\n\n/**\n * 递归查找指定节点的所有父节点的 value\n * @param options 树形数据\n * @param targetValue 目标节点的 value\n * @param realChildren 子节点的 key (别名)\n * @param realValue 节点的 value 的 key (别名)\n */\nexport function findParentValues(\n options: TreeOptionData[],\n targetValue: TargetValue,\n realValue: string,\n realChildren: string,\n): (TargetValue)[] {\n let currentTargetValue = targetValue;\n if (currentTargetValue != null && typeof currentTargetValue === 'object') {\n currentTargetValue = (currentTargetValue as { [key: string]: string | number })?.[realValue];\n }\n if (currentTargetValue == null) return [];\n\n function findPath(nodes: TreeOptionData[], parentPath: (TargetValue)[]): (TargetValue)[] | null {\n let result: (TargetValue)[] | null = null;\n nodes.some((node) => {\n const newPath = [...parentPath, node[realValue]];\n if (node[realValue] === currentTargetValue) {\n result = parentPath;\n return true;\n }\n if (Array.isArray(node[realChildren]) && node[realChildren].length) {\n result = findPath(node[realChildren], newPath);\n if (result !== null) {\n return true;\n }\n }\n return false;\n });\n return result;\n }\n\n return findPath(options, []) || [];\n}\n","import _TreeSelect from './tree-select';\nimport { withInstall } from '@tdesign/shared-utils';\n\nimport './style';\n\nexport * from './types';\nexport const TreeSelect = withInstall(_TreeSelect);\nexport default TreeSelect;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdColorPickerPanelProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 颜色模式选择。同时支持单色和渐变两种模式,可仅使用单色或者渐变其中一种模式,也可以同时使用。`monochrome` 表示单色,`linear-gradient` 表示渐变色 */\n colorModes: {\n type: Array as PropType,\n default: (): TdColorPickerPanelProps['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` 为真时,`HEX8/RGBA/HSLA/HSVA` 有效 */\n format: {\n type: String as PropType,\n default: 'RGB' as TdColorPickerPanelProps['format'],\n validator(val: TdColorPickerPanelProps['format']): boolean {\n if (!val) return true;\n return ['HEX', 'HEX8', 'RGB', 'RGBA', 'HSL', 'HSLA', 'HSV', 'HSVA', 'CMYK', 'CSS'].includes(val);\n },\n },\n /** 最近使用的颜色。值为 [] 表示以组件内部的“最近使用颜色”为准,值长度大于 0 则以该值为准显示“最近使用颜色”。值为 false 或 null 则完全不显示“最近使用颜色” */\n recentColors: {\n type: Array as PropType,\n default: undefined as TdColorPickerPanelProps['recentColors'],\n },\n /** 最近使用的颜色。值为 [] 表示以组件内部的“最近使用颜色”为准,值长度大于 0 则以该值为准显示“最近使用颜色”。值为 false 或 null 则完全不显示“最近使用颜色”,非受控属性 */\n defaultRecentColors: {\n type: Array as PropType,\n default: (): TdColorPickerPanelProps['defaultRecentColors'] => [],\n },\n /** 是否展示颜色选择条右侧的颜色预览区域 */\n showPrimaryColorPreview: {\n type: Boolean,\n default: true,\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 * rgb 转 cmyk\n * @param red\n * @param green\n * @param blue\n * @returns\n */\nexport const rgb2cmyk = (red: number, green: number, blue: number) => {\n let computedC = 0;\n let computedM = 0;\n let computedY = 0;\n let computedK = 0;\n\n const r = parseInt(`${red}`.replace(/\\s/g, ''), 10);\n const g = parseInt(`${green}`.replace(/\\s/g, ''), 10);\n const b = parseInt(`${blue}`.replace(/\\s/g, ''), 10);\n\n if (r === 0 && g === 0 && b === 0) {\n computedK = 1;\n return [0, 0, 0, 1];\n }\n\n computedC = 1 - r / 255;\n computedM = 1 - g / 255;\n computedY = 1 - b / 255;\n\n const minCMY = Math.min(computedC, Math.min(computedM, computedY));\n computedC = (computedC - minCMY) / (1 - minCMY);\n computedM = (computedM - minCMY) / (1 - minCMY);\n computedY = (computedY - minCMY) / (1 - minCMY);\n computedK = minCMY;\n\n return [computedC, computedM, computedY, computedK];\n};\n\n/**\n * cmyk 转 rgb\n * @param cyan\n * @param magenta\n * @param yellow\n * @param black\n * @returns\n */\nexport const cmyk2rgb = (cyan: number, magenta: number, yellow: number, black: number) => {\n let c = cyan / 100;\n let m = magenta / 100;\n let y = yellow / 100;\n const k = black / 100;\n\n c = c * (1 - k) + k;\n m = m * (1 - k) + k;\n y = y * (1 - k) + k;\n\n let r = 1 - c;\n let g = 1 - m;\n let b = 1 - y;\n\n r = Math.round(255 * r);\n g = Math.round(255 * g);\n b = Math.round(255 * b);\n return {\n r,\n g,\n b,\n };\n};\n\nconst REG_CMYK_STRING = /cmyk\\((\\d+%?),(\\d+%?),(\\d+%?),(\\d+%?)\\)/;\n\nconst toNumber = (str: string) => Math.max(0, Math.min(255, parseInt(str, 10)));\n\n/**\n * 输入色转rgb\n * @param input\n * @returns\n */\nexport const cmykInputToColor = (input: string) => {\n if (/cmyk/i.test(input)) {\n const str = input.replace(/\\s/g, '');\n const match = str.match(REG_CMYK_STRING);\n const c = toNumber(match[1]);\n const m = toNumber(match[2]);\n const y = toNumber(match[3]);\n const k = toNumber(match[4]);\n const { r, g, b } = cmyk2rgb(c, m, y, k);\n return `rgb(${r}, ${g}, ${b})`;\n }\n return input;\n};\n","import type {\n BasicColorFormat,\n ColorInputProp,\n} from './types';\n\n// 最近使用颜色最大个数\nexport const TD_COLOR_USED_COLORS_MAX_SIZE = 100; // 每行10个\n\n// 颜色模式options配置\nexport const COLOR_MODES = {\n monochrome: 'singleColor',\n 'linear-gradient': 'gradientColor',\n};\n\n// 默认颜色\nexport const DEFAULT_COLOR = '#001F97';\n\n// 默认渐变色\nexport const DEFAULT_LINEAR_GRADIENT = 'linear-gradient(90deg, rgba(241,29,0,1) 0%, rgba(73,106,220,1) 100%);';\n\n// 默认系统色彩\nexport const DEFAULT_SYSTEM_SWATCH_COLORS = [\n '#ECF2FE',\n '#D4E3FC',\n '#BBD3FB',\n '#96BBF8',\n '#699EF5',\n '#4787F0',\n '#266FE8',\n '#0052D9',\n '#0034B5',\n '#001F97',\n '#FDECEE',\n '#F9D7D9',\n '#F8B9BE',\n '#F78D94',\n '#F36D78',\n '#E34D59',\n '#C9353F',\n '#B11F26',\n '#951114',\n '#680506',\n '#FEF3E6',\n '#F9E0C7',\n '#F7C797',\n '#F2995F',\n '#ED7B2F',\n '#D35A21',\n '#BA431B',\n '#9E3610',\n '#842B0B',\n '#5A1907',\n '#E8F8F2',\n '#BCEBDC',\n '#85DBBE',\n '#48C79C',\n '#00A870',\n '#078D5C',\n '#067945',\n '#056334',\n '#044F2A',\n '#033017',\n];\n\n/**\n * 非透明色格式化类型\n */\nexport const FORMATS = [\n 'HEX',\n 'RGB',\n 'HSL',\n 'HSV',\n 'CMYK',\n 'CSS',\n] as const;\n\n/**\n * 透明色格式化类型映射\n */\nexport const ALPHA_FORMAT_MAP = {\n HEX: 'HEX8',\n RGB: 'RGBA',\n HSL: 'HSLA',\n HSV: 'HSVA',\n} as const;\n\n/**\n * 不同格式对应的输入框\n */\nexport const COLOR_FORMAT_INPUTS: Record = {\n RGB: [\n {\n key: 'r',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'g',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'b',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n ],\n HSV: [\n {\n key: 'h',\n min: 0,\n max: 360,\n type: 'inputNumber',\n },\n {\n key: 's',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n {\n key: 'v',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n ],\n HSL: [\n {\n key: 'h',\n min: 0,\n max: 360,\n type: 'inputNumber',\n },\n {\n key: 's',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n {\n key: 'l',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n ],\n CMYK: [\n {\n key: 'c',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'm',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'y',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'k',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n ],\n CSS: [\n {\n key: 'css',\n type: 'input',\n flex: 3,\n },\n ],\n HEX: [\n {\n key: 'hex',\n type: 'input',\n flex: 3,\n },\n ],\n};\n\n// 色板尺寸\nexport const SATURATION_PANEL_DEFAULT_WIDTH = 230;\nexport const SATURATION_PANEL_DEFAULT_HEIGHT = 168;\nexport const SLIDER_DEFAULT_WIDTH = 186;\nexport const GRADIENT_SLIDER_DEFAULT_WIDTH = 176;\n","import tinyColor from 'tinycolor2';\nimport { cmykInputToColor, rgb2cmyk } from './cmyk';\nimport { ALPHA_FORMAT_MAP } from './constants';\nimport {\n GradientColorPoint,\n GradientColors,\n isGradientColor,\n parseGradientString\n} from './gradient';\nimport type { AlphaConvertibleFormat, ColorFormat } from './types';\n\nexport interface ColorObject {\n alpha: number;\n css: string;\n hex: string;\n hex8: string;\n hsl: string;\n hsla: string;\n hsv: string;\n hsva: string;\n rgb: string;\n rgba: string;\n saturation: number;\n value: number;\n isGradient: boolean;\n linearGradient?: string;\n}\n\ninterface ColorStates {\n s: number;\n v: number;\n h: number;\n a: number;\n}\n\ninterface GradientStates {\n colors: GradientColorPoint[];\n degree: number;\n selectedId: string;\n css?: string;\n}\n\nconst mathRound = Math.round;\nconst hsv2rgba = (states: ColorStates): tinyColor.ColorFormats.RGBA => tinyColor(states).toRgb();\nconst hsv2hsva = (states: ColorStates): tinyColor.ColorFormats.HSVA => tinyColor(states).toHsv();\nconst hsv2hsla = (states: ColorStates): tinyColor.ColorFormats.HSLA => tinyColor(states).toHsl();\n\n/**\n * 将渐变对象转换成字符串\n */\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 */\nexport const getColorWithoutAlpha = (color: string) => tinyColor(color).setAlpha(1).toHexString();\n\n// 生成一个随机ID\nexport const genId = () => (1 + Math.random() * 4294967295).toString(16);\n\n/**\n * 生成一个渐变颜色\n * @param left\n * @param color\n * @returns\n */\nexport const genGradientPoint = (left: number, color: string, id?: string): GradientColorPoint => ({\n id: id || genId(),\n left,\n color,\n});\n\nexport class Color {\n states: ColorStates = {\n s: 100,\n v: 100,\n h: 100,\n a: 1,\n };\n\n originColor: string;\n\n isGradient: boolean;\n\n gradientStates: GradientStates = {\n colors: [],\n degree: 0,\n selectedId: null,\n css: '',\n };\n\n constructor(input: string) {\n this.update(input);\n }\n\n update(input: string) {\n if (input === this.originColor) return;\n const gradientColors = parseGradientString(input);\n\n if (this.isGradient && !gradientColors) {\n /* case 1: 渐变模式单独修改某个位置点的色值 */\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\n /* case 2: 修改整个渐变,生成一套新的颜色点 */\n if (gradientColors) {\n this.isGradient = true;\n const object = gradientColors as GradientColors;\n const points = object.points.map((c, index) => genGradientPoint(c.left, c.color, this.gradientStates.colors[index]?.id));\n this.gradientStates = {\n colors: points,\n degree: object.degree,\n selectedId: this.gradientStates.selectedId || points[0]?.id || null,\n };\n this.gradientStates.css = this.linearGradient;\n colorInput = this.gradientSelectedPoint?.color;\n }\n\n this.updateStates(colorInput);\n }\n\n get saturation() {\n return this.states.s;\n }\n\n set saturation(value) {\n this.states.s = Math.max(0, Math.min(100, value));\n this.updateCurrentGradientColor();\n }\n\n get value() {\n return this.states.v;\n }\n\n set value(value) {\n this.states.v = Math.max(0, Math.min(100, value));\n this.updateCurrentGradientColor();\n }\n\n get hue() {\n return this.states.h;\n }\n\n set hue(value) {\n this.states.h = Math.max(0, Math.min(360, value));\n this.updateCurrentGradientColor();\n }\n\n get alpha() {\n return this.states.a;\n }\n\n set alpha(value) {\n this.states.a = Math.max(0, Math.min(1, Math.round(value * 100) / 100));\n this.updateCurrentGradientColor();\n }\n\n get rgb() {\n const { r, g, b } = hsv2rgba(this.states);\n return `rgb(${mathRound(r)}, ${mathRound(g)}, ${mathRound(b)})`;\n }\n\n get rgba() {\n const {\n r, g, b, a\n } = hsv2rgba(this.states);\n return `rgba(${mathRound(r)}, ${mathRound(g)}, ${mathRound(b)}, ${a})`;\n }\n\n get hsv() {\n const { h, s, v } = this.getHsva();\n return `hsv(${h}, ${s}%, ${v}%)`;\n }\n\n get hsva() {\n const {\n h, s, v, a\n } = this.getHsva();\n return `hsva(${h}, ${s}%, ${v}%, ${a})`;\n }\n\n get hsl() {\n const { h, s, l } = this.getHsla();\n return `hsl(${h}, ${s}%, ${l}%)`;\n }\n\n get hsla() {\n const {\n h, s, l, a\n } = this.getHsla();\n return `hsla(${h}, ${s}%, ${l}%, ${a})`;\n }\n\n get hex() {\n return tinyColor(this.states).toHexString();\n }\n\n get hex8() {\n return tinyColor(this.states).toHex8String();\n }\n\n get cmyk() {\n const {\n c, m, y, k\n } = this.getCmyk();\n return `cmyk(${c}, ${m}, ${y}, ${k})`;\n }\n\n get css() {\n if (this.isGradient) {\n return this.linearGradient;\n }\n return this.rgba;\n }\n\n get linearGradient() {\n const { gradientColors, gradientDegree } = this;\n return gradientColors2string({\n points: gradientColors,\n degree: gradientDegree,\n });\n }\n\n get gradientColors() {\n return this.gradientStates.colors;\n }\n\n set gradientColors(colors: GradientColorPoint[]) {\n this.gradientStates.colors = colors;\n this.gradientStates.css = this.linearGradient;\n }\n\n get gradientSelectedId() {\n return this.gradientStates.selectedId;\n }\n\n set gradientSelectedId(id: string) {\n if (id === this.gradientSelectedId) {\n return;\n }\n this.gradientStates.selectedId = id;\n this.updateStates(this.gradientSelectedPoint?.color);\n }\n\n get gradientDegree() {\n return this.gradientStates.degree;\n }\n\n set gradientDegree(degree: number) {\n this.gradientStates.degree = Math.max(0, Math.min(360, degree));\n this.gradientStates.css = this.linearGradient;\n }\n\n get gradientSelectedPoint() {\n const { gradientColors, gradientSelectedId } = this;\n return gradientColors.find((color) => color.id === gradientSelectedId);\n }\n\n getFormatsColorMap() {\n return {\n HEX: this.hex,\n CMYK: this.cmyk,\n RGB: this.rgb,\n RGBA: this.rgba,\n HSL: this.hsl,\n HSLA: this.hsla,\n HSV: this.hsv,\n HSVA: this.hsva,\n CSS: this.css,\n HEX8: this.hex8,\n };\n }\n\n getFormattedColor(format: ColorFormat, enableAlpha: boolean) {\n if (this.isGradient) return this.linearGradient;\n const finalFormat = (\n enableAlpha && format in ALPHA_FORMAT_MAP\n ? ALPHA_FORMAT_MAP[format as AlphaConvertibleFormat]\n : format\n ) as keyof ReturnType;\n return this.getFormatsColorMap()[finalFormat];\n }\n\n updateCurrentGradientColor() {\n const { isGradient, gradientColors, gradientSelectedId } = this;\n const { length } = gradientColors;\n const current = this.gradientSelectedPoint;\n if (!isGradient || length === 0 || !current) {\n return false;\n }\n const index = gradientColors.findIndex((color) => color.id === gradientSelectedId);\n const newColor = {\n ...current,\n color: this.rgba,\n };\n gradientColors.splice(index, 1, newColor);\n this.gradientColors = gradientColors.slice();\n return this;\n }\n\n updateStates(input: string) {\n const color = tinyColor(cmykInputToColor(input));\n const hsva = color.toHsv();\n this.states = hsva;\n }\n\n getRgba() {\n const {\n r, g, b, a\n } = hsv2rgba(this.states);\n return {\n r: mathRound(r),\n g: mathRound(g),\n b: mathRound(b),\n a,\n };\n }\n\n getCmyk() {\n const { r, g, b } = this.getRgba();\n const [c, m, y, k] = rgb2cmyk(r, g, b);\n return {\n c: mathRound(c * 100),\n m: mathRound(m * 100),\n y: mathRound(y * 100),\n k: mathRound(k * 100),\n };\n }\n\n getHsva(): tinyColor.ColorFormats.HSVA {\n let {\n h, s, v, a\n } = hsv2hsva(this.states);\n h = mathRound(h);\n s = mathRound(s * 100);\n v = mathRound(v * 100);\n a *= 1;\n return {\n h,\n s,\n v,\n a,\n };\n }\n\n getHsla(): tinyColor.ColorFormats.HSLA {\n let {\n h, s, l, a\n } = hsv2hsla(this.states);\n h = mathRound(h);\n s = mathRound(s * 100);\n l = mathRound(l * 100);\n a *= 1;\n return {\n h,\n s,\n l,\n a,\n };\n }\n\n /**\n * 判断输入色是否与当前色相同\n */\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 /**\n * 对象转颜色字符串\n */\n static object2color(object: any, format: ColorFormat) {\n if (format === 'CMYK') {\n const { c, m, y, k } = object;\n return `cmyk(${c}, ${m}, ${y}, ${k})`;\n }\n\n if (format === 'RGB' || format === 'RGBA') {\n return tinyColor(object).toRgbString();\n }\n\n if (format === 'HSL' || format === 'HSLA') {\n return tinyColor(object).toHslString();\n }\n\n if (format === 'HSV' || format === 'HSVA') {\n return tinyColor(object).toHsvString();\n }\n\n return tinyColor(object).toHexString();\n }\n\n /**\n * 是否是渐变色\n * @param input\n * @returns\n */\n static isGradientColor = (input: string) => !!isGradientColor(input);\n\n /**\n * 比较两个颜色是否相同\n * @param color1\n * @param color2\n * @returns\n */\n static compare = (color1: string, color2: string): boolean => {\n const isGradientColor1 = Color.isGradientColor(color1);\n const isGradientColor2 = Color.isGradientColor(color2);\n if (isGradientColor1 && isGradientColor2) {\n const gradientStr1 = parseGradientString(color1);\n const gradientStr2 = parseGradientString(color2);\n if (!gradientStr1 || !gradientStr2) return false;\n\n const gradientColor1 = gradientColors2string(gradientStr1);\n const gradientColor2 = gradientColors2string(gradientStr2);\n return gradientColor1 === gradientColor2;\n }\n if (!isGradientColor1 && !isGradientColor2) {\n return tinyColor.equals(color1, color2);\n }\n return false;\n };\n}\n\nconst COLOR_OBJECT_OUTPUT_KEYS = [\n 'alpha',\n 'css',\n 'hex',\n 'hex8',\n 'hsl',\n 'hsla',\n 'hsv',\n 'hsva',\n 'rgb',\n 'rgba',\n 'saturation',\n 'value',\n 'isGradient',\n];\n\n/**\n * 获取对外输出的color对象\n * @param color\n * @returns\n */\nexport const getColorObject = (color: Color): ColorObject | null => {\n if (!color) {\n return null;\n }\n const colorObject = Object.create(null);\n COLOR_OBJECT_OUTPUT_KEYS.forEach((key) => {\n colorObject[key] = (color as { [key: string]: any })[key];\n });\n if (color.isGradient) {\n colorObject.linearGradient = color.linearGradient;\n }\n return colorObject;\n};\n\nexport default Color;\n","/* eslint-disable no-use-before-define */\nexport interface Coordinate {\n x: number;\n y: number;\n}\n\nexport type DraggableEvent = MouseEvent;\n\ninterface DraggableCallback {\n (coordinate: Coordinate, event?: DraggableEvent): void;\n}\n\nexport interface DraggableProps {\n start?: DraggableCallback;\n drag?: DraggableCallback;\n end?: DraggableCallback;\n}\n\ninterface DraggableHandles {\n start: (event: DraggableEvent) => void;\n drag: (event: DraggableEvent) => void;\n end: (event: DraggableEvent) => void;\n}\n\n// 配置项\nconst defaultsOptions: DraggableProps = {\n start: (coordinate: Coordinate, event: DraggableEvent) => {},\n drag: (coordinate: Coordinate, event: DraggableEvent) => {},\n end: (coordinate: Coordinate, event: DraggableEvent) => {},\n};\n\nexport class Draggable {\n private dragging = false;\n\n private $el: HTMLElement;\n\n private props: DraggableProps;\n\n private handles: DraggableHandles;\n\n constructor(el: HTMLElement, options?: DraggableProps) {\n this.$el = el;\n this.props = { ...defaultsOptions, ...options };\n this.handles = {\n start: this.#dragStart.bind(this),\n drag: this.#drag.bind(this),\n end: this.#dragEnd.bind(this),\n };\n this.$el.addEventListener('mousedown', this.handles.start, false);\n }\n\n #dragStart(event: DraggableEvent) {\n if (this.dragging) {\n return;\n }\n // event.preventDefault();\n window.addEventListener('mousemove', this.handles.drag, false);\n window.addEventListener('mouseup', this.handles.end, false);\n window.addEventListener('contextmenu', this.handles.end, false);\n this.dragging = true;\n this.props.start(this.#getCoordinate(event), event);\n }\n\n #drag(event: DraggableEvent) {\n if (!this.dragging) {\n return;\n }\n this.props.drag(this.#getCoordinate(event), event);\n }\n\n #dragEnd(event: DraggableEvent) {\n setTimeout(() => {\n this.dragging = false;\n this.props.end(this.#getCoordinate(event), event);\n }, 0);\n window.removeEventListener('mousemove', this.handles.drag, false);\n window.removeEventListener('mouseup', this.handles.end, false);\n window.removeEventListener('contextmenu', this.handles.end, false);\n }\n\n #getCoordinate(event: DraggableEvent) {\n const rect = this.$el.getBoundingClientRect();\n const mouseEvent = event;\n const left = mouseEvent.clientX - rect.left;\n const top = mouseEvent.clientY - rect.top;\n return {\n y: Math.min(Math.max(0, top), rect.height),\n x: Math.min(Math.max(0, left), rect.width),\n };\n }\n\n destroy() {\n this.$el.removeEventListener('mousedown', this.handles.start, false);\n window.removeEventListener('mousemove', this.handles.drag, false);\n window.removeEventListener('mouseup', this.handles.end, false);\n window.removeEventListener('contextmenu', this.handles.end, false);\n }\n}\n\nexport default Draggable;\n","import Color from './color';\nimport { ALPHA_FORMAT_MAP, COLOR_FORMAT_INPUTS, FORMATS } from './constants';\nimport type { AlphaConvertibleFormat, BasicColorFormat, ColorFormat } from './types';\n\n/**\n * 兜底处理用户传入的格式,例如:\n * - 传入 `RGB`, 但 `enableAlpha` ,则返回 `RGBA`\n */\nexport const initColorFormat = (format: ColorFormat, enableAlpha: boolean) => {\n if (enableAlpha && format in ALPHA_FORMAT_MAP) {\n return format in ALPHA_FORMAT_MAP ? ALPHA_FORMAT_MAP[format as AlphaConvertibleFormat] : format;\n }\n return format as BasicColorFormat;\n};\n\n/**\n * 获取不同格式的输入输出值\n * - encode:将字符串转换为单独的颜色值,例如 `{r: 255, g: 255, b: 255}`\n * - decode:获取完整的颜色字符串,例如 `rgb(255, 255, 255)`\n */\nexport const getColorFormatMap = (color: Color, type: 'encode' | 'decode') => {\n if (type === 'encode') {\n return {\n HSV: color.getHsva(),\n HSVA: color.getHsva(),\n HSL: color.getHsla(),\n HSLA: color.getHsla(),\n RGB: color.getRgba(),\n RGBA: color.getRgba(),\n CMYK: color.getCmyk(),\n CSS: {\n css: color.css,\n },\n HEX: {\n hex: color.hex,\n },\n HEX8: {\n hex: color.hex8, // 为了减少转换 hex8 的 key 也对应 hex\n },\n };\n }\n\n // decode\n return color.getFormatsColorMap();\n};\n\n/**\n * 获取下拉框的格式选项\n */\nexport const getColorFormatOptions = (enableAlpha: boolean) => (\n enableAlpha\n ? FORMATS.map((item) => (item in ALPHA_FORMAT_MAP ? ALPHA_FORMAT_MAP[item as AlphaConvertibleFormat] : item))\n : FORMATS\n);\n\n/**\n * 获取当前格式的输入框配置\n */\nexport const getColorFormatInputs = (\n format: ColorFormat = 'RGB',\n enableAlpha: boolean\n) => {\n let finalFormat;\n\n /* 为了减少 `ALPHA_FORMAT_MAP` 中的重复代码\n `RGBA/HEX8/HSLA/HSVA` 会被转换为 `RGB/HEX/HSL/HSV` 后再匹配\n 但在下一步会 push 一个代表透明度的输入框 */\n if (enableAlpha) {\n finalFormat = Object.keys(ALPHA_FORMAT_MAP).find(\n (key) => key in ALPHA_FORMAT_MAP && ALPHA_FORMAT_MAP[key as AlphaConvertibleFormat] === format\n ) || format;\n } else {\n finalFormat = format;\n }\n\n if (!COLOR_FORMAT_INPUTS[finalFormat as BasicColorFormat]) return [];\n\n const configs = [\n ...(COLOR_FORMAT_INPUTS[finalFormat as BasicColorFormat]),\n ];\n\n // CMYK 格式不支持透明度\n if (enableAlpha && format !== 'CMYK') {\n configs.push({\n type: 'inputNumber',\n key: 'a',\n min: 0,\n max: 100,\n format: (value: number) => `${value}%`,\n flex: 1.15,\n });\n }\n\n return configs;\n};\n","import { computed } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\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","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdColorPickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 颜色模式选择。同时支持单色和渐变两种模式,可仅使用单色或者渐变其中一种模式,也可以同时使用。`monochrome` 表示单色,`linear-gradient` 表示渐变色 */\n colorModes: {\n type: Array as PropType,\n default: (): TdColorPickerProps['colorModes'] => ['monochrome', 'linear-gradient'],\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否开启透明通道 */\n enableAlpha: Boolean,\n /** 是否允许开启通过点击渐变轴增加渐变梯度,默认开启,关闭时只会存在起始和结束两个颜色 */\n enableMultipleGradient: {\n type: Boolean,\n default: true,\n },\n /** 格式化色值。`enableAlpha` 为真时,`HEX8/RGBA/HSLA/HSVA` 有效 */\n format: {\n type: String as PropType,\n default: 'RGB' as TdColorPickerProps['format'],\n validator(val: TdColorPickerProps['format']): boolean {\n if (!val) return true;\n return ['HEX', 'HEX8', 'RGB', 'RGBA', 'HSL', 'HSLA', 'HSV', 'HSVA', 'CMYK', 'CSS'].includes(val);\n },\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 透传 Popup 组件全部属性,如 `placement` `overlayStyle` `overlayClassName` `trigger`等 */\n popupProps: {\n type: Object as PropType,\n },\n /** 最近使用的颜色。值为 [] 表示以组件内部的“最近使用颜色”为准,值长度大于 0 则以该值为准显示“最近使用颜色”。值为 false 或 null 则完全不显示“最近使用颜色” */\n recentColors: {\n type: Array as PropType,\n default: undefined as TdColorPickerProps['recentColors'],\n },\n /** 最近使用的颜色。值为 [] 表示以组件内部的“最近使用颜色”为准,值长度大于 0 则以该值为准显示“最近使用颜色”。值为 false 或 null 则完全不显示“最近使用颜色”,非受控属性 */\n defaultRecentColors: {\n type: Array as PropType,\n default: (): TdColorPickerProps['defaultRecentColors'] => [],\n },\n /** 透传 SelectInputProps 筛选器输入框组件全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 是否展示颜色选择条右侧的颜色预览区域 */\n showPrimaryColorPreview: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdColorPickerProps['size'],\n validator(val: TdColorPickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 系统预设的颜色样例,值为 `null` 或 `[]` 则不显示系统色,值为 `undefined` 会显示组件内置的系统默认色 */\n swatchColors: {\n type: Array as PropType,\n default: undefined as TdColorPickerProps['swatchColors'],\n },\n /** 色值 */\n value: {\n type: String,\n default: undefined,\n },\n modelValue: {\n type: String,\n default: undefined,\n },\n /** 色值,非受控属性 */\n defaultValue: {\n type: String,\n default: '',\n },\n /** 选中的色值发生变化时触发,第一个参数 `value` 表示新色值,`context.color` 表示当前调色板控制器的色值,`context.trigger` 表示触发颜色变化的来源 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 调色板控制器的值变化时触发,`context.color` 指调色板控制器的值 */\n onPaletteBarChange: Function as PropType,\n /** 最近使用颜色发生变化时触发 */\n onRecentColorsChange: Function as PropType,\n};\n","import { defineComponent, PropType, reactive, watch } from 'vue';\nimport { throttle } from 'lodash-es';\nimport { Color, getColorFormatInputs, getColorFormatMap } from '@tdesign/common-js/color-picker/index';\nimport props from '../../props';\nimport TInput from '../../../input';\nimport TInputNumber from '../../../input-number';\n\nexport default defineComponent({\n name: 'FormatInputs',\n inheritAttrs: false,\n props: {\n ...props,\n color: {\n type: Object as PropType,\n },\n onInputChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const modelValue = reactive({});\n const lastModelValue = reactive({});\n\n // 更新 modelValue\n const updateModelValue = () => {\n const { format, color } = props;\n if (!color) return;\n const values = getColorFormatMap(color, 'encode')[format];\n // @ts-ignore\n values.a = Math.round(color.alpha * 100);\n Object.keys(values).forEach((key) => {\n // @ts-ignore\n modelValue[key] = values[key];\n // @ts-ignore\n lastModelValue[key] = values[key];\n });\n };\n\n updateModelValue();\n const throttleUpdate = throttle(updateModelValue, 100);\n\n watch(() => {\n const { saturation, hue, value, alpha } = props.color;\n return [saturation, hue, value, alpha, props.format];\n }, throttleUpdate);\n\n const handleChange = (key: string, v: number | string) => {\n if (v === lastModelValue[key]) return;\n\n if (key === 'a') {\n // 透明通道\n // eslint-disable-next-line vue/no-mutating-props, no-param-reassign\n props.color.alpha = (v as number) / 100;\n } else if (key === 'hex' || key === 'css') {\n // 纯字符串类型的格式\n props.color.update(v as string);\n } else {\n // 需要进一步转换的格式\n props.color.update(Color.object2color(modelValue, props.format));\n }\n\n const value = getColorFormatMap(props.color, 'decode')[props.format];\n props.onInputChange(value, props.color.alpha, key, v);\n };\n\n return () => {\n const inputProps = {\n ...((props.inputProps as any) || {}),\n };\n return (\n
    \n {getColorFormatInputs(props.format, props.enableAlpha).map((config) => {\n return (\n \n {config.type === 'input' ? (\n handleChange(config.key, v)}\n onEnter={(v: string) => handleChange(config.key, v)}\n />\n ) : (\n handleChange(config.key, v)}\n onEnter={(v: number) => handleChange(config.key, v)}\n />\n )}\n
    \n );\n })}\n
    \n );\n };\n },\n});\n","import { defineComponent, PropType, ref, watch } from 'vue';\nimport { Color, getColorFormatOptions } from '@tdesign/common-js/color-picker/index';\nimport type { TdColorPickerProps } from '../../type';\nimport props from '../../props';\nimport { Select as TSelect, Option as TOption } from '../../../select';\nimport FormatInputs from './inputs';\nimport { useBaseClassName } from '../../hooks';\nimport type { TdSelectInputProps } from '../../../select-input/type';\n\nexport default defineComponent({\n name: 'FormatPanel',\n inheritAttrs: false,\n props: {\n ...props,\n color: {\n type: Object as PropType,\n },\n onInputChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const formatModel = ref(props.format);\n\n watch(\n () => [props.format],\n () => (formatModel.value = props.format),\n );\n\n /**\n * 格式化类型改变触发\n * @param v\n */\n const handleModeChange = (v: TdColorPickerProps['format']) => {\n formatModel.value = v;\n };\n\n return () => {\n const newProps = {\n ...props,\n format: formatModel.value,\n };\n const selectInputProps = {\n ...((props.selectInputProps as Object) || {}),\n };\n return (\n
    \n
    \n \n {getColorFormatOptions(props.enableAlpha).map((item) => (\n \n ))}\n \n
    \n
    \n \n
    \n
    \n );\n };\n },\n});\n","import { 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 { 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 const color = props.type === 'hue' ? `hsl(${props.color.hue}, 100%, 50%)` : props.color.rgba;\n return {\n left: `${left}%`,\n color,\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 { computed, defineComponent, PropType } from 'vue';\nimport ColorSlider from './slider';\nimport { Color } from '../../utils';\nimport { useBaseClassName } from '../../hooks';\n\nexport default defineComponent({\n name: 'AlphaSlider',\n inheritAttrs: false,\n props: {\n color: {\n type: Object as PropType,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n onChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const handleChange = (v: number, isDragEnd?: boolean) => {\n props.onChange(v / 100, isDragEnd);\n };\n const railStyle = computed(() => {\n return {\n background: `linear-gradient(to right, rgba(0, 0, 0, 0), ${props.color.rgb})`,\n };\n });\n\n return () => {\n return (\n \n );\n };\n },\n});\n","import { defineComponent, PropType, ref, watch } from 'vue';\n\nimport { COLOR_MODES } from '@tdesign/common-js/color-picker/constants';\nimport { useConfig } from '@tdesign/shared-hooks';\nimport { RadioButton as TRadioButton, RadioGroup as TRadioGroup } from '../../../radio';\nimport props from '../../color-picker-panel-props';\nimport { useBaseClassName } from '../../hooks';\nimport type { TdColorModes } from '../../types';\n\nexport default defineComponent({\n name: 'PanelHeader',\n props: {\n ...props,\n mode: {\n type: String as PropType,\n default: 'color',\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 { 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 { 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 '@tdesign/shared-hooks';\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 const left = e.offsetX;\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, 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 { useGlobalIcon, useCommonClassName } from '@tdesign/shared-hooks';\n\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 { computed, defineComponent, ref, toRefs, watch } from 'vue';\nimport { cloneDeep, isNull, isUndefined } from 'lodash-es';\nimport {\n Color,\n DEFAULT_COLOR,\n DEFAULT_LINEAR_GRADIENT,\n DEFAULT_SYSTEM_SWATCH_COLORS,\n getColorObject,\n GradientColorPoint,\n initColorFormat,\n TD_COLOR_USED_COLORS_MAX_SIZE,\n} from '@tdesign/common-js/color-picker/index';\nimport { useCommonClassName, useConfig, useDefaultValue, useVModel } from '@tdesign/shared-hooks';\nimport props from '../../color-picker-panel-props';\nimport { useBaseClassName } from '../../hooks';\nimport type { ColorPickerChangeTrigger, TdColorPickerProps } from '../../type';\nimport type { TdColorModes } from '../../types';\nimport FormatPanel from '../format';\nimport AlphaSlider from './alpha';\nimport PanelHeader from './header';\nimport HueSlider from './hue';\nimport LinearGradient from './linear-gradient';\nimport SaturationPanel from './saturation';\nimport SwatchesPanel from './swatches';\n\nexport default defineComponent({\n name: 'ColorPanel',\n props: {\n ...props,\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const { STATUS } = useCommonClassName();\n const { t, globalConfig } = useConfig('colorPicker');\n const statusClassNames = STATUS.value;\n const { value: inputValue, modelValue, recentColors } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n const [innerRecentColors, setInnerRecentColors] = useDefaultValue(\n recentColors,\n props.defaultRecentColors,\n props.onRecentColorsChange,\n 'recentColors',\n );\n\n const getModeByColor = (input: string) => {\n if (props.colorModes.length === 1) return props.colorModes[0];\n return props.colorModes.includes('linear-gradient') && Color.isGradientColor(input)\n ? 'linear-gradient'\n : 'monochrome';\n };\n const mode = ref(getModeByColor(innerValue.value));\n\n const isGradient = computed(() => mode.value === 'linear-gradient');\n const defaultEmptyColor = computed(() => (isGradient.value ? DEFAULT_LINEAR_GRADIENT : DEFAULT_COLOR));\n\n const color = ref(new Color(innerValue.value || defaultEmptyColor.value));\n\n const formatModel = ref(initColorFormat(props.format, props.enableAlpha));\n\n /**\n * 添加最近使用颜色\n * @returns void\n */\n const addRecentlyUsedColor = () => {\n if (innerRecentColors.value === null || innerRecentColors.value === false) {\n return;\n }\n const colors = cloneDeep(innerRecentColors.value as string[]) || [];\n const currentColor = color.value.isGradient ? color.value.linearGradient : color.value.rgba;\n const index = colors.indexOf(currentColor);\n if (index > -1) {\n colors.splice(index, 1);\n }\n colors.unshift(currentColor);\n if (colors.length > TD_COLOR_USED_COLORS_MAX_SIZE) {\n colors.length = TD_COLOR_USED_COLORS_MAX_SIZE;\n }\n handleRecentlyUsedColorsChange(colors);\n };\n\n /**\n * 最近使用颜色变更时触发\n * @param colors\n */\n const handleRecentlyUsedColorsChange = (colors: string[]) => {\n setInnerRecentColors(colors);\n };\n\n /**\n * onChange\n * @param trigger\n */\n const emitColorChange = (trigger?: ColorPickerChangeTrigger) => {\n const value = color.value.getFormattedColor(props.format, props.enableAlpha);\n setInnerValue(value, {\n color: getColorObject(color.value),\n trigger: trigger || 'palette-saturation-brightness',\n });\n };\n\n watch(\n () => innerValue.value,\n (newColor) => {\n const newMode = getModeByColor(newColor);\n mode.value = newMode;\n color.value.isGradient = newMode === 'linear-gradient';\n const currentColor = color.value.getFormattedColor(props.format, props.enableAlpha);\n if (currentColor !== newColor) {\n color.value.update(newColor);\n }\n },\n );\n\n /**\n * mode change\n * @param newMode\n * @returns\n */\n const handleModeChange = (newMode: TdColorModes) => {\n mode.value = newMode;\n\n const isGradientMode = newMode === 'linear-gradient';\n color.value.isGradient = isGradientMode;\n\n if (isGradientMode) {\n color.value.update(\n color.value.gradientColors.length > 0 ? color.value.linearGradient : DEFAULT_LINEAR_GRADIENT,\n );\n } else {\n color.value.update(color.value.rgba);\n }\n\n emitColorChange();\n };\n\n /**\n * 饱和度亮度变化\n * @param param0\n */\n const handleSatAndValueChange = ({ saturation, value }: { saturation: number; value: number }) => {\n const { saturation: sat, value: val } = color.value;\n let changeTrigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n if (value !== val && saturation !== sat) {\n color.value.saturation = saturation;\n color.value.value = value;\n changeTrigger = 'palette-saturation-brightness';\n } else if (saturation !== sat) {\n color.value.saturation = saturation;\n changeTrigger = 'palette-saturation';\n } else if (value !== val) {\n color.value.value = value;\n changeTrigger = 'palette-brightness';\n } else {\n return;\n }\n\n emitColorChange(changeTrigger);\n };\n\n /**\n * 色相变化\n * @param hue\n */\n const handleHueChange = (hue: number) => {\n color.value.hue = hue;\n emitColorChange('palette-hue-bar');\n props.onPaletteBarChange?.({\n color: getColorObject(color.value),\n });\n };\n\n /**\n * 透明度变化\n * @param alpha\n */\n const handleAlphaChange = (alpha: number) => {\n color.value.alpha = alpha;\n emitColorChange('palette-alpha-bar');\n };\n\n /**\n * 输入框触发改变\n * @param input\n * @param alpha\n */\n const handleInputChange = (input: string, alpha?: number) => {\n color.value.update(input);\n color.value.alpha = alpha;\n emitColorChange('input');\n };\n\n /**\n * 渐变改变\n * @param param0\n */\n const handleGradientChange = ({\n key,\n payload,\n }: {\n key: 'degree' | 'selectedId' | 'colors';\n payload: number | string | GradientColorPoint[];\n }) => {\n let trigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n switch (key) {\n case 'degree':\n color.value.gradientDegree = payload as number;\n trigger = 'input';\n break;\n case 'selectedId':\n color.value.gradientSelectedId = payload as string;\n break;\n case 'colors':\n color.value.gradientColors = payload as GradientColorPoint[];\n break;\n }\n emitColorChange(trigger);\n };\n\n /**\n * 色块点击\n * @param type\n * @param value\n */\n const handleSetColor = (value: string, trigger: ColorPickerChangeTrigger) => {\n const newMode = getModeByColor(value);\n mode.value = newMode;\n color.value.isGradient = newMode === 'linear-gradient';\n color.value.update(value);\n emitColorChange(trigger);\n };\n\n return () => {\n const baseProps = {\n color: color.value,\n disabled: props.disabled,\n };\n\n // 只支持渐变模式\n const onlySupportGradient = props.colorModes.length === 1 && props.colorModes.includes('linear-gradient');\n\n // 最近使用颜色\n let recentColors = innerRecentColors.value;\n if (onlySupportGradient && Array.isArray(recentColors)) {\n recentColors = recentColors.filter((color) => Color.isGradientColor(color));\n }\n const showUsedColors = !!Array.isArray(recentColors);\n\n // 系统预设颜色\n let systemColors = props.swatchColors;\n if (isUndefined(systemColors)) {\n systemColors = [...DEFAULT_SYSTEM_SWATCH_COLORS];\n }\n if (isNull(systemColors)) {\n systemColors = [];\n }\n if (onlySupportGradient) {\n systemColors = systemColors.filter((color) => Color.isGradientColor(color));\n }\n const showSystemColors = Array.isArray(systemColors) && systemColors.length;\n\n const renderSwatches = () => {\n if (!showSystemColors && !showUsedColors) return null;\n return (\n <>\n
    \n {showUsedColors ? (\n handleSetColor(color, 'recent')}\n onChange={handleRecentlyUsedColorsChange}\n />\n ) : null}\n {showSystemColors ? (\n handleSetColor(color, 'preset')}\n />\n ) : null}\n
    \n \n );\n };\n\n return (\n
    \n \n
    \n {isGradient.value ? (\n \n ) : null}\n\n \n\n
    \n
    \n \n {props.enableAlpha ? : null}\n
    \n\n {props.showPrimaryColorPreview ? (\n
    \n \n
    \n ) : null}\n
    \n\n \n {renderSwatches()}\n
    \n
    \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport props from './color-picker-panel-props';\nimport ColorPanel from './components/panel';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport { pickBy } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TColorPickerPanel',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const newProps = computed(() => pickBy({ ...props, ...attrs }, (v) => v !== undefined));\n const prefix = usePrefixClass();\n return () => ;\n },\n});\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n","import { defineComponent, PropType, ref, watch } from 'vue';\nimport TInput from '../../../input';\nimport { Color, getColorObject } from '../../utils';\nimport { TdColorPickerProps } from '../../type';\nimport { useBaseClassName } from '../../hooks';\nimport { useCommonClassName } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'DefaultTrigger',\n inheritAttrs: false,\n props: {\n color: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n borderless: {\n type: Boolean,\n default: false,\n },\n clearable: {\n type: Boolean,\n default: false,\n },\n inputProps: {\n type: Object as PropType,\n default: () => {\n return {\n autoWidth: true,\n };\n },\n },\n onTriggerChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n onTriggerClear: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n size: {\n type: String as PropType,\n default: 'medium',\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const value = ref(props.color);\n const { SIZE: sizeClassNames } = useCommonClassName();\n watch(\n () => [props.color],\n () => (value.value = props.color),\n );\n\n const handleChange = (input: string) => {\n if (input !== props.color) {\n props.onTriggerChange(value.value, {\n color: getColorObject(new Color(input)),\n trigger: 'input',\n });\n }\n };\n\n const handleClear = (context: { e: MouseEvent }) => props.onTriggerClear?.(context);\n\n return () => {\n const inputSlots = {\n label: () => {\n return (\n
    \n \n
    \n );\n },\n };\n return (\n \n );\n };\n },\n});\n","import { defineComponent, ref, toRefs } from 'vue';\nimport { useDefaultValue, useTNodeDefault, useVModel } from '@tdesign/shared-hooks';\n\nimport { type PopupProps, Popup as TPopup } from '../popup';\nimport ColorPanel from './components/panel';\nimport DefaultTrigger from './components/trigger';\nimport { useBaseClassName } from './hooks';\nimport props from './props';\n\nexport default defineComponent({\n name: 'TColorPicker',\n props,\n setup(props) {\n const baseClassName = useBaseClassName();\n const renderTNodeJSXDefault = useTNodeDefault();\n\n const { value: inputValue, modelValue, recentColors } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n const [innerRecentColors, setInnerRecentColors] = useDefaultValue(\n recentColors,\n props.defaultRecentColors,\n props.onRecentColorsChange,\n 'recentColors',\n );\n\n const refTrigger = ref();\n\n const handleClear = (context: { e: MouseEvent }) => props.onClear?.(context);\n\n const renderPopupContent = () => {\n if (props.disabled) {\n return null;\n }\n\n return (\n \n );\n };\n\n return () => {\n const popProps = {\n placement: 'bottom-left' as const,\n trigger: 'click' as const,\n overlayClassName: [baseClassName.value],\n ...((props.popupProps as PopupProps) || {}),\n };\n return (\n \n
    \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 '@tdesign/shared-utils';\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, isString, isFunction } from 'lodash-es';\n\nimport { ImageErrorIcon, ImageIcon } from 'tdesign-icons-vue-next';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { useTNodeJSX, useTNodeDefault, useImagePreviewUrl } from '@tdesign/shared-hooks';\nimport props from './props';\nimport Space from '../space';\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 '@tdesign/shared-utils';\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 { useContent, useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\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 * 【开发中】头像右上角提示信息\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, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { getChildren } from '@tdesign/shared-utils';\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 '@tdesign/shared-utils';\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, usePrefixClass } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 '@tdesign/shared-hooks';\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 { isBoolean, isFunction } from 'lodash-es';\n\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 '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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 { useContent, useCommonClassName } from '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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, isArray, isFunction } from 'lodash-es';\n\nimport props from './props';\nimport * as utils from './utils';\nimport { useConfig, useContent } from '@tdesign/shared-hooks';\n\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 // @ts-ignore @types/lodash 4.17.18\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 '@tdesign/shared-utils';\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 bodyClassName: {\n type: String as PropType,\n },\n /** body区域自定义样式 */\n bodyStyle: {\n type: Object as PropType,\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 footerClassName: {\n type: String as PropType,\n },\n /** 卡片底部区域自定义样式 */\n footerStyle: {\n type: Object as PropType,\n },\n /** 卡片顶部内容,优先级高于其他所有元素 */\n header: {\n type: [String, Function] as PropType,\n },\n /** 卡片顶部区域自定义类名 */\n headerClassName: {\n type: String as PropType,\n },\n /** 卡片顶部区域自定义样式 */\n headerStyle: {\n type: Object 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 { useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\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 `${COMPONENT_NAME.value}__header`,\n props.headerBordered && `${COMPONENT_NAME.value}__title--bordered`,\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)\n return (\n
    \n {renderTNodeJSX('header')}\n
    \n );\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
    \n {renderTNodeJSX('default') || renderTNodeJSX('content')}\n
    \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 '@tdesign/shared-utils';\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 { useTNodeJSX, usePrefixClass, useFlatChildrenSlots } from '@tdesign/shared-hooks';\n\nimport Button from '../button';\nimport { isString } 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 const getFlatChildren = useFlatChildrenSlots();\n\n return () => {\n const reply = renderTNodeJSX('reply');\n const author = renderTNodeJSX('author');\n const datetime = renderTNodeJSX('datetime');\n const quote = renderTNodeJSX('quote');\n const actions = renderTNodeJSX('actions');\n const content = renderTNodeJSX('content');\n const avatar = renderTNodeJSX('avatar');\n const showAuthorDatetime = computed(() => author || datetime);\n\n const replyDom = reply ?
    {reply}
    : null;\n\n const quoteDom = quote ?
    {quote}
    : null;\n\n const avatarDom = avatar ? (\n
    \n {isString(avatar) ? \"\" : avatar}\n
    \n ) : null;\n\n const authorDatetimeDom = showAuthorDatetime.value && (\n
    \n {author && {author}}\n {datetime && {datetime}}\n
    \n );\n\n const renderActions = () => {\n if (!actions || !actions.length) return null;\n const flatChildren = getFlatChildren(actions);\n return (\n
    \n {flatChildren.map((action, index) => (\n \n ))}\n
    \n );\n };\n\n const contentDom = (\n
    \n {authorDatetimeDom}\n
    {content}
    \n {quoteDom}\n {renderActions()}\n
    \n );\n\n return (\n
    \n
    \n {avatarDom}\n {contentDom}\n
    \n {replyDom}\n
    \n );\n };\n },\n});\n","import _Comment from './comment';\nimport { withInstall } from '@tdesign/shared-utils';\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, isPlainObject } from 'lodash-es';\n\nimport { useConfig, useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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","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, useImagePreviewUrl } from '@tdesign/shared-hooks';\n\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 { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\nimport { TNode } from '../../common';\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 /** 是否启用对话框懒加载,启用时对话框内的内容不渲染 */\n lazy: Boolean,\n /** 对话框类型,有 4 种:模态对话框、非模态对话框、普通对话框、全屏对话框。弹出「模态对话框」时,只能操作对话框里面的内容,不能操作其他内容。弹出「非模态对话框」时,则可以操作页面内所有内容。「普通对话框」是指没有脱离文档流的对话框,可以在这个基础上开发更多的插件 */\n mode: {\n type: String as PropType,\n default: 'modal' as TdDialogProps['mode'],\n validator(val: TdDialogProps['mode']): boolean {\n if (!val) return true;\n return ['modal', 'modeless', 'normal', 'full-screen'].includes(val);\n },\n },\n /** 对话框位置,内置两种:垂直水平居中显示 和 靠近顶部(top:20%)显示。默认情况,为避免贴顶或贴底,顶部和底部距离最小为 `48px`,可通过调整 `top` 覆盖默认大小 */\n placement: {\n type: String as PropType,\n default: 'top' as TdDialogProps['placement'],\n validator(val: TdDialogProps['placement']): boolean {\n if (!val) return true;\n return ['top', 'center'].includes(val);\n },\n },\n /** 防止滚动穿透 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative */\n showInAttachedElement: Boolean,\n /** 是否显示遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 对话框风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdDialogProps['theme'],\n validator(val: TdDialogProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'info', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 用于弹框具体窗口顶部的距离,优先级大于 placement */\n top: {\n type: [String, Number] as PropType,\n },\n /** 控制对话框是否显示 */\n visible: Boolean,\n /** 对话框宽度,示例:320, '500px', '80%' */\n width: {\n type: [String, Number] as PropType,\n },\n /** 对话框层级,Web 侧样式默认为 2500,移动端和小程序样式默认为 1500 */\n zIndex: {\n type: Number,\n },\n /** 对话框执行消失动画效果前触发 */\n onBeforeClose: Function as PropType,\n /** 对话框执行弹出动画效果前触发 */\n onBeforeOpen: Function as PropType,\n /** 如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 关闭事件,点击取消按钮、点击关闭按钮、点击蒙层、按下 ESC 等场景下触发 */\n onClose: Function as PropType,\n /** 点击右上角关闭按钮时触发 */\n onCloseBtnClick: Function as PropType,\n /** 对话框消失动画效果结束后触发 */\n onClosed: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发,或者键盘按下回车键时触发 */\n onConfirm: Function as PropType,\n /** 按下 ESC 时触发事件 */\n onEscKeydown: Function as PropType,\n /** 对话框弹出动画效果结束后触发 */\n onOpened: Function as PropType,\n /** 如果蒙层存在,点击蒙层时触发 */\n onOverlayClick: Function as PropType,\n};\n","import { getCurrentInstance } from 'vue';\nimport { omit, isString, isObject } from 'lodash-es';\n\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\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 { useConfig, useContent, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { useAction } from './hooks';\n\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, useTeleport, usePrefixClass, usePopupManager, useDestroyOnClose } from '@tdesign/shared-hooks';\nimport { useSameTarget } from './hooks';\n\nimport { getScrollbarWidth } from '@tdesign/common-js/utils/getScrollbarWidth';\n\nimport { getCSSValue } from './utils';\nimport TDialogCard from './dialog-card';\n\nlet mousePosition: { x: number; y: number } | null;\nconst getClickPosition = (e: MouseEvent) => {\n mousePosition = {\n x: e.clientX,\n y: e.clientY,\n };\n setTimeout(() => {\n mousePosition = null;\n }, 100);\n};\n\nif (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n document.documentElement.addEventListener('click', getClickPosition, true);\n}\n\nlet key = 1;\n\nexport default defineComponent({\n name: 'TDialog',\n inheritAttrs: false,\n props,\n emits: ['update:visible'],\n setup(props, context) {\n const COMPONENT_NAME = usePrefixClass('dialog');\n const classPrefix = usePrefixClass();\n const dialogCardRef = ref void }>>(null);\n const { globalConfig } = useConfig('dialog');\n const confirmBtnAction = (context: { e: MouseEvent }) => {\n props.onConfirm?.(context);\n };\n const cancelBtnAction = (context: { e: MouseEvent }) => {\n props.onCancel?.(context);\n emitCloseEvent({ e: context.e, trigger: 'cancel' });\n };\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n useDestroyOnClose();\n const timer = ref();\n const styleEl = ref();\n // 是否模态形式的对话框\n const isModal = computed(() => props.mode === 'modal');\n // 是否非模态对话框\n const isModeLess = computed(() => props.mode === 'modeless');\n // 是否全屏对话框\n const isFullScreen = computed(() => props.mode === 'full-screen');\n const computedVisible = computed(() => props.visible);\n const maskClass = computed(() => [\n `${COMPONENT_NAME.value}__mask`,\n !props.showOverlay && `${classPrefix.value}-is-hidden`,\n ]);\n const positionClass = computed(() => {\n if (isFullScreen.value) return [`${COMPONENT_NAME.value}__position_fullscreen`];\n if (isModal.value || isModeLess.value) {\n return [\n `${COMPONENT_NAME.value}__position`,\n !!props.top && `${COMPONENT_NAME.value}--top`,\n `${props.placement && !props.top ? `${COMPONENT_NAME.value}--${props.placement}` : ''}`,\n ];\n }\n return [];\n });\n const wrapClass = computed(() =>\n isFullScreen.value || isModal.value || isModeLess.value ? [`${COMPONENT_NAME.value}__wrap`] : null,\n );\n const positionStyle = computed(() => {\n if (isFullScreen.value) return {}; // 全屏模式,top属性不生效\n\n // 此处获取定位方式 top 优先级较高 存在时 默认使用top定位\n const { top } = props;\n let topStyle = {};\n if (top !== undefined) {\n const topValue = getCSSValue(top);\n topStyle = { paddingTop: topValue };\n }\n return topStyle;\n });\n\n const { isTopInteractivePopup } = usePopupManager('dialog', {\n visible: computedVisible,\n });\n /**是否已经第一次渲染,懒加载判断 */\n const isMounted = ref(false);\n\n watch(\n () => props.visible,\n (value) => {\n if (value) {\n isMounted.value = true;\n if ((isModal.value && !props.showInAttachedElement) || isFullScreen.value) {\n if (props.preventScrollThrough) {\n document.body.appendChild(styleEl.value);\n }\n\n nextTick(() => {\n if (mousePosition && dialogCardRef.value?.$el) {\n const el = dialogCardRef.value.$el as HTMLElement;\n el.style.transformOrigin = `${mousePosition.x - el.offsetLeft}px ${mousePosition.y - el.offsetTop}px`;\n }\n });\n }\n // 清除鼠标焦点 避免entry事件多次触发(按钮弹出弹窗 不移除焦点 立即按Entry按键 会造成弹窗关闭再弹出)\n (document.activeElement as HTMLElement)?.blur();\n } else {\n clearStyleFunc();\n }\n addKeyboardEvent(value);\n },\n );\n\n function destroySelf() {\n styleEl.value.parentNode?.removeChild?.(styleEl.value);\n }\n\n function clearStyleFunc() {\n clearTimeout(timer.value);\n timer.value = setTimeout(() => {\n destroySelf();\n }, 150);\n }\n\n const addKeyboardEvent = (status: boolean) => {\n if (status) {\n document.addEventListener('keydown', keyboardEvent);\n props.confirmOnEnter && document.addEventListener('keydown', keyboardEnterEvent);\n } else {\n document.removeEventListener('keydown', keyboardEvent);\n props.confirmOnEnter && document.removeEventListener('keydown', keyboardEnterEvent);\n }\n };\n // 回车触发确认事件\n const keyboardEnterEvent = (e: KeyboardEvent) => {\n const eventSrc = e.target as HTMLElement;\n if (eventSrc.tagName.toLowerCase() === 'input') return; // 若是input触发 则不执行\n const { code } = e;\n if ((code === 'Enter' || code === 'NumpadEnter') && isTopInteractivePopup()) {\n props.onConfirm?.({ e });\n }\n };\n const keyboardEvent = (e: KeyboardEvent) => {\n if (e.code === 'Escape' && isTopInteractivePopup()) {\n props.onEscKeydown?.({ e });\n // 根据closeOnEscKeydown判断按下ESC时是否触发close事件\n if (props.closeOnEscKeydown ?? globalConfig.value.closeOnEscKeydown) {\n emitCloseEvent({ e, trigger: 'esc' });\n // 阻止事件冒泡\n e.stopImmediatePropagation();\n }\n }\n };\n const overlayAction = (e: MouseEvent) => {\n if (props.showOverlay && (props.closeOnOverlayClick ?? globalConfig.value.closeOnOverlayClick)) {\n props.onOverlayClick?.({ e });\n emitCloseEvent({ e, trigger: 'overlay' });\n }\n };\n const { onClick, onMousedown, onMouseup } = useSameTarget(overlayAction);\n const closeBtnAction = (context: { e: MouseEvent }) => {\n props.onCloseBtnClick?.(context);\n emitCloseEvent({\n trigger: 'close-btn',\n e: context.e,\n });\n };\n\n // 打开弹窗动画开始时事件\n const beforeEnter = () => {\n props.onBeforeOpen?.();\n };\n\n // 打开弹窗动画结束时事件\n const afterEnter = () => {\n props.onOpened?.();\n };\n\n // 关闭弹窗动画开始时事件\n const beforeLeave = () => {\n props.onBeforeClose?.();\n };\n\n // 关闭弹窗动画结束时事件\n const afterLeave = () => {\n dialogCardRef.value?.resetPosition?.();\n props.onClosed?.();\n };\n\n const emitCloseEvent = (ctx: DialogCloseContext) => {\n props.onClose?.(ctx);\n // 默认关闭弹窗\n context.emit('update:visible', false);\n };\n\n // Vue在引入阶段对事件的处理还做了哪些初始化操作。Vue在实例上用一个_events属性存贮管理事件的派发和更新,\n // 暴露出$on, $once, $off, $emit方法给外部管理事件和派发执行事件\n // 所以通过判断_events某个事件下监听函数数组是否超过一个,可以判断出组件是否监听了当前事件\n // const hasEventOn = (name: string) => {\n // // _events 因没有被暴露在vue实例接口中,只能把这个规则注释掉\n // // eslint-disable-next-line dot-notation\n // // @ts-ignore\n // const eventFuncs = this['_events']?.[name];\n // return !!eventFuncs?.length;\n // };\n\n const renderDialog = () => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { theme, onConfirm, onCancel, onCloseBtnClick, ...otherProps } = props;\n return (\n /** 非模态形态下draggable为true才允许拖拽 */\n
    \n \n \n
    \n \n );\n };\n\n onMounted(() => {\n const hasScrollBar = document.documentElement.scrollHeight > document.documentElement.clientHeight;\n const scrollWidth = hasScrollBar ? getScrollbarWidth() : 0;\n styleEl.value = document.createElement('style');\n styleEl.value.dataset.id = `td_dialog_${+new Date()}_${(key += 1)}`;\n styleEl.value.innerHTML = `\n html body {\n overflow-y: hidden;\n width: calc(100% - ${scrollWidth}px);\n }\n `;\n });\n\n onBeforeUnmount(() => {\n addKeyboardEvent(false);\n destroySelf();\n });\n\n const shouldRender = computed(() => {\n const { destroyOnClose, visible, lazy } = props;\n if (!isMounted.value) {\n return !lazy;\n } else {\n return visible || !destroyOnClose;\n }\n });\n\n return () => {\n const maskView = (isModal.value || isFullScreen.value) &&
    ;\n const dialogView = renderDialog();\n const view = [maskView, dialogView];\n const ctxStyle = { zIndex: props.zIndex };\n // dialog__ctx--fixed 绝对定位\n // dialog__ctx--absolute 挂载在attach元素上 相对定位\n // __ctx--modeless modeless 点击穿透\n const ctxClass = [\n `${COMPONENT_NAME.value}__ctx`,\n {\n [`${COMPONENT_NAME.value}__ctx--fixed`]: isModal.value || isFullScreen.value,\n [`${COMPONENT_NAME.value}__ctx--absolute`]: isModal.value && props.showInAttachedElement,\n [`${COMPONENT_NAME.value}__ctx--modeless`]: isModeLess.value,\n },\n ];\n\n return (\n \n \n {shouldRender.value && (\n
    \n {view}\n
    \n )}\n \n
    \n );\n };\n },\n});\n","export function useSameTarget(handleClick?: (e: MouseEvent) => void) {\n // 判断 click 事件的起点和落点所在元素是否一致\n let MOUSEDOWN_TARGET = false;\n let MOUSEUP_TARGET = false;\n\n const onClick = (e: MouseEvent) => {\n if (MOUSEDOWN_TARGET && MOUSEUP_TARGET) {\n handleClick?.(e);\n }\n MOUSEDOWN_TARGET = false;\n MOUSEUP_TARGET = false;\n };\n\n const onMousedown = (e: MouseEvent) => {\n MOUSEDOWN_TARGET = e.target === e.currentTarget;\n };\n const onMouseup = (e: MouseEvent) => {\n MOUSEUP_TARGET = e.target === e.currentTarget;\n };\n\n return { onClick, onMousedown, onMouseup };\n}\n","import { App, ref, Plugin, defineComponent, h, onMounted, nextTick, AppContext, createVNode, render } from 'vue';\nimport DialogComponent from './dialog';\nimport { getAttach } from '@tdesign/shared-utils';\nimport { DialogOptions, DialogMethod, DialogConfirmMethod, DialogAlertMethod, DialogInstance } from './type';\nimport { omit } from 'lodash-es';\n\nconst createDialog: DialogMethod = (props, context) => {\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 function destroySelf() {\n render(null, wrapper);\n wrapper.remove();\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 if (options.destroyOnClose) {\n setTimeout(() => {\n destroySelf();\n }, 300);\n }\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 dialog = createVNode(component);\n // eslint-disable-next-line no-underscore-dangle\n if (context ?? DialogPlugin._context) {\n // eslint-disable-next-line no-underscore-dangle\n dialog.appContext = context ?? DialogPlugin._context;\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 render(dialog, wrapper);\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.component.exposed.update(omit(newOptions, ['className', 'style']));\n updateClassNameStyle(newOptions.className, newOptions.style);\n },\n destroy: () => {\n visible.value = false;\n setTimeout(() => {\n destroySelf();\n }, 300);\n },\n setConfirmLoading: (val: boolean) => {\n dialog.component.exposed.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, context?: AppContext) => createDialog(props, context);\n\nconst alert: DialogAlertMethod = (props: Omit, context?: AppContext) => {\n const options = { ...props };\n options.cancelBtn = null;\n return createDialog(options, context);\n};\n\nconst extraApi: ExtraApi = {\n confirm,\n alert,\n};\n\nexport type DialogPluginType = Plugin &\n ExtraApi &\n DialogMethod & {\n _context?: AppContext;\n };\n\nexport const DialogPlugin = createDialog as DialogPluginType;\n\nDialogPlugin.install = (app: App): void => {\n app.config.globalProperties.$dialog = createDialog;\n // 如果使用 use 方法,自动绑定当前 App 的 context\n // eslint-disable-next-line no-underscore-dangle\n DialogPlugin._context = app._context;\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 '@tdesign/shared-utils';\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 { useConfig, usePrefixClass, useImagePreviewUrl } from '@tdesign/shared-hooks';\n\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, usePrefixClass } from '@tdesign/shared-hooks';\n\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 { isArray, isString } 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 {\n useVModel,\n useTNodeJSX,\n useTeleport,\n usePrefixClass,\n useDefaultValue,\n usePopupManager,\n} from '@tdesign/shared-hooks';\n\nimport Image from '../image';\nimport TImageItem from './base/ImageItem';\nimport TImageViewerIcon from './base/ImageModalIcon';\nimport TImageViewerModal from './base/ImageViewerModal';\nimport TImageViewerUtils from './base/ImageViewerUtils';\nimport { EVENT_CODE } from './consts';\nimport { useMirror, useRotate, useScale } from './hooks';\nimport props from './props';\nimport { TdImageViewerProps } from './type';\nimport { downloadFile, formatImages, getOverlay } from './utils';\n\nexport default defineComponent({\n name: 'TImageViewer',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('image-viewer');\n const renderTNodeJSX = useTNodeJSX();\n const isExpand = ref(true);\n const showOverlayValue = computed(() => getOverlay(props));\n\n const { index, visible, modelValue, imageReferrerpolicy } = toRefs(props);\n const [indexValue, setIndexValue] = useDefaultValue(index, props.defaultIndex ?? 0, props.onIndexChange, 'index');\n const [visibleValue, setVisibleValue] = useVModel(visible, modelValue, props.defaultVisible, () => {}, 'visible');\n const animationEnd = ref(true);\n const animationTimer = ref();\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n\n const wrapClass = computed(() => [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}-preview-image`,\n {\n [`${classPrefix.value}-is-hide`]: !visibleValue.value,\n },\n ]);\n const headerClass = computed(() => [\n `${classPrefix.value}-image-viewer__modal-header`,\n {\n [`${classPrefix.value}-is-show`]: isExpand.value,\n },\n ]);\n const zIndexValue = computed(() => props.zIndex ?? 2600);\n const toggleExpand = () => {\n isExpand.value = !isExpand.value;\n };\n\n const { mirror, onMirror, resetMirror } = useMirror();\n const { scale, onZoomIn, onZoomOut, resetScale } = useScale(props.imageScale);\n const { rotate, onRotate, resetRotate } = useRotate();\n const onRest = () => {\n resetMirror();\n resetScale();\n resetRotate();\n };\n\n const images = computed(() => formatImages(props.images));\n const currentImage = computed(() => images.value[indexValue.value] ?? { mainImage: '' });\n\n const { isTopInteractivePopup } = usePopupManager('dialog', {\n visible: visibleValue,\n });\n\n const prevImage = () => {\n const newIndex = indexValue.value - 1;\n onRest();\n setIndexValue(newIndex < 0 ? 0 : newIndex, { trigger: 'prev' });\n };\n\n const nextImage = () => {\n const newIndex = indexValue.value + 1;\n onRest();\n setIndexValue(newIndex >= images.value.length ? indexValue.value : newIndex, { trigger: 'next' });\n };\n\n const onImgClick = (i: number) => {\n setIndexValue(i, { trigger: 'current' });\n };\n\n const onDownloadClick = (url: string) => {\n props.onDownload ? props.onDownload(url) : downloadFile(url);\n };\n\n const openHandler = () => {\n setVisibleValue(true);\n };\n const onClose: TdImageViewerProps['onClose'] = (ctx) => {\n setVisibleValue(false);\n props.onClose?.(ctx);\n };\n const closeBtnAction = (e: MouseEvent) => {\n onClose({ e, trigger: 'close-btn' });\n };\n const clickOverlayHandler = (e: MouseEvent) => {\n if (props.closeOnOverlay) {\n onClose({ e, trigger: 'overlay' });\n }\n };\n\n const keydownHandler = (e: KeyboardEvent) => {\n e.stopPropagation();\n\n switch (e.code) {\n case EVENT_CODE.left:\n prevImage();\n break;\n case EVENT_CODE.right:\n nextImage();\n break;\n case EVENT_CODE.up:\n onZoomIn();\n break;\n case EVENT_CODE.down:\n onZoomOut();\n break;\n case EVENT_CODE.esc:\n if (props.closeOnEscKeydown && isTopInteractivePopup()) {\n onClose({ e, trigger: 'esc' });\n }\n break;\n default:\n break;\n }\n };\n\n const divRef = ref();\n watch(\n () => visibleValue.value,\n (val) => {\n clearTimeout(animationTimer.value);\n if (val) {\n animationEnd.value = false;\n nextTick().then(() => {\n divRef.value?.focus?.();\n });\n\n onRest();\n } else {\n animationTimer.value = setTimeout(() => {\n animationEnd.value = true;\n }, 200);\n }\n },\n );\n\n const onWheel = (e: WheelEvent) => {\n e.preventDefault();\n const { deltaY } = e;\n deltaY > 0 ? onZoomOut() : onZoomIn();\n };\n\n const transStyle = computed(() => ({\n transform: `translateX(calc(-${indexValue.value} * (40px / 9 * 16 + 4px)))`,\n }));\n\n const renderHeader = () => (\n
    \n }\n class={`${COMPONENT_NAME.value}__header-pre-bt`}\n onClick={toggleExpand}\n />\n
    \n
    \n {images.value.map((image, index) => (\n \n onImgClick(index)}\n />\n
    \n ))}\n
    \n
    \n \n );\n const renderNavigationArrow = (type: 'prev' | 'next') => {\n const rotateDeg = type === 'prev' ? 0 : 180;\n const icon = renderTNodeJSX(\n 'navigationArrow',\n ,\n );\n\n return (\n icon}\n />\n );\n };\n\n const renderCloseBtn = () => {\n if (props.closeBtn === false) {\n return;\n }\n return (\n \n {renderTNodeJSX('closeBtn', )}\n \n );\n };\n\n return () => {\n if (props.mode === 'modeless') {\n return (\n <>\n {renderTNodeJSX('trigger', { params: { open: openHandler } })}\n \n \n );\n }\n\n return (\n <>\n {renderTNodeJSX('trigger', { params: { open: openHandler } })}\n \n \n {(visibleValue.value || !animationEnd.value) && (\n \n {!!showOverlayValue.value && (\n
    \n )}\n {images.value.length > 1 && (\n <>\n {renderHeader()}\n
    \n {props.title && renderTNodeJSX('title')}\n {`${indexValue.value + 1}/${images.value.length}`}\n
    \n {renderNavigationArrow('prev')}\n {renderNavigationArrow('next')}\n \n )}\n {renderCloseBtn()}\n \n \n
    \n )}\n
    \n
    \n \n );\n };\n },\n});\n","import _ImageViewer from './image-viewer';\nimport { withInstall } from '@tdesign/shared-utils';\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 { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\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 { useVirtualScrollNew } from '@tdesign/shared-hooks';\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 = useVirtualScrollNew(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 { omit, isString } from 'lodash-es';\n\nimport { useConfig, useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\nimport TLoading from '../loading';\nimport TListItem from './list-item';\nimport props from './props';\nimport { LOAD_MORE, LOADING } from './consts';\n\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 '@tdesign/shared-hooks';\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 { useContent, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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, ref, nextTick } 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';\n\nimport { useTNodeJSX, useGlobalIcon, usePrefixClass, useResizeObserver } from '@tdesign/shared-hooks';\n\nimport { isObject, 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 CIRCLE_ICONS_MAP = {\n success: CheckIcon,\n warning: ErrorIcon,\n error: CloseIcon,\n };\n const NORMAL_ICONS_MAP = {\n success: CheckCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n error: CloseCircleFilledIcon,\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 diameterValue = CIRCLE_SIZE_PX.MEDIUM;\n if (!props.size) {\n return diameterValue;\n }\n const { SMALL, LARGE, MEDIUM } = CIRCLE_SIZE;\n switch (props.size) {\n case SMALL:\n diameterValue = CIRCLE_SIZE_PX.SMALL;\n break;\n case MEDIUM:\n diameterValue = CIRCLE_SIZE_PX.MEDIUM;\n break;\n case LARGE:\n diameterValue = CIRCLE_SIZE_PX.LARGE;\n break;\n default:\n const customSize = Number(props.size);\n diameterValue = !isNaN(customSize) && customSize > 0 ? customSize : CIRCLE_SIZE_PX.MEDIUM;\n break;\n }\n return diameterValue;\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 = computed(() => {\n return props.theme === PRO_THEME.CIRCLE ? CIRCLE_ICONS_MAP : NORMAL_ICONS_MAP;\n });\n\n const getLabelContent = () => {\n let labelContentRender: string | VNode = `${props.percentage}%`;\n const status = props.status || '';\n if (STATUS_ICON.includes(status) && props.theme !== PRO_THEME.PLUMP) {\n const component = getIconMap.value[status as keyof typeof CIRCLE_ICONS_MAP];\n if (component) {\n labelContentRender = ;\n }\n }\n return labelContentRender;\n };\n\n // 当文字小于进度条宽度时,文字在进度条外部,否则在内部\n const infoIsOut = ref(true);\n const infoRef = ref(null);\n\n const separateClasses = computed(() => {\n return infoIsOut.value ? `${COMPONENT_NAME.value}--over-ten` : `${COMPONENT_NAME.value}--under-ten`;\n });\n\n async function updateInfoIsOut() {\n if (props.theme === PRO_THEME.PLUMP) {\n if (!infoRef.value || props.label === false) return;\n await nextTick();\n const infoEl =\n infoRef.value.querySelector(`.${COMPONENT_NAME.value}__info`) || infoRef.value.nextElementSibling;\n infoIsOut.value = infoRef.value.clientWidth > infoEl?.clientWidth + 10;\n }\n }\n\n useResizeObserver(infoRef, updateInfoIsOut);\n\n return () => {\n const labelContent = (\n
    {renderTNodeJSX('label', getLabelContent())}
    \n );\n\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 {infoIsOut.value && labelContent}\n
    \n {!infoIsOut.value && 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 '@tdesign/shared-utils';\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 { isArray, isNumber, isFunction } from 'lodash-es';\n\nimport props from './props';\nimport { SkeletonRowCol, SkeletonRowColObj, TdSkeletonProps } from './type';\nimport { useContent, usePrefixClass } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 颜色风格:黑色(black)、蓝色(blue)、红色(red)、橙色(orange)、绿色(green)支持深浅色模式切换。也可以自定义任何 [CSS color](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value) 支持颜色值,深浅色模式切换需自行适配 */\n color: {\n type: String,\n default: '',\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, isFunction } from 'lodash-es';\n\nimport props from './props';\nimport { useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\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 return {\n color: COLOR_MAP[props.color as keyof typeof COLOR_MAP] || props.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, contentStyle });\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 '@tdesign/shared-utils';\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 '@tdesign/shared-hooks';\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 { useTNodeJSX, useGlobalIcon, usePrefixClass, useChildComponentSlots } from '@tdesign/shared-hooks';\n\nimport props from './props';\nimport { SwiperNavigation, SwiperChangeSource } from './type';\nimport TSwiperItem from './swiper-item';\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 (swiperItemLength.value >= 2 && index === swiperItemLength.value - 1) {\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 '@tdesign/shared-utils';\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 '../types';\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 '@tdesign/shared-hooks';\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 type { AttachNode, TNode } from '../../common';\nimport { useContent } from '@tdesign/shared-hooks';\nimport { isTextEllipsis } from '@tdesign/shared-utils';\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 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 const renderContent = useContent();\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 const cellNode = renderContent('default', 'content');\n\n const ellipsisContent = (\n \n {cellNode}\n \n );\n let content = null;\n const tooltipProps = props.tooltipProps as EllipsisProps['tooltipProps'];\n if (isOverflow.value && flag.value) {\n const rProps = {\n content: (props.tooltipContent as string) || (() => cellNode),\n destroyOnClose: true,\n zIndex: props.zIndex,\n attach: props.attach,\n placement: props.placement,\n overlayClassName: tooltipProps?.overlayClassName\n ? innerEllipsisClassName.value.concat(tooltipProps.overlayClassName)\n : innerEllipsisClassName.value,\n onVisibleChange: handleVisibleChange,\n ...tooltipProps,\n };\n content = {ellipsisContent};\n } else {\n content = ellipsisContent;\n }\n return content;\n };\n },\n});\n","import { SetupContext, computed, h } from 'vue';\nimport { isString, isFunction } from 'lodash-es';\n\nimport { BaseTableCol, PrimaryTableCol, TableRowData, TdBaseTableProps } from '../type';\nimport { getThRowspanAndColspan, getThList } from './useMultiHeader';\nimport useClassName from './useClassName';\nimport { TNodeReturnValue } from '../../common';\nimport { BaseTableColumns } from '../types';\nimport TEllipsis from '../components/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 '@tdesign/shared-utils';\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, pick, xorWith, debounce } from 'lodash-es';\n\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 '@tdesign/shared-utils';\nimport { FixedColumnInfo, TableRowFixedClasses, RowAndColFixedPosition, TableColFixedClasses } from '../types';\nimport { getIEVersion } from '@tdesign/common-js/utils/helper';\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, 0);\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 '@tdesign/shared-hooks';\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 { debounce, isBoolean } from 'lodash-es';\nimport { computed, ref, watch, onBeforeUnmount } from 'vue';\nimport { TdBaseTableProps } from '../type';\nimport { on, off } from '@tdesign/shared-utils';\nimport { AffixProps } from '../../affix';\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 if (!pos) return;\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, get, 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 { get, pick, isString, isFunction, upperFirst } from 'lodash-es';\n\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 '../types';\nimport { getCellKey, SkipSpansValue } from '../hooks/useRowspanAndColspan';\nimport { TooltipProps } from '../../tooltip';\nimport { PaginationProps } from '../../pagination';\nimport type { VirtualScrollConfig } from '@tdesign/shared-hooks';\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 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 emits: ['row-mounted'],\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 columnVNodeList = 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 '@tdesign/shared-utils';\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, get, pick } from 'lodash-es';\nimport TrElement, { ROW_LISTENERS, TABLE_PROPS } from './tr';\n\nimport { useConfig, useTNodeJSX } from '@tdesign/shared-hooks';\n\nimport useClassName from '../hooks/useClassName';\nimport baseTableProps from '../base-table-props';\nimport { TNodeReturnValue } from '../../common';\nimport useRowspanAndColspan from '../hooks/useRowspanAndColspan';\nimport { BaseTableProps, RowAndColFixedPosition } from '../types';\nimport { TdBaseTableProps } from '../type';\nimport type { VirtualScrollConfig } from '@tdesign/shared-hooks';\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 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 setup(props, { slots }) {\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 const renderEmpty = (columns: TableBodyProps['columns']) => {\n const tableWidth = props.bordered ? props.tableWidth - 2 : props.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 = renderTNode(tType);\n if (['', null, undefined, false].includes(fullRowNode)) return null;\n const isFixedToLeft = props.isWidthOverflow && columns.value.find((col) => col.fixed === 'left');\n const classes = [tableFullRowClasses.base, tableFullRowClasses[tType]];\n const tableWidth = props.bordered ? props.tableWidth - 2 : props.tableWidth;\n /** innerFullRow 和 innerFullElement 同时存在,是为了保证 固定列时,当前行不随内容进行横向滚动 */\n return (\n \n \n \n );\n };\n\n const columnLength = columns.value.length;\n const dataLength = data.value?.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 = props.virtualConfig.isVirtualScroll.value ? props.virtualConfig.visibleData.value : data.value;\n\n renderData?.forEach((row, rowIndex) => {\n const rowKey = props.rowKey || 'id';\n const rowValue = get(row, rowKey);\n const trProps = {\n ...pick(props, TABLE_PROPS),\n rowKey,\n row,\n columns: columns.value,\n rowIndex: row.VIRTUAL_SCROLL_INDEX || rowIndex,\n dataLength,\n skipSpansMap: skipSpansMap.value,\n virtualConfig: props.virtualConfig,\n active: props.activeRow?.includes(rowValue),\n isHover: props.hoverRow === rowValue,\n ...pick(props, properties),\n // 遍历的同时,计算后面的节点,是否会因为合并单元格跳过渲染\n };\n if (props.onCellClick) {\n trProps.onCellClick = props.onCellClick;\n }\n\n const trNode = (\n \n );\n trNodeList.push(trNode);\n\n // 执行展开行渲染\n if (props.renderExpandedRow) {\n const p = {\n row,\n index: rowIndex,\n columns: columns.value,\n tableWidth: props.tableWidth,\n isWidthOverflow: props.isWidthOverflow,\n };\n const expandedContent = props.renderExpandedRow(p);\n expandedContent && trNodeList.push(expandedContent);\n }\n });\n\n const list = [\n getFullRow(columnLength, 'first-full-row'),\n ...trNodeList,\n getFullRow(columnLength, 'last-full-row'),\n ];\n\n const isEmpty = !data.value?.length && !props.loading && !props.firstFullRow && !props.lastFullRow;\n\n // 垫上隐藏的 tr 元素高度\n const translate = `translateY(${props.virtualConfig?.translateY.value}px)`;\n const posStyle = props.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(columns.value) : list}\n \n );\n };\n },\n});\n","import { computed, toRefs } from 'vue';\nimport { TdBaseTableProps } from '../type';\nimport useClassName from './useClassName';\nimport { useConfig, useCommonClassName } from '@tdesign/shared-hooks';\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 { SIZE } = 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 [SIZE.value[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: SIZE.value,\n tableElementStyles,\n tableContentStyles,\n };\n}\n","import { defineComponent, computed, 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 '../types';\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 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 setup(props, { slots }) {\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 const renderThNodeList = (\n rowAndColFixedPosition: RowAndColFixedPosition,\n thWidthList: TheadProps['thWidthList'],\n ) => {\n // thBorderMap: rowspan 会影响 tr > th 是否为第一列表头,从而影响边框\n const thBorderMap = new Map();\n const thRowspanAndColspan = props.spansAndLeafNodes.rowspanAndColspanMap;\n return props.thList.map((row, rowIndex) => {\n const thRow = row.map((col: BaseTableColumns[0], index: number) => {\n // 因合并单行表头,跳过\n if (colspanSkipMap.value[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(props.thList[j][0], true);\n }\n }\n const thStyles = getColumnFixedStyles(\n col,\n index,\n props.rowAndColFixedPosition,\n classnames.tableColFixedClasses,\n );\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 = props.showColumnShadow.left && col.fixed === 'left';\n const isRightFixedActive = props.showColumnShadow.right && col.fixed === 'right';\n const canDragSort = props.thDraggable && !(isLeftFixedActive || isRightFixedActive);\n const thClasses = [\n thStyles.classes,\n customClasses,\n thCustomClasses,\n {\n // 受 rowspan 影响,部分 tr > th:first-child 需要补足左边框\n [tableHeaderClasses.thBordered]: thBorderMap.get(col),\n [`${props.classPrefix}-table__th-${col.colKey}`]: col.colKey,\n [classnames.tdAlignClasses[col.align]]: col.align && col.align !== 'left',\n // 允许拖拽的列类名\n [classnames.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(slots, col, index);\n const resizeColumnListener =\n props.resizable || !canDragSort\n ? {\n onMousedown: (e: MouseEvent) => {\n if (props.resizable) {\n props.columnResizeParams?.onColumnMousedown?.(e, col, index);\n }\n if (!canDragSort) {\n const timer = setTimeout(() => {\n const thList = theadRef.value.querySelectorAll('th');\n thList[index]?.removeAttribute('draggable');\n clearTimeout(timer);\n }, 10);\n }\n },\n onMousemove: (e: MouseEvent) => {\n props.resizable && props.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 getTableNode(theadRef.value) : undefined)}\n tooltipContent={content && (() => content)}\n tooltipProps={typeof col.ellipsisTitle === 'object' ? col.ellipsisTitle : undefined}\n overlayClassName={props.ellipsisOverlayClassName}\n classPrefix={props.classPrefix}\n >\n {innerTh}\n \n ) : (\n innerTh\n )}\n
    \n \n );\n });\n return
    {thRow};\n });\n };\n\n return (\n \n {renderThNodeList(props.rowAndColFixedPosition, props.thWidthList)}\n \n );\n };\n },\n});\n","import { SetupContext, h, defineComponent, PropType, toRefs } from 'vue';\nimport { get, isString, isFunction } from 'lodash-es';\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\n\nimport { BaseTableCellParams, RowspanColspan, TableRowData, TdBaseTableProps } from '../type';\nimport { formatRowAttributes, formatRowClassNames } from '../utils';\nimport { getColumnFixedStyles } from '../hooks/useFixed';\nimport useRowspanAndColspan, { getCellKey } from '../hooks/useRowspanAndColspan';\nimport { RowAndColFixedPosition } from '../types';\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 if (!columns.value) return null;\n // 虚拟滚动情况下,不使用 sticky 定位,外部通过 affix 实现 footer\n const theadClasses = [\n classnames.tableFooterClasses.footer,\n { [classnames.tableFooterClasses.fixed]: props.isFixedHeader },\n ];\n const footerDomList = props.footData?.map((row, rowIndex) => {\n const trAttributes = formatRowAttributes(props.rowAttributes, { row, rowIndex, type: 'foot' });\n // 自定义行类名\n const customClasses = formatRowClassNames(\n props.rowClassName,\n { row, rowIndex, type: 'foot' },\n rowKey.value || 'id',\n );\n return (\n \n {columns.value.map((col, colIndex) => {\n // 合并单元格过滤\n const cellSpans: RowspanColspan = {};\n let spanState = null;\n if (skipSpansMap.value.size) {\n const cellKey = getCellKey(row, rowKey.value, col.colKey, colIndex);\n spanState = skipSpansMap.value.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 props.rowAndColFixedPosition,\n classnames.tableColFixedClasses,\n );\n const style: Styles = { ...tdStyles.style };\n if (props.thWidthList?.[col.colKey]) {\n style.width = `${props.thWidthList[col.colKey]}px`;\n }\n return (\n \n );\n })}\n \n );\n });\n const footerSummary = renderTNode('footerSummary');\n // 都不存在,则不需要渲染 footer\n if (!footerSummary && (!props.footData || !props.footData.length)) return null;\n return (\n // 虚拟滚动下,不显示 footer,但预留元素,用于高度计算\n \n {footerSummary && (\n \n \n \n )}\n {footerDomList}\n \n );\n };\n },\n});\n","import { ref, Ref, toRefs } from 'vue';\nimport { get } from 'lodash-es';\nimport { useDefaultValue } from '@tdesign/shared-hooks';\nimport { BaseTableProps } from '../types';\nimport { RowEventContext, TableRowData } from '../type';\nimport { on, off } from '@tdesign/shared-utils';\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 if (activeRowType.value === 'multiple') {\n setAllActive();\n }\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, get, isFunction, throttle } 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 { useConfig, useTNodeJSX, useVirtualScrollNew, useElementLazyRender } from '@tdesign/shared-hooks';\nimport useAffix from './hooks/useAffix';\nimport Loading from '../loading';\nimport TBody, { extendTableProps } from './components/tbody';\nimport { BaseTableProps } from './types';\n\nimport useStyle, { formatCSSUnit } from './hooks/useStyle';\nimport useClassName from './hooks/useClassName';\n\nimport { Affix } from '../affix';\nimport { ROW_LISTENERS } from './components/tr';\nimport THead from './components/thead';\nimport TFoot from './components/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';\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 props: {\n ...props,\n /**\n * 渲染展开行,非公开属性,请勿在业务中使用\n */\n renderExpandedRow: Function as PropType,\n onLeafColumnsChange: Function as PropType,\n thDraggable: Boolean,\n },\n emits: ['show-element-change'],\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 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 context.expose({\n refreshTable,\n scrollColumnIntoView,\n scrollToElement,\n });\n\n return () => {\n if (!showElement.value) {\n return
    ;\n }\n\n const data = isPaginateData.value ? dataSource.value : props.data;\n const columns = spansAndLeafNodes?.value.leafColumns || props.columns;\n\n const columnResizable = props.allowResizeColumnWidth ?? props.resizable;\n if (columnResizable && props.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 = props.tableLayout === 'fixed' && isWidthOverflow.value ? '100px' : undefined;\n\n const renderColGroup = (isAffixHeader = true) => (\n
    \n {columns.map((col) => {\n const style: Styles = {\n width:\n formatCSSUnit(\n (isAffixHeader || columnResizable ? thWidthList.value[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 && props.tableLayout === 'fixed') {\n style.minWidth = '80px';\n }\n return ;\n })}\n \n );\n\n const renderAffixedHeader = () => {\n if (props.showHeader === false) return null;\n return (\n !!(virtualConfig.isVirtualScroll.value || props.headerAffixedTop) &&\n (props.headerAffixedTop ? (\n \n {affixHeaderWithWrap}\n \n ) : (\n isFixedHeader.value && affixHeaderWithWrap\n ))\n );\n };\n\n const renderAffixedHorizontalScrollbar = () => (\n \n \n
    \n \n \n );\n\n const headProps = {\n isFixedHeader: isFixedHeader.value,\n rowAndColFixedPosition: rowAndColFixedPosition.value,\n isMultipleHeader: isMultipleHeader.value,\n bordered: props.bordered,\n maxHeight: props.maxHeight,\n height: props.height,\n spansAndLeafNodes: spansAndLeafNodes.value,\n thList: thList.value,\n thWidthList: thWidthList.value,\n resizable: props.resizable,\n columnResizeParams,\n classPrefix: classPrefix,\n ellipsisOverlayClassName: tableSize.value !== 'medium' ? sizeClassNames[tableSize.value] : '',\n attach: props.attach,\n showColumnShadow: showColumnShadow,\n thDraggable: props.thDraggable,\n };\n\n /**\n * Affixed Header\n */\n // IE 浏览器需要遮挡 header 吸顶滚动条,要减去 getBoundingClientRect.height 的滚动条高度 4 像素\n const IEHeaderWrap = getIEVersion() <= 11 ? 4 : 0;\n const barWidth = isWidthOverflow.value ? scrollbarWidth.value : 0;\n const affixHeaderHeight = ref((affixHeaderRef.value?.getBoundingClientRect().height || 0) - IEHeaderWrap);\n // 等待表头渲染完成后再更新高度,有可能列变动带来多级表头的高度变化,错误高度会导致滚动条显示\n const timer = setTimeout(() => {\n affixHeaderHeight.value = (affixHeaderRef.value?.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(showAffixHeader.value) : 1;\n const affixHeaderWrapHeightStyle = computed(() => {\n return {\n width: `${tableWidth.value}px`,\n height: `${affixHeaderWrapHeight.value}px`,\n opacity: headerOpacity,\n };\n });\n // 多级表头左边线缺失\n const affixedLeftBorder = props.bordered ? 1 : 0;\n const affixedHeader = Boolean(\n (props.headerAffixedTop || virtualConfig.isVirtualScroll.value) && tableWidth.value,\n ) && (\n \n \n {renderColGroup(true)}\n
    \n
    \n {col.ellipsis ? renderEllipsisCell(params, { cellNode }) : cellNode}\n ]\n : columnVNodeList}\n
    \n \n {renderTNode('empty') || t(globalConfig.value.empty)}\n \n
    \n \n
    {fullRowNode}
    \n \n
    \n {renderTFootCell({\n row,\n rowIndex,\n col,\n colIndex,\n })}\n
    \n
    {footerSummary}
    \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 = isWidthOverflow.value ? scrollbarWidth.value : 0;\n if (props.bordered) {\n marginScrollbarWidth += 1;\n }\n // Hack: Affix 组件,marginTop 临时使用 负 margin 定位位置\n const showFooter = Boolean(virtualConfig.isVirtualScroll.value || props.footerAffixedBottom);\n const hasFooter = props.footData?.length || props.footerSummary || context.slots['footerSummary'];\n const affixedFooter = Boolean(showFooter && hasFooter && tableWidth.value) && (\n \n \n \n {/* 此处和 Vue2 不同,Vue3 里面必须每一处单独写 */}\n {renderColGroup(true)}\n \n \n \n \n );\n\n // 通过 translate 撑开虚拟滚动的高度,应该是内容高度加上表头和表尾的高度\n const translate = `translate(0, ${\n virtualConfig.scrollHeight.value + (tableFootHeight.value ?? 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,\n ellipsisOverlayClassName: tableSize.value !== 'medium' ? sizeClassNames[tableSize.value] : '',\n rowAndColFixedPosition: rowAndColFixedPosition.value,\n showColumnShadow,\n data: data,\n virtualConfig,\n columns: spansAndLeafNodes.value.leafColumns,\n tableElm: tableRef.value,\n tableWidth: tableWidth.value,\n isWidthOverflow: isWidthOverflow.value,\n scroll: props.scroll,\n cellEmptyContent: props.cellEmptyContent,\n tableContentElm: tableContentRef.value,\n handleRowMounted: virtualConfig.handleRowMounted,\n renderExpandedRow: props.renderExpandedRow,\n ...pick(props, extendTableProps),\n // 内部使用分页信息必须取 innerPagination\n pagination: innerPagination.value,\n attach: props.attach,\n hoverRow: hoverRow.value,\n activeRow: tActiveRow.value,\n onRowClick: onInnerRowClick,\n };\n const tableContent = (\n \n {virtualConfig.isVirtualScroll.value &&
    }\n\n \n {renderColGroup(false)}\n {props.showHeader && (\n \n )}\n \n \n \n
    \n );\n\n const getCustomLoadingText = isFunction(props.loading) ? props.loading : context.slots.loading;\n const loadingContent = props.loading !== undefined && (\n tableRef.value : undefined}\n showOverlay\n size=\"small\"\n {...props.loadingProps}\n >\n );\n\n const topContent = renderTNode('topContent');\n const bottomContent = renderTNode('bottomContent');\n const pagination = (\n \n {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 {showRightDivider.value && (\n \n )}\n\n {/* 吸底的滚动条 */}\n {props.horizontalScrollAffixedBottom && renderAffixedHorizontalScrollbar()}\n\n {/* 吸底的分页器 */}\n {props.paginationAffixedBottom ? (\n \n {pagination}\n \n ) : (\n pagination\n )}\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 '../types';\nimport { on, off } from '@tdesign/shared-utils';\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 '@tdesign/shared-hooks';\n\nexport type ColumnCheckboxGroupProps = Pick & {\n checkboxProps: CheckboxGroupProps;\n label?: string;\n uniqueKey?: string;\n};\n\nexport default defineComponent({\n name: 'ColumnCheckboxGroup',\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';\nimport { isFunction } 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, useTNodeJSX, useGlobalIcon, useDefaultValue } from '@tdesign/shared-hooks';\n\nimport { getCurrentRowByKey } from '../utils';\nimport { DialogInstance } from '../../dialog';\nimport TButton from '../../button';\nimport ColumnCheckboxGroup from '../components/column-checkbox-group';\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 columnCheckboxKeys.value = tDisplayColumns.value;\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 { get, isFunction, intersection } from 'lodash-es';\n\nimport { useDefaultValue } from '@tdesign/shared-hooks';\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, useGlobalIcon, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport type { TNode } from '../../common';\nimport type { TableConfig } from '../../config-provider';\n\ntype SortTypeEnum = 'desc' | 'asc';\ntype SortTypeEnums = Array;\n\nexport default defineComponent({\n name: 'TSorterButton',\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 emits: ['sort-icon-click'],\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 const classes = [tableSortClasses.trigger, { [tableSortClasses.doubleIcon]: allowSortTypes.value.length > 1 }];\n const tooltips = {\n asc: globalConfig.value.sortAscendingOperationText,\n desc: globalConfig.value.sortDescendingOperationText,\n };\n const sortButton = allowSortTypes.value.map((direction: SortTypeEnum) => {\n const activeClass = direction === props.sortOrder ? tableSortClasses.iconActive : tableSortClasses.iconDefault;\n const cancelTips = globalConfig.value.sortCancelOperationText;\n const tips = direction === props.sortOrder ? cancelTips : tooltips[direction];\n if (props.hideSortTips ?? globalConfig.value.hideSortTips) return getSortIcon(direction, activeClass);\n return (\n \n {getSortIcon(direction, activeClass)}\n \n );\n });\n return
    {sortButton}
    ;\n };\n },\n});\n","import { SetupContext, computed, toRefs, ref, watch } from 'vue';\nimport { isArray, isFunction } from 'lodash-es';\nimport { SortInfo, TdPrimaryTableProps, PrimaryTableCol, TableRowData } from '../type';\nimport SorterButton from '../components/sorter-button';\nimport { useDefaultValue } from '@tdesign/shared-hooks';\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, isFunction } 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 { useConfig, useGlobalIcon, useTNodeDefault } from '@tdesign/shared-hooks';\nimport { PrimaryTableCol, FilterValue, TdPrimaryTableProps } from '../type';\n\nimport type { AttachNode } from '../../common';\n\nimport type { 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 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 emits: ['inner-filter-change', 'reset', 'confirm'],\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 if (!props.column.filter || (props.column.filter && !Object.keys(props.column.filter).length)) return null;\n const defaultFilterIcon = t(globalConfig.value.filterIcon) || ;\n const filterValue = (props.tFilterValue as TableFilterControllerProps['tFilterValue'])?.[props.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 props.primaryTableElement as HTMLElement : undefined)\n }\n visible={filterPopupVisible.value}\n destroyOnClose\n trigger=\"click\"\n placement=\"bottom-right\"\n showArrow\n overlayClassName={props.tableFilterClasses.popup}\n onVisibleChange={(val: boolean) => onFilterPopupVisibleChange(val)}\n class={[\n props.tableFilterClasses.icon,\n {\n [props.isFocusClass]: isObjectTrue || isValueExist,\n },\n ]}\n content={getContent}\n {...props.popupProps}\n >\n
    \n {renderTNode('filterIcon', {\n defaultNode: defaultFilterIcon,\n params: { col: props.column, colIndex: props.colIndex },\n })}\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 { useConfig, useDefaultValue, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport TableFilterController from '../components/filter-controller';\n\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 '@tdesign/shared-utils';\nimport swapDragArrayElement from '@tdesign/common-js/utils/swapDragArrayElement';\nimport { BaseTableColumns, SimplePageInfo } from '../types';\nimport { getColumnDataByKey, getColumnIndexByKey } from '@tdesign/common-js/table/utils';\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, set, isFunction, cloneDeep, isObject } 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, usePrefixClass } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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, set, cloneDeep, isFunction } from 'lodash-es';\n\nimport { PrimaryTableProps } from '../types';\nimport { getEditableKeysMap } from '@tdesign/common-js/table/utils';\nimport { validate } from '../../form/utils/form-model';\n\nimport {\n PrimaryTableRowEditContext,\n TableRowData,\n TableErrorListMap,\n PrimaryTableInstanceFunctions,\n ErrorListObjectType,\n PrimaryTableCellParams,\n} from '../type';\nimport { getCellKey, getRowKeyFromCell } from './useRowspanAndColspan';\nimport { OnEditableChangeContext } from '../components/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, omit } from 'lodash-es';\nimport baseTableProps from './base-table-props';\nimport primaryTableProps from './primary-table-props';\nimport BaseTable from './base-table';\nimport { useConfig, useTNodeJSX, ScrollToElementParams } from '@tdesign/shared-hooks';\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 './components/editable-cell';\nimport { PageInfo } from '../pagination';\nimport useClassName from './hooks/useClassName';\n\nimport useEditableRow from './hooks/useEditableRow';\nimport useStyle from './hooks/useStyle';\n\nimport type { BaseTableProps } from './types';\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 props: {\n ...baseTableProps,\n ...primaryTableProps,\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 { useConfig, useTNodeJSX, useGlobalIcon, useDefaultValue } from '@tdesign/shared-hooks';\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 { useConfig, useTNodeJSX } from '@tdesign/shared-hooks';\nimport { TdPrimaryTableProps } from '../type';\nimport Loading from '../../loading';\nimport useClassName from './useClassName';\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 '@tdesign/shared-hooks';\nimport TableTreeStore, { diffExpandedTreeNode, getUniqueRowValue } from '@tdesign/common-js/table/tree-store';\nimport { TableTreeExpandType } from '../types';\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 '../components/tr';\nimport { useConfig, useGlobalIcon, useTNodeDefault } from '@tdesign/shared-hooks';\n\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, intersection } from 'lodash-es';\n\nimport { TdEnhancedTableProps, TdPrimaryTableProps, TableRowData, PrimaryTableCol } from '../type';\nimport { KeysType, TableTreeDataMap, TreeDataMapType } from '@tdesign/common-js/table/tree-store';\nimport { useDefaultValue } from '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TEnhancedTable',\n props: {\n ...baseTableProps,\n ...primaryTableProps,\n ...enhancedTableProps,\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 '@tdesign/shared-utils';\nimport { InfinityScroll } from '../common';\nimport { BaseTableInstanceFunctions, EnhancedTableInstanceFunctions, PrimaryTableInstanceFunctions } from './type';\n\nimport './style';\n\nexport * from './type';\nexport * from './types';\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 { useContent, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\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, useChildComponentSlots } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\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 { useContent, useTNodeJSX, usePrefixClass, useCollapseAnimation } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 { useContent, usePrefixClass, useVariables } from '@tdesign/shared-hooks';\nimport { useMutationObserver } from './hooks';\n\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 const { fontColor } = useVariables({\n fontColor: '--td-bg-color-secondarycontainer-hover',\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 fontColor: fontColor.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, fontColor.value], 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 fontColor = 'rgba(0,0,0,0.1)'\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 fontColor?:string\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 fontSize = 16,\n fontFamily = undefined,\n fontWeight = 'normal',\n } = item;\n const fillStyle = item?.fontColor || fontColor;\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 = fillStyle;\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 '@tdesign/shared-utils';\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, useConfig, useTNodeJSX } from '@tdesign/shared-hooks';\nimport props from './props';\n\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 '@tdesign/shared-utils';\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, useConfig } from '@tdesign/shared-hooks';\nimport props from '../paragraph-props';\nimport TTooltip from '../../tooltip/index';\n\nimport type { TypographyEllipsis } from '../type';\n\nexport default defineComponent({\n name: 'TEllipsis',\n components: { TTooltip },\n props,\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 { useContent, usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './text-props';\nimport copy from './utils/copy-to-clipboard';\nimport { CopyIcon, CheckIcon } from 'tdesign-icons-vue-next';\nimport Ellipsis from './components/ellipsis';\nimport TTooltip from '../tooltip';\nimport TButton from '../button';\nimport { useConfig } from '../config-provider/hooks/useConfig';\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 '@tdesign/shared-hooks';\n\nimport Text from './text';\n\nexport default defineComponent({\n name: 'TTypography',\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 { useContent, usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './title-props';\nimport Ellipsis from './components/ellipsis';\n\nexport default defineComponent({\n name: 'TTypographyTitle',\n props,\n setup(props, { attrs }) {\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, { ...attrs, class: [COMPONENT_NAME.value, attrs.class] }, ...content)}\n );\n };\n },\n});\n","import { defineComponent, computed, PropType } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './paragraph-props';\nimport Ellipsis from './components/ellipsis';\n\nexport default defineComponent({\n name: 'TTypographyParagraph',\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 '@tdesign/shared-utils';\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 * */\n\nimport { TdQRCodeProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 二维码背景颜色 */\n bgColor: {\n type: String,\n default: '',\n },\n /** 是否有边框 */\n borderless: Boolean,\n /** 二维码颜色 */\n color: {\n type: String,\n default: '',\n },\n /** 二维码中图片的地址 */\n icon: {\n type: String,\n default: '',\n },\n /** 二维码中图片的大小 */\n iconSize: {\n type: [Number, Object] as PropType,\n default: 40 as TdQRCodeProps['iconSize'],\n },\n /** 二维码纠错等级 */\n level: {\n type: String as PropType,\n default: 'M' as TdQRCodeProps['level'],\n validator(val: TdQRCodeProps['level']): boolean {\n if (!val) return true;\n return ['L', 'M', 'Q', 'H'].includes(val);\n },\n },\n /** 二维码大小 */\n size: {\n type: Number,\n default: 160,\n },\n /** 二维码状态 */\n status: {\n type: String as PropType,\n default: 'active' as TdQRCodeProps['status'],\n validator(val: TdQRCodeProps['status']): boolean {\n if (!val) return true;\n return ['active', 'expired', 'loading', 'scanned'].includes(val);\n },\n },\n /** 自定义状态渲染器 */\n statusRender: {\n type: Function as PropType,\n },\n /** 渲染类型 */\n type: {\n type: String as PropType,\n default: 'canvas' as TdQRCodeProps['type'],\n validator(val: TdQRCodeProps['type']): boolean {\n if (!val) return true;\n return ['canvas', 'svg'].includes(val);\n },\n },\n /** 扫描后的文本 */\n value: {\n type: String,\n default: '',\n },\n /** 点击\"点击刷新\"的回调 */\n onRefresh: Function as PropType,\n};\n","/* eslint-disable */\n// Copyright (c) Project Nayuki. (MIT License)\n// https://www.nayuki.io/page/qr-code-generator-library\n\n// Modification with code reorder and prettier\n\n// --------------------------------------------\n\n// Appends the given number of low-order bits of the given value\n// to the given buffer. Requires 0 <= len <= 31 and 0 <= val < 2^len.\nfunction appendBits(val: number, len: number, bb: number[]): void {\n if (len < 0 || len > 31 || val >>> len !== 0) {\n throw new RangeError(\"Value out of range\");\n }\n for (\n let i = len - 1;\n i >= 0;\n i-- // Append bit by bit\n ) {\n bb.push((val >>> i) & 1);\n }\n}\n\n// Returns true iff the i'th bit of x is set to 1.\nfunction getBit(x: number, i: number): boolean {\n return ((x >>> i) & 1) !== 0;\n}\n\n// Throws an exception if the given condition is false.\nfunction assert(cond: boolean): void {\n if (!cond) {\n throw new Error(\"Assertion error\");\n }\n}\n\n/* ---- Public helper enumeration ----*/\n/*\n * Describes how a segment's data bits are numbererpreted. Immutable.\n */\nexport class Mode {\n /* -- Constants --*/\n\n public static readonly NUMERIC = new Mode(0x1, [10, 12, 14]);\n\n public static readonly ALPHANUMERIC = new Mode(0x2, [9, 11, 13]);\n\n public static readonly BYTE = new Mode(0x4, [8, 16, 16]);\n\n public static readonly KANJI = new Mode(0x8, [8, 10, 12]);\n\n public static readonly ECI = new Mode(0x7, [0, 0, 0]);\n\n /* -- Constructor and fields --*/\n\n // The mode indicator bits, which is a unumber4 value (range 0 to 15).\n public modeBits: number;\n\n // Number of character count bits for three different version ranges.\n private numBitsCharCount: [number, number, number];\n\n private constructor(\n modeBits: number,\n numBitsCharCount: [number, number, number]\n ) {\n this.modeBits = modeBits;\n this.numBitsCharCount = numBitsCharCount;\n }\n\n /* -- Method --*/\n\n // (Package-private) Returns the bit width of the character count field for a segment in\n // this mode in a QR Code at the given version number. The result is in the range [0, 16].\n public numCharCountBits(ver: number): number {\n return this.numBitsCharCount[Math.floor((ver + 7) / 17)];\n }\n}\n\n/* ---- Public helper enumeration ----*/\n\n/*\n * The error correction level in a QR Code symbol. Immutable.\n */\nexport class Ecc {\n /* -- Constants --*/\n\n public static readonly LOW = new Ecc(0, 1); // The QR Code can tolerate about 7% erroneous codewords\n\n public static readonly MEDIUM = new Ecc(1, 0); // The QR Code can tolerate about 15% erroneous codewords\n\n public static readonly QUARTILE = new Ecc(2, 3); // The QR Code can tolerate about 25% erroneous codewords\n\n public static readonly HIGH = new Ecc(3, 2); // The QR Code can tolerate about 30% erroneous codewords\n\n /* -- Constructor and fields --*/\n // In the range 0 to 3 (unsigned 2-bit numbereger).\n public ordinal: number;\n\n // (Package-private) In the range 0 to 3 (unsigned 2-bit numbereger).\n public formatBits: number;\n\n private constructor(ordinal: number, formatBits: number) {\n this.ordinal = ordinal;\n this.formatBits = formatBits;\n }\n}\n\n/*\n * A segment of character/binary/control data in a QR Code symbol.\n * Instances of this class are immutable.\n * The mid-level way to create a segment is to take the payload data\n * and call a static factory function such as QrSegment.makeNumeric().\n * The low-level way to create a segment is to custom-make the bit buffer\n * and call the QrSegment() constructor with appropriate values.\n * This segment class imposes no length restrictions, but QR Codes have restrictions.\n * Even in the most favorable conditions, a QR Code can only hold 7089 characters of data.\n * Any segment longer than this is meaningless for the purpose of generating QR Codes.\n */\nexport class QrSegment {\n /* -- Static factory functions (mid level) --*/\n\n // Returns a segment representing the given binary data encoded in\n // byte mode. All input byte arrays are acceptable. Any text string\n // can be converted to UTF-8 bytes and encoded as a byte mode segment.\n public static makeBytes(data: Readonly): QrSegment {\n const bb: number[] = [];\n for (const b of data) {\n appendBits(b, 8, bb);\n }\n return new QrSegment(Mode.BYTE, data.length, bb);\n }\n\n // Returns a segment representing the given string of decimal digits encoded in numeric mode.\n public static makeNumeric(digits: string): QrSegment {\n if (!QrSegment.isNumeric(digits)) {\n throw new RangeError(\"String contains non-numeric characters\");\n }\n const bb: number[] = [];\n for (let i = 0; i < digits.length; ) {\n // Consume up to 3 digits per iteration\n const n: number = Math.min(digits.length - i, 3);\n appendBits(parseInt(digits.substring(i, i + n), 10), n * 3 + 1, bb);\n i += n;\n }\n return new QrSegment(Mode.NUMERIC, digits.length, bb);\n }\n\n // Returns a segment representing the given text string encoded in alphanumeric mode.\n // The characters allowed are: 0 to 9, A to Z (uppercase only), space,\n // dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n public static makeAlphanumeric(text: string): QrSegment {\n if (!QrSegment.isAlphanumeric(text)) {\n throw new RangeError(\n \"String contains unencodable characters in alphanumeric mode\"\n );\n }\n const bb: number[] = [];\n let i: number;\n for (i = 0; i + 2 <= text.length; i += 2) {\n // Process groups of 2\n let temp: number =\n QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45;\n temp += QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1));\n appendBits(temp, 11, bb);\n }\n if (i < text.length) {\n // 1 character remaining\n appendBits(QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)), 6, bb);\n }\n return new QrSegment(Mode.ALPHANUMERIC, text.length, bb);\n }\n\n // Returns a new mutable list of zero or more segments to represent the given Unicode text string.\n // The result may use various segment modes and switch modes to optimize the length of the bit stream.\n public static makeSegments(text: string): QrSegment[] {\n // Select the most efficient segment encoding automatically\n if (text === \"\") {\n return [];\n }\n if (QrSegment.isNumeric(text)) {\n return [QrSegment.makeNumeric(text)];\n }\n if (QrSegment.isAlphanumeric(text)) {\n return [QrSegment.makeAlphanumeric(text)];\n }\n return [QrSegment.makeBytes(QrSegment.toUtf8ByteArray(text))];\n }\n\n // Returns a segment representing an Extended Channel Interpretation\n // (ECI) designator with the given assignment value.\n public static makeEci(assignVal: number): QrSegment {\n const bb: number[] = [];\n if (assignVal < 0) {\n throw new RangeError(\"ECI assignment value out of range\");\n } else if (assignVal < 1 << 7) {\n appendBits(assignVal, 8, bb);\n } else if (assignVal < 1 << 14) {\n appendBits(0b10, 2, bb);\n appendBits(assignVal, 14, bb);\n } else if (assignVal < 1000000) {\n appendBits(0b110, 3, bb);\n appendBits(assignVal, 21, bb);\n } else {\n throw new RangeError(\"ECI assignment value out of range\");\n }\n return new QrSegment(Mode.ECI, 0, bb);\n }\n\n // Tests whether the given string can be encoded as a segment in numeric mode.\n // A string is encodable iff each character is in the range 0 to 9.\n public static isNumeric(text: string): boolean {\n return QrSegment.NUMERIC_REGEX.test(text);\n }\n\n // Tests whether the given string can be encoded as a segment in alphanumeric mode.\n // A string is encodable iff each character is in the following set: 0 to 9, A to Z\n // (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n public static isAlphanumeric(text: string): boolean {\n return QrSegment.ALPHANUMERIC_REGEX.test(text);\n }\n\n /* -- Constructor (low level) and fields --*/\n // The mode indicator of this segment.\n public mode: Mode;\n\n // The length of this segment's unencoded data. Measured in characters for\n // numeric/alphanumeric/kanji mode, bytes for byte mode, and 0 for ECI mode.\n // Always zero or positive. Not the same as the data's bit length.\n public numChars: number;\n\n // The data bits of this segment. Accessed through getData().\n private bitData: number[];\n\n // Creates a new QR Code segment with the given attributes and data.\n // The character count (numChars) must agree with the mode and the bit buffer length,\n // but the constranumber isn't checked. The given bit buffer is cloned and stored.\n public constructor(mode: Mode, numChars: number, bitData: number[]) {\n this.mode = mode;\n this.numChars = numChars;\n this.bitData = bitData;\n if (numChars < 0) {\n throw new RangeError(\"Invalid argument\");\n }\n this.bitData = bitData.slice(); // Make defensive copy\n }\n\n /* -- Methods --*/\n\n // Returns a new copy of the data bits of this segment.\n public getData(): number[] {\n return this.bitData.slice(); // Make defensive copy\n }\n\n // (Package-private) Calculates and returns the number of bits needed to encode the given segments at\n // the given version. The result is infinity if a segment has too many characters to fit its length field.\n public static getTotalBits(\n segs: Readonly,\n version: number\n ): number {\n let result: number = 0;\n for (const seg of segs) {\n const ccbits: number = seg.mode.numCharCountBits(version);\n if (seg.numChars >= 1 << ccbits) {\n return Infinity; // The segment's length doesn't fit the field's bit width\n }\n result += 4 + ccbits + seg.bitData.length;\n }\n return result;\n }\n\n // Returns a new array of bytes representing the given string encoded in UTF-8.\n private static toUtf8ByteArray(input: string): number[] {\n const str = encodeURI(input);\n const result: number[] = [];\n for (let i = 0; i < str.length; i++) {\n if (str.charAt(i) !== \"%\") {\n result.push(str.charCodeAt(i));\n } else {\n result.push(parseInt(str.substring(i + 1, i + 3), 16));\n i += 2;\n }\n }\n return result;\n }\n\n /* -- Constants --*/\n\n // Describes precisely all strings that are encodable in numeric mode.\n private static readonly NUMERIC_REGEX: RegExp = /^[0-9]*$/;\n\n // Describes precisely all strings that are encodable in alphanumeric mode.\n private static readonly ALPHANUMERIC_REGEX: RegExp = /^[A-Z0-9 $%*+.\\/:-]*$/;\n\n // The set of all legal characters in alphanumeric mode,\n // where each character value maps to the index in the string.\n private static readonly ALPHANUMERIC_CHARSET: string =\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\";\n}\n\n/*\n * A QR Code symbol, which is a type of two-dimension barcode.\n * Invented by Denso Wave and described in the ISO/IEC 18004 standard.\n * Instances of this class represent an immutable square grid of dark and light cells.\n * The class provides static factory functions to create a QR Code from text or binary data.\n * The class covers the QR Code Model 2 specification, supporting all versions (sizes)\n * from 1 to 40, all 4 error correction levels, and 4 character encoding modes.\n *\n * Ways to create a QR Code object:\n * - High level: Take the payload data and call QrCode.encodeText() or QrCode.encodeBinary().\n * - Mid level: Custom-make the list of segments and call QrCode.encodeSegments().\n * - Low level: Custom-make the array of data codeword bytes (including\n * segment headers and final padding, excluding error correction codewords),\n * supply the appropriate version number, and call the QrCode() constructor.\n * (Note that all ways require supplying the desired error correction level.)\n */\nexport class QrCode {\n /* -- Static factory functions (high level) --*/\n\n // Returns a QR Code representing the given Unicode text string at the given error correction level.\n // As a conservative upper bound, this function is guaranteed to succeed for strings that have 738 or fewer\n // Unicode code ponumbers (not UTF-16 code units) if the low error correction level is used. The smallest possible\n // QR Code version is automatically chosen for the output. The ECC level of the result may be higher than the\n // ecl argument if it can be done without increasing the version.\n public static encodeText(text: string, ecl: Ecc): QrCode {\n const segs: QrSegment[] = QrSegment.makeSegments(text);\n return QrCode.encodeSegments(segs, ecl);\n }\n\n // Returns a QR Code representing the given binary data at the given error correction level.\n // This function always encodes using the binary segment mode, not any text mode. The maximum number of\n // bytes allowed is 2953. The smallest possible QR Code version is automatically chosen for the output.\n // The ECC level of the result may be higher than the ecl argument if it can be done without increasing the version.\n public static encodeBinary(data: Readonly, ecl: Ecc): QrCode {\n const seg = QrSegment.makeBytes(data);\n return QrCode.encodeSegments([seg], ecl);\n }\n\n /* -- Static factory functions (mid level) --*/\n\n // Returns a QR Code representing the given segments with the given encoding parameters.\n // The smallest possible QR Code version within the given range is automatically\n // chosen for the output. Iff boostEcl is true, then the ECC level of the result\n // may be higher than the ecl argument if it can be done without increasing the\n // version. The mask number is either between 0 to 7 (inclusive) to force that\n // mask, or -1 to automatically choose an appropriate mask (which may be slow).\n // This function allows the user to create a custom sequence of segments that switches\n // between modes (such as alphanumeric and byte) to encode text in less space.\n // This is a mid-level API; the high-level API is encodeText() and encodeBinary().\n public static encodeSegments(\n segs: Readonly,\n oriEcl: Ecc,\n minVersion: number = 1,\n maxVersion: number = 40,\n mask: number = -1,\n boostEcl: boolean = true\n ): QrCode {\n if (\n !(\n QrCode.MIN_VERSION <= minVersion &&\n minVersion <= maxVersion &&\n maxVersion <= QrCode.MAX_VERSION\n ) ||\n mask < -1 ||\n mask > 7\n ) {\n throw new RangeError(\"Invalid value\");\n }\n\n // Find the minimal version number to use\n let version: number;\n let dataUsedBits: number;\n for (version = minVersion; ; version++) {\n const dataCapacityBits = QrCode.getNumDataCodewords(version, oriEcl) * 8; // Number of data bits available\n const usedBits: number = QrSegment.getTotalBits(segs, version);\n if (usedBits <= dataCapacityBits) {\n dataUsedBits = usedBits;\n break; // This version number is found to be suitable\n }\n if (version >= maxVersion) {\n // All versions in the range could not fit the given data\n throw new RangeError(\"Data too long\");\n }\n }\n let ecl: Ecc = oriEcl;\n // Increase the error correction level while the data still fits in the current version number\n for (const newEcl of [Ecc.MEDIUM, Ecc.QUARTILE, Ecc.HIGH]) {\n // From low to high\n if (\n boostEcl &&\n dataUsedBits <= QrCode.getNumDataCodewords(version, newEcl) * 8\n ) {\n ecl = newEcl;\n }\n }\n\n // Concatenate all segments to create the data bit string\n const bb: number[] = [];\n for (const seg of segs) {\n appendBits(seg.mode.modeBits, 4, bb);\n appendBits(seg.numChars, seg.mode.numCharCountBits(version), bb);\n for (const b of seg.getData()) {\n bb.push(b);\n }\n }\n assert(bb.length === dataUsedBits);\n\n // Add terminator and pad up to a byte if applicable\n const dataCapacityBits = QrCode.getNumDataCodewords(version, ecl) * 8;\n assert(bb.length <= dataCapacityBits);\n appendBits(0, Math.min(4, dataCapacityBits - bb.length), bb);\n appendBits(0, (8 - (bb.length % 8)) % 8, bb);\n assert(bb.length % 8 === 0);\n\n // Pad with alternating bytes until data capacity is reached\n for (\n let padByte = 0xec;\n bb.length < dataCapacityBits;\n padByte ^= 0xec ^ 0x11\n ) {\n appendBits(padByte, 8, bb);\n }\n\n // Pack bits numbero bytes in big endian\n const dataCodewords: number[] = [];\n while (dataCodewords.length * 8 < bb.length) {\n dataCodewords.push(0);\n }\n bb.forEach((b, i) => {\n dataCodewords[i >>> 3] |= b << (7 - (i & 7));\n });\n\n // Create the QR Code object\n return new QrCode(version, ecl, dataCodewords, mask);\n }\n\n /* -- Fields --*/\n\n // The width and height of this QR Code, measured in modules, between\n // 21 and 177 (inclusive). This is equal to version * 4 + 17.\n public readonly size: number;\n\n // The index of the mask pattern used in this QR Code, which is between 0 and 7 (inclusive).\n // Even if a QR Code is created with automatic masking requested (mask = -1),\n // the resulting object still has a mask value between 0 and 7.\n public readonly mask: number;\n\n // The modules of this QR Code (false = light, true = dark).\n // Immutable after constructor finishes. Accessed through getModule().\n private readonly modules: boolean[][] = [];\n\n // Indicates function modules that are not subjected to masking. Discarded when constructor finishes.\n private readonly isFunction: boolean[][] = [];\n\n /* -- Constructor (low level) and fields --*/\n // The version number of this QR Code, which is between 1 and 40 (inclusive).\n // This determines the size of this barcode.\n public version: number;\n\n // The error correction level used in this QR Code.\n public errorCorrectionLevel: Ecc;\n\n // Creates a new QR Code with the given version number,\n // error correction level, data codeword bytes, and mask number.\n // This is a low-level API that most users should not use directly.\n // A mid-level API is the encodeSegments() function.\n public constructor(\n // The version number of this QR Code, which is between 1 and 40 (inclusive).\n // This determines the size of this barcode.\n version: number,\n\n // The error correction level used in this QR Code.\n errorCorrectionLevel: Ecc,\n\n dataCodewords: Readonly,\n\n oriMsk: number\n ) {\n let msk = oriMsk;\n this.version = version;\n this.errorCorrectionLevel = errorCorrectionLevel;\n // Check scalar arguments\n if (version < QrCode.MIN_VERSION || version > QrCode.MAX_VERSION) {\n throw new RangeError(\"Version value out of range\");\n }\n if (msk < -1 || msk > 7) {\n throw new RangeError(\"Mask value out of range\");\n }\n this.size = version * 4 + 17;\n\n // Initialize both grids to be size*size arrays of Boolean false\n const row: boolean[] = [];\n for (let i = 0; i < this.size; i++) {\n row.push(false);\n }\n for (let i = 0; i < this.size; i++) {\n this.modules.push(row.slice()); // Initially all light\n this.isFunction.push(row.slice());\n }\n\n // Compute ECC, draw modules\n this.drawFunctionPatterns();\n const allCodewords: number[] = this.addEccAndInterleave(dataCodewords);\n this.drawCodewords(allCodewords);\n\n // Do masking\n if (msk === -1) {\n // Automatically choose best mask\n let minPenalty: number = 1000000000;\n for (let i = 0; i < 8; i++) {\n this.applyMask(i);\n this.drawFormatBits(i);\n const penalty: number = this.getPenaltyScore();\n if (penalty < minPenalty) {\n msk = i;\n minPenalty = penalty;\n }\n this.applyMask(i); // Undoes the mask due to XOR\n }\n }\n assert(msk >= 0 && msk <= 7);\n this.mask = msk;\n this.applyMask(msk); // Apply the final choice of mask\n this.drawFormatBits(msk); // Overwrite old format bits\n\n this.isFunction = [];\n }\n\n /* -- Accessor methods --*/\n\n // Returns the color of the module (pixel) at the given coordinates, which is false\n // for light or true for dark. The top left corner has the coordinates (x=0, y=0).\n // If the given coordinates are out of bounds, then false (light) is returned.\n public getModule(x: number, y: number): boolean {\n return (\n x >= 0 && x < this.size && y >= 0 && y < this.size && this.modules[y][x]\n );\n }\n\n // Modified to expose modules for easy access\n public getModules() {\n return this.modules;\n }\n\n /* -- Private helper methods for constructor: Drawing function modules --*/\n\n // Reads this object's version field, and draws and marks all function modules.\n private drawFunctionPatterns(): void {\n // Draw horizontal and vertical timing patterns\n for (let i = 0; i < this.size; i++) {\n this.setFunctionModule(6, i, i % 2 === 0);\n this.setFunctionModule(i, 6, i % 2 === 0);\n }\n\n // Draw 3 finder patterns (all corners except bottom right; overwrites some timing modules)\n this.drawFinderPattern(3, 3);\n this.drawFinderPattern(this.size - 4, 3);\n this.drawFinderPattern(3, this.size - 4);\n\n // Draw numerous alignment patterns\n const alignPatPos: number[] = this.getAlignmentPatternPositions();\n const numAlign: number = alignPatPos.length;\n for (let i = 0; i < numAlign; i++) {\n for (let j = 0; j < numAlign; j++) {\n // Don't draw on the three finder corners\n if (\n !(\n (i === 0 && j === 0) ||\n (i === 0 && j === numAlign - 1) ||\n (i === numAlign - 1 && j === 0)\n )\n ) {\n this.drawAlignmentPattern(alignPatPos[i], alignPatPos[j]);\n }\n }\n }\n\n // Draw configuration data\n this.drawFormatBits(0); // Dummy mask value; overwritten later in the constructor\n this.drawVersion();\n }\n\n // Draws two copies of the format bits (with its own error correction code)\n // based on the given mask and this object's error correction level field.\n private drawFormatBits(mask: number): void {\n // Calculate error correction code and pack bits\n const data: number = (this.errorCorrectionLevel.formatBits << 3) | mask; // errCorrLvl is unumber2, mask is unumber3\n let rem: number = data;\n for (let i = 0; i < 10; i++) {\n rem = (rem << 1) ^ ((rem >>> 9) * 0x537);\n }\n const bits = ((data << 10) | rem) ^ 0x5412; // unumber15\n assert(bits >>> 15 === 0);\n\n // Draw first copy\n for (let i = 0; i <= 5; i++) {\n this.setFunctionModule(8, i, getBit(bits, i));\n }\n this.setFunctionModule(8, 7, getBit(bits, 6));\n this.setFunctionModule(8, 8, getBit(bits, 7));\n this.setFunctionModule(7, 8, getBit(bits, 8));\n for (let i = 9; i < 15; i++) {\n this.setFunctionModule(14 - i, 8, getBit(bits, i));\n }\n // Draw second copy\n for (let i = 0; i < 8; i++) {\n this.setFunctionModule(this.size - 1 - i, 8, getBit(bits, i));\n }\n for (let i = 8; i < 15; i++) {\n this.setFunctionModule(8, this.size - 15 + i, getBit(bits, i));\n }\n this.setFunctionModule(8, this.size - 8, true); // Always dark\n }\n\n // Draws two copies of the version bits (with its own error correction code),\n // based on this object's version field, iff 7 <= version <= 40.\n private drawVersion(): void {\n if (this.version < 7) {\n return;\n }\n\n // Calculate error correction code and pack bits\n let rem: number = this.version; // version is unumber6, in the range [7, 40]\n for (let i = 0; i < 12; i++) {\n rem = (rem << 1) ^ ((rem >>> 11) * 0x1f25);\n }\n const bits: number = (this.version << 12) | rem; // unumber18\n assert(bits >>> 18 === 0);\n\n // Draw two copies\n for (let i = 0; i < 18; i++) {\n const color: boolean = getBit(bits, i);\n const a: number = this.size - 11 + (i % 3);\n const b: number = Math.floor(i / 3);\n this.setFunctionModule(a, b, color);\n this.setFunctionModule(b, a, color);\n }\n }\n\n // Draws a 9*9 finder pattern including the border separator,\n // with the center module at (x, y). Modules can be out of bounds.\n private drawFinderPattern(x: number, y: number): void {\n for (let dy = -4; dy <= 4; dy++) {\n for (let dx = -4; dx <= 4; dx++) {\n const dist: number = Math.max(Math.abs(dx), Math.abs(dy)); // Chebyshev/infinity norm\n const xx: number = x + dx;\n const yy: number = y + dy;\n if (xx >= 0 && xx < this.size && yy >= 0 && yy < this.size) {\n this.setFunctionModule(xx, yy, dist !== 2 && dist !== 4);\n }\n }\n }\n }\n\n // Draws a 5*5 alignment pattern, with the center module\n // at (x, y). All modules must be in bounds.\n private drawAlignmentPattern(x: number, y: number): void {\n for (let dy = -2; dy <= 2; dy++) {\n for (let dx = -2; dx <= 2; dx++) {\n this.setFunctionModule(\n x + dx,\n y + dy,\n Math.max(Math.abs(dx), Math.abs(dy)) !== 1\n );\n }\n }\n }\n\n // Sets the color of a module and marks it as a function module.\n // Only used by the constructor. Coordinates must be in bounds.\n private setFunctionModule(x: number, y: number, isDark: boolean): void {\n this.modules[y][x] = isDark;\n this.isFunction[y][x] = true;\n }\n\n /* -- Private helper methods for constructor: Codewords and masking --*/\n\n // Returns a new byte string representing the given data with the appropriate error correction\n // codewords appended to it, based on this object's version and error correction level.\n private addEccAndInterleave(data: Readonly): number[] {\n const ver: number = this.version;\n const ecl: Ecc = this.errorCorrectionLevel;\n if (data.length !== QrCode.getNumDataCodewords(ver, ecl)) {\n throw new RangeError(\"Invalid argument\");\n }\n // Calculate parameter numbers\n const numBlocks = QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n const blockEccLen = QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver];\n const rawCodewords = Math.floor(QrCode.getNumRawDataModules(ver) / 8);\n const numShortBlocks = numBlocks - (rawCodewords % numBlocks);\n const shortBlockLen = Math.floor(rawCodewords / numBlocks);\n\n // Split data numbero blocks and append ECC to each block\n const blocks: number[][] = [];\n const rsDiv = QrCode.reedSolomonComputeDivisor(blockEccLen);\n for (let i = 0, k = 0; i < numBlocks; i++) {\n const dat = data.slice(\n k,\n k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1)\n );\n k += dat.length;\n const ecc: number[] = QrCode.reedSolomonComputeRemainder(dat, rsDiv);\n if (i < numShortBlocks) {\n dat.push(0);\n }\n blocks.push(dat.concat(ecc));\n }\n\n // Interleave (not concatenate) the bytes from every block numbero a single sequence\n const result: number[] = [];\n for (let i = 0; i < blocks[0].length; i++) {\n blocks.forEach((block, j) => {\n // Skip the padding byte in short blocks\n if (i !== shortBlockLen - blockEccLen || j >= numShortBlocks) {\n result.push(block[i]);\n }\n });\n }\n assert(result.length === rawCodewords);\n return result;\n }\n\n // Draws the given sequence of 8-bit codewords (data and error correction) onto the entire\n // data area of this QR Code. Function modules need to be marked off before this is called.\n private drawCodewords(data: Readonly): void {\n if (\n data.length !== Math.floor(QrCode.getNumRawDataModules(this.version) / 8)\n ) {\n throw new RangeError(\"Invalid argument\");\n }\n let i: number = 0; // Bit index numbero the data\n // Do the funny zigzag scan\n for (let right = this.size - 1; right >= 1; right -= 2) {\n // Index of right column in each column pair\n if (right === 6) {\n right = 5;\n }\n for (let vert = 0; vert < this.size; vert++) {\n // Vertical counter\n for (let j = 0; j < 2; j++) {\n const x: number = right - j; // Actual x coordinate\n const upward: boolean = ((right + 1) & 2) === 0;\n const y: number = upward ? this.size - 1 - vert : vert; // Actual y coordinate\n if (!this.isFunction[y][x] && i < data.length * 8) {\n this.modules[y][x] = getBit(data[i >>> 3], 7 - (i & 7));\n i++;\n }\n // If this QR Code has any remainder bits (0 to 7), they were assigned as\n // 0/false/light by the constructor and are left unchanged by this method\n }\n }\n }\n assert(i === data.length * 8);\n }\n\n // XORs the codeword modules in this QR Code with the given mask pattern.\n // The function modules must be marked and the codeword bits must be drawn\n // before masking. Due to the arithmetic of XOR, calling applyMask() with\n // the same mask value a second time will undo the mask. A final well-formed\n // QR Code needs exactly one (not zero, two, etc.) mask applied.\n private applyMask(mask: number): void {\n if (mask < 0 || mask > 7) {\n throw new RangeError(\"Mask value out of range\");\n }\n for (let y = 0; y < this.size; y++) {\n for (let x = 0; x < this.size; x++) {\n let invert: boolean;\n switch (mask) {\n case 0:\n invert = (x + y) % 2 === 0;\n break;\n case 1:\n invert = y % 2 === 0;\n break;\n case 2:\n invert = x % 3 === 0;\n break;\n case 3:\n invert = (x + y) % 3 === 0;\n break;\n case 4:\n invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 === 0;\n break;\n case 5:\n invert = ((x * y) % 2) + ((x * y) % 3) === 0;\n break;\n case 6:\n invert = (((x * y) % 2) + ((x * y) % 3)) % 2 === 0;\n break;\n case 7:\n invert = (((x + y) % 2) + ((x * y) % 3)) % 2 === 0;\n break;\n default:\n throw new Error(\"Unreachable\");\n }\n if (!this.isFunction[y][x] && invert) {\n this.modules[y][x] = !this.modules[y][x];\n }\n }\n }\n }\n\n // Calculates and returns the penalty score based on state of this QR Code's current modules.\n // This is used by the automatic mask choice algorithm to find the mask pattern that yields the lowest score.\n private getPenaltyScore(): number {\n let result: number = 0;\n\n // Adjacent modules in row having same color, and finder-like patterns\n for (let y = 0; y < this.size; y++) {\n let runColor = false;\n let runX = 0;\n const runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let x = 0; x < this.size; x++) {\n if (this.modules[y][x] === runColor) {\n runX++;\n if (runX === 5) {\n result += QrCode.PENALTY_N1;\n } else if (runX > 5) {\n result++;\n }\n } else {\n this.finderPenaltyAddHistory(runX, runHistory);\n if (!runColor) {\n result +=\n this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3;\n }\n runColor = this.modules[y][x];\n runX = 1;\n }\n }\n result +=\n this.finderPenaltyTerminateAndCount(runColor, runX, runHistory) *\n QrCode.PENALTY_N3;\n }\n // Adjacent modules in column having same color, and finder-like patterns\n for (let x = 0; x < this.size; x++) {\n let runColor = false;\n let runY = 0;\n const runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let y = 0; y < this.size; y++) {\n if (this.modules[y][x] === runColor) {\n runY++;\n if (runY === 5) {\n result += QrCode.PENALTY_N1;\n } else if (runY > 5) {\n result++;\n }\n } else {\n this.finderPenaltyAddHistory(runY, runHistory);\n if (!runColor) {\n result +=\n this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3;\n }\n runColor = this.modules[y][x];\n runY = 1;\n }\n }\n result +=\n this.finderPenaltyTerminateAndCount(runColor, runY, runHistory) *\n QrCode.PENALTY_N3;\n }\n\n // 2*2 blocks of modules having same color\n for (let y = 0; y < this.size - 1; y++) {\n for (let x = 0; x < this.size - 1; x++) {\n const color: boolean = this.modules[y][x];\n if (\n color === this.modules[y][x + 1] &&\n color === this.modules[y + 1][x] &&\n color === this.modules[y + 1][x + 1]\n ) {\n result += QrCode.PENALTY_N2;\n }\n }\n }\n\n // Balance of dark and light modules\n let dark: number = 0;\n for (const row of this.modules) {\n dark = row.reduce((sum, color) => sum + (color ? 1 : 0), dark);\n }\n const total: number = this.size * this.size; // Note that size is odd, so dark/total !== 1/2\n // Compute the smallest numbereger k >= 0 such that (45-5k)% <= dark/total <= (55+5k)%\n const k: number = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1;\n assert(k >= 0 && k <= 9);\n result += k * QrCode.PENALTY_N4;\n assert(result >= 0 && result <= 2568888); // Non-tight upper bound based on default values of PENALTY_N1, ..., N4\n return result;\n }\n\n /* -- Private helper functions --*/\n\n // Returns an ascending list of positions of alignment patterns for this version number.\n // Each position is in the range [0,177), and are used on both the x and y axes.\n // This could be implemented as lookup table of 40 variable-length lists of numberegers.\n private getAlignmentPatternPositions(): number[] {\n if (this.version === 1) {\n return [];\n }\n const numAlign = Math.floor(this.version / 7) + 2;\n const step =\n this.version === 32\n ? 26\n : Math.ceil((this.version * 4 + 4) / (numAlign * 2 - 2)) * 2;\n const result: number[] = [6];\n for (let pos = this.size - 7; result.length < numAlign; pos -= step) {\n result.splice(1, 0, pos);\n }\n return result;\n }\n\n // Returns the number of data bits that can be stored in a QR Code of the given version number, after\n // all function modules are excluded. This includes remainder bits, so it might not be a multiple of 8.\n // The result is in the range [208, 29648]. This could be implemented as a 40-entry lookup table.\n private static getNumRawDataModules(ver: number): number {\n if (ver < QrCode.MIN_VERSION || ver > QrCode.MAX_VERSION) {\n throw new RangeError(\"Version number out of range\");\n }\n let result: number = (16 * ver + 128) * ver + 64;\n if (ver >= 2) {\n const numAlign: number = Math.floor(ver / 7) + 2;\n result -= (25 * numAlign - 10) * numAlign - 55;\n if (ver >= 7) {\n result -= 36;\n }\n }\n assert(result >= 208 && result <= 29648);\n return result;\n }\n\n // Returns the number of 8-bit data (i.e. not error correction) codewords contained in any\n // QR Code of the given version number and error correction level, with remainder bits discarded.\n // This stateless pure function could be implemented as a (40*4)-cell lookup table.\n private static getNumDataCodewords(ver: number, ecl: Ecc): number {\n return (\n Math.floor(QrCode.getNumRawDataModules(ver) / 8) -\n QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver] *\n QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver]\n );\n }\n\n // Returns a Reed-Solomon ECC generator polynomial for the given degree. This could be\n // implemented as a lookup table over all possible parameter values, instead of as an algorithm.\n private static reedSolomonComputeDivisor(degree: number): number[] {\n if (degree < 1 || degree > 255) {\n throw new RangeError(\"Degree out of range\");\n }\n // Polynomial coefficients are stored from highest to lowest power, excluding the leading term which is always 1.\n // For example the polynomial x^3 + 255x^2 + 8x + 93 is stored as the unumber8 array [255, 8, 93].\n const result: number[] = [];\n for (let i = 0; i < degree - 1; i++) {\n result.push(0);\n }\n result.push(1); // Start off with the monomial x^0\n\n // Compute the product polynomial (x - r^0) * (x - r^1) * (x - r^2) * ... * (x - r^{degree-1}),\n // and drop the highest monomial term which is always 1x^degree.\n // Note that r = 0x02, which is a generator element of this field GF(2^8/0x11D).\n let root = 1;\n for (let i = 0; i < degree; i++) {\n // Multiply the current product by (x - r^i)\n for (let j = 0; j < result.length; j++) {\n result[j] = QrCode.reedSolomonMultiply(result[j], root);\n if (j + 1 < result.length) {\n result[j] ^= result[j + 1];\n }\n }\n root = QrCode.reedSolomonMultiply(root, 0x02);\n }\n return result;\n }\n\n // Returns the Reed-Solomon error correction codeword for the given data and divisor polynomials.\n private static reedSolomonComputeRemainder(\n data: Readonly,\n divisor: Readonly\n ) {\n const result = divisor.map(() => 0);\n for (const b of data) {\n // Polynomial division\n const factor = b ^ result.shift();\n result.push(0);\n divisor.forEach((coef, i) => {\n result[i] ^= QrCode.reedSolomonMultiply(coef, factor);\n });\n }\n return result;\n }\n\n // Returns the product of the two given field elements modulo GF(2^8/0x11D). The arguments and result\n // are unsigned 8-bit numberegers. This could be implemented as a lookup table of 256*256 entries of unumber8.\n private static reedSolomonMultiply(x: number, y: number): number {\n if (x >>> 8 !== 0 || y >>> 8 !== 0) {\n throw new RangeError(\"Byte out of range\");\n }\n // Russian peasant multiplication\n let z: number = 0;\n for (let i = 7; i >= 0; i--) {\n z = (z << 1) ^ ((z >>> 7) * 0x11d);\n z ^= ((y >>> i) & 1) * x;\n }\n assert(z >>> 8 === 0);\n return z as number;\n }\n\n // Can only be called immediately after a light run is added, and\n // returns either 0, 1, or 2. A helper function for getPenaltyScore().\n private finderPenaltyCountPatterns(runHistory: Readonly): number {\n const n: number = runHistory[1];\n assert(n <= this.size * 3);\n const core: boolean =\n n > 0 &&\n runHistory[2] === n &&\n runHistory[3] === n * 3 &&\n runHistory[4] === n &&\n runHistory[5] === n;\n return (\n (core && runHistory[0] >= n * 4 && runHistory[6] >= n ? 1 : 0) +\n (core && runHistory[6] >= n * 4 && runHistory[0] >= n ? 1 : 0)\n );\n }\n\n // Must be called at the end of a line (row or column) of modules. A helper function for getPenaltyScore().\n private finderPenaltyTerminateAndCount(\n currentRunColor: boolean,\n oriCurrentRunLength: number,\n runHistory: number[]\n ): number {\n let currentRunLength = oriCurrentRunLength;\n if (currentRunColor) {\n // Terminate dark run\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n currentRunLength = 0;\n }\n currentRunLength += this.size; // Add light border to final run\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n return this.finderPenaltyCountPatterns(runHistory);\n }\n\n // Pushes the given value to the front and drops the last value. A helper function for getPenaltyScore().\n private finderPenaltyAddHistory(\n oriCurrentRunLength: number,\n runHistory: number[]\n ) {\n let currentRunLength = oriCurrentRunLength;\n if (runHistory[0] === 0) {\n currentRunLength += this.size; // Add light border to initial run\n }\n runHistory.pop();\n runHistory.unshift(currentRunLength);\n }\n\n /* -- Constants and tables --*/\n\n // The minimum version number supported in the QR Code Model 2 standard.\n public static readonly MIN_VERSION: number = 1;\n\n // The maximum version number supported in the QR Code Model 2 standard.\n public static readonly MAX_VERSION: number = 40;\n\n // For use in getPenaltyScore(), when evaluating which mask is best.\n private static readonly PENALTY_N1: number = 3;\n\n private static readonly PENALTY_N2: number = 3;\n\n private static readonly PENALTY_N3: number = 40;\n\n private static readonly PENALTY_N4: number = 10;\n\n private static readonly ECC_CODEWORDS_PER_BLOCK: number[][] = [\n // Version: (note that index 0 is for padding, and is set to an illegal value)\n // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level\n [\n -1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30,\n 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,\n 30, 30, 30, 30,\n ], // Low\n [\n -1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28,\n 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\n 28, 28, 28, 28, 28,\n ], // Medium\n [\n -1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28,\n 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30,\n 30, 30, 30, 30, 30,\n ], // Quartile\n [\n -1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28,\n 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,\n 30, 30, 30, 30, 30,\n ], // High\n ];\n\n private static readonly NUM_ERROR_CORRECTION_BLOCKS: number[][] = [\n // Version: (note that index 0 is for padding, and is set to an illegal value)\n // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level\n [\n -1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9,\n 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25,\n ], // Low\n [\n -1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17,\n 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47,\n 49,\n ], // Medium\n [\n -1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20,\n 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62,\n 65, 68,\n ], // Quartile\n [\n -1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25,\n 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74,\n 77, 81,\n ], // High\n ];\n}\n","import type {\n CrossOrigin,\n ERROR_LEVEL_MAPPED_TYPE,\n ErrorCorrectionLevel,\n Excavation,\n ImageSettings,\n Modules,\n} from './types';\nimport { Ecc } from './qrcodegen';\n\n// =================== ERROR_LEVEL ==========================\nexport const ERROR_LEVEL_MAP: ERROR_LEVEL_MAPPED_TYPE = {\n L: Ecc.LOW,\n M: Ecc.MEDIUM,\n Q: Ecc.QUARTILE,\n H: Ecc.HIGH,\n} as const;\n\n// =================== DEFAULT_VALUE ==========================\nexport const DEFAULT_SIZE = 160;\nexport const DEFAULT_LEVEL: ErrorCorrectionLevel = 'M';\nexport const DEFAULT_BACKGROUND_COLOR = '#FFFFFF';\nexport const DEFAULT_FRONT_COLOR = '#000000';\nexport const DEFAULT_NEED_MARGIN = false;\nexport const DEFAULT_MINVERSION = 1;\nexport const SPEC_MARGIN_SIZE = 4;\nexport const DEFAULT_MARGIN_SIZE = 0;\nexport const DEFAULT_IMG_SCALE = 0.1;\n\n// =================== UTILS ==========================\n/**\n * Generate a path string from modules\n * @param modules\n * @param margin\n * @returns\n */\nexport const generatePath = (modules: Modules, margin: number = 0) => {\n const ops: string[] = [];\n modules.forEach((row, y) => {\n let start: number | null = null;\n row.forEach((cell, x) => {\n if (!cell && start !== null) {\n ops.push(\n `M${start + margin} ${y + margin}h${x - start}v1H${start + margin}z`\n );\n start = null;\n return;\n }\n\n if (x === row.length - 1) {\n if (!cell) {\n return;\n }\n if (start === null) {\n ops.push(`M${x + margin},${y + margin} h1v1H${x + margin}z`);\n } else {\n ops.push(\n `M${start + margin},${y + margin} h${x + 1 - start}v1H${\n start + margin\n }z`\n );\n }\n return;\n }\n\n if (cell && start === null) {\n start = x;\n }\n });\n });\n return ops.join('');\n};\n\n/**\n * Excavate modules\n * @param modules\n * @param excavation\n * @returns\n */\nexport const excavateModules = (modules: Modules, excavation: Excavation) => modules.slice().map((row, y) => {\n if (y < excavation.y || y >= excavation.y + excavation.h) {\n return row;\n }\n return row.map((cell, x) => {\n if (x < excavation.x || x >= excavation.x + excavation.w) {\n return cell;\n }\n return false;\n });\n});\n\n/**\n * Get image settings\n * @param cells The modules of the QR code\n * @param size The size of the QR code\n * @param margin\n * @param imageSettings\n * @returns\n */\nexport const getImageSettings = (\n cells: Modules,\n size: number,\n margin: number,\n imageSettings?: ImageSettings\n): null | {\n x: number;\n y: number;\n h: number;\n w: number;\n excavation: Excavation | null;\n opacity: number;\n crossOrigin: CrossOrigin;\n} => {\n if (imageSettings == null) {\n return null;\n }\n const numCells = cells.length + margin * 2;\n const defaultSize = Math.floor(size * DEFAULT_IMG_SCALE);\n const scale = numCells / size;\n const w = (imageSettings.width || defaultSize) * scale;\n const h = (imageSettings.height || defaultSize) * scale;\n const x = imageSettings.x == null\n ? cells.length / 2 - w / 2\n : imageSettings.x * scale;\n const y = imageSettings.y == null\n ? cells.length / 2 - h / 2\n : imageSettings.y * scale;\n const opacity = imageSettings.opacity == null ? 1 : imageSettings.opacity;\n\n let excavation = null;\n if (imageSettings.excavate) {\n const floorX = Math.floor(x);\n const floorY = Math.floor(y);\n const ceilW = Math.ceil(w + x - floorX);\n const ceilH = Math.ceil(h + y - floorY);\n excavation = { x: floorX, y: floorY, w: ceilW, h: ceilH };\n }\n\n const { crossOrigin } = imageSettings;\n\n return { x, y, h, w, excavation, opacity, crossOrigin };\n};\n\n/**\n * Get margin size\n * @param needMargin Whether need margin\n * @param marginSize Custom margin size\n * @returns\n */\nexport const getMarginSize = (needMargin: boolean, marginSize?: number) => {\n if (marginSize != null) {\n return Math.max(Math.floor(marginSize), 0);\n }\n return needMargin ? SPEC_MARGIN_SIZE : DEFAULT_MARGIN_SIZE;\n};\n\n/**\n * Check if Path2D is supported\n */\nexport const isSupportPath2d = (() => {\n try {\n new Path2D().addPath(new Path2D());\n } catch {\n return false;\n }\n return true;\n})();\n","import { PropType } from 'vue';\nimport { QRCodeSubComponent, QRCodeStatus } from './type';\n\nexport const QRCodeSubComponentProps = {\n /**\n * The value to encode into the QR Code. An array of strings can be passed in\n * to represent multiple segments to further optimize the QR Code.\n */\n value: {\n type: String,\n default: '',\n },\n /**\n * The size, in pixels, to render the QR Code.\n * @defaultValue 128\n */\n size: {\n type: Number,\n default: 128,\n },\n /**\n * The Error Correction Level to use.\n * @see https://www.qrcode.com/en/about/error_correction.html\n * @defaultValue L\n */\n level: {\n type: String as PropType,\n default: 'L',\n },\n /**\n * The background color used to render the QR Code.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/color_value\n * @defaultValue #FFFFFF\n */\n bgColor: {\n type: String,\n default: '#FFFFFF',\n },\n /**\n * The foregtound color used to render the QR Code.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/color_value\n * @defaultValue #000000\n */\n fgColor: {\n type: String,\n default: '#000000',\n },\n /**\n * The style to apply to the QR Code.\n */\n style: {\n type: Object as PropType,\n default: () => ({} as QRCodeSubComponent['style']),\n },\n /**\n * Whether or not a margin of 4 modules should be rendered as a part of the\n * QR Code.\n * @deprecated Use `marginSize` instead.\n * @defaultValue false\n */\n includeMargin: {\n type: Boolean,\n default: false,\n },\n /**\n * The number of _modules_ to use for margin. The QR Code specification\n * requires `4`, however you can specify any number. Values will be turned to\n * integers with `Math.floor`. Overrides `includeMargin` when both are specified.\n * @defaultValue 0\n */\n marginSize: {\n type: Number,\n default: 0,\n },\n /**\n * The settings for the embedded image.\n */\n imageSettings: {\n type: Object as PropType,\n default: () => ({}),\n },\n /**\n * The title to assign to the QR Code. Used for accessibility reasons.\n */\n title: {\n type: String,\n default: '',\n },\n /**\n * The minimum version used when encoding the QR Code. Valid values are 1-40\n * with higher values resulting in more complex QR Codes. The optimal\n * (lowest) version is determined for the `value` provided, using `minVersion`\n * as the lower bound.\n * @defaultValue 1\n */\n minVersion: {\n type: Number,\n default: 1,\n },\n};\n\nexport const QRCodeStatusProps = {\n locale: {\n type: Object as PropType,\n default: () => ({} as QRCodeStatus['locale']),\n },\n onRefresh: {\n type: Function as PropType,\n },\n statusRender: {\n type: Function as PropType,\n },\n status: {\n type: String as PropType,\n default: 'active' as QRCodeStatus['status'],\n },\n};\n","import { QrCode, QrSegment } from '@tdesign/common-js/qrcode/qrcodegen';\nimport type { CrossOrigin, ErrorCorrectionLevel, Excavation, ImageSettings } from '@tdesign/common-js/qrcode/types';\nimport { ERROR_LEVEL_MAP, getImageSettings, getMarginSize } from '@tdesign/common-js/qrcode/utils';\nimport { computed, ComputedRef } from 'vue';\n\ninterface Options {\n value: string;\n level: ErrorCorrectionLevel;\n minVersion: number;\n includeMargin: boolean;\n marginSize?: number;\n imageSettings?: ImageSettings;\n size: number;\n}\n\ninterface QRCodeResult {\n cells: ComputedRef;\n margin: ComputedRef;\n numCells: ComputedRef;\n calculatedImageSettings: ComputedRef<{\n x: number;\n y: number;\n h: number;\n w: number;\n excavation: Excavation | null;\n opacity: number;\n crossOrigin: CrossOrigin;\n }>;\n qrcode: ComputedRef;\n}\n\nexport const useQRCode = (opt: Options): QRCodeResult => {\n const { value, level, minVersion, includeMargin, marginSize, imageSettings, size } = opt;\n\n const memoizedQrcode = computed(() => {\n const segments = QrSegment.makeSegments(value);\n return QrCode.encodeSegments(segments, ERROR_LEVEL_MAP[level], minVersion);\n });\n\n const cs = computed(() => memoizedQrcode.value.getModules());\n const mg = computed(() => getMarginSize(includeMargin, marginSize));\n const cis = computed(() => getImageSettings(cs.value, size, mg.value, imageSettings));\n\n return {\n cells: cs,\n margin: mg,\n numCells: computed(() => cs.value.length + mg.value * 2),\n calculatedImageSettings: cis,\n qrcode: memoizedQrcode,\n };\n};\n\nexport default useQRCode;\n","import { computed, defineComponent, ref, watchEffect, onMounted } from 'vue';\nimport { QRCodeSubComponentProps } from './props';\nimport {\n DEFAULT_NEED_MARGIN,\n DEFAULT_MINVERSION,\n isSupportPath2d,\n excavateModules,\n generatePath,\n} from '@tdesign/common-js/qrcode/utils';\nimport { useQRCode } from '../hooks/useQRCode';\n\nexport default defineComponent({\n name: 'QRCodeCanvas',\n props: QRCodeSubComponentProps,\n setup(props) {\n const imgSrc = computed(() => props.imageSettings?.src);\n\n const imageRef = ref(null);\n\n const canvasRef = ref(null);\n\n const imgCrossOrigin = ref('');\n\n const renderQRCode = () => {\n const { margin, cells, numCells, calculatedImageSettings } = useQRCode({\n value: props.value,\n level: props.level,\n minVersion: DEFAULT_MINVERSION,\n includeMargin: DEFAULT_NEED_MARGIN,\n marginSize: props.marginSize,\n imageSettings: props.imageSettings,\n size: props.size,\n });\n\n if (!canvasRef.value) {\n return;\n }\n\n const canvas = canvasRef.value;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n return;\n }\n\n imgCrossOrigin.value = calculatedImageSettings.value?.crossOrigin;\n\n let cellsToDraw = cells;\n const image = imageRef.value;\n\n if (image) {\n image.crossOrigin = calculatedImageSettings.value.crossOrigin;\n }\n\n const haveImageToRender =\n calculatedImageSettings.value &&\n image !== null &&\n image.complete &&\n image.naturalHeight !== 0 &&\n image.naturalWidth !== 0;\n\n if (haveImageToRender && calculatedImageSettings.value.excavation != null) {\n cellsToDraw = computed(() => excavateModules(cells.value, calculatedImageSettings.value.excavation));\n }\n\n const pixelRatio = window.devicePixelRatio || 1;\n canvas.height = props.size * pixelRatio;\n canvas.width = props.size * pixelRatio;\n const scale = (props.size / numCells.value) * pixelRatio;\n ctx.scale(scale, scale);\n\n ctx.fillStyle = props.bgColor;\n ctx.fillRect(0, 0, numCells.value, numCells.value);\n\n ctx.fillStyle = props.fgColor;\n if (isSupportPath2d) {\n ctx.fill(new Path2D(generatePath(cellsToDraw.value, margin.value)));\n } else {\n cells.value.forEach((row, rdx) => {\n row.forEach((cell, cdx) => {\n if (cell) {\n ctx.fillRect(cdx + margin.value, rdx + margin.value, 1, 1);\n }\n });\n });\n }\n\n if (calculatedImageSettings) {\n ctx.globalAlpha = calculatedImageSettings.value.opacity;\n }\n\n if (haveImageToRender) {\n ctx.globalAlpha = calculatedImageSettings.value.opacity;\n ctx.drawImage(\n image,\n calculatedImageSettings.value.x + margin.value,\n calculatedImageSettings.value.y + margin.value,\n calculatedImageSettings.value.w,\n calculatedImageSettings.value.h,\n );\n }\n };\n\n watchEffect(() => {\n renderQRCode();\n });\n\n onMounted(() => {\n renderQRCode();\n });\n\n return () => {\n return (\n <>\n \n {imgSrc.value != null ? (\n \n ) : null}\n \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport { QRCodeSubComponentProps } from './props';\nimport {\n DEFAULT_NEED_MARGIN,\n DEFAULT_MINVERSION,\n excavateModules,\n generatePath,\n} from '@tdesign/common-js/qrcode/utils';\nimport { useQRCode } from '../hooks/useQRCode';\n\nexport default defineComponent({\n name: 'QRCodeSVG',\n props: QRCodeSubComponentProps,\n setup(props) {\n const qrCodeData = computed(() =>\n useQRCode({\n value: props.value,\n level: props.level,\n minVersion: DEFAULT_MINVERSION,\n includeMargin: DEFAULT_NEED_MARGIN,\n marginSize: props.marginSize,\n imageSettings: props.imageSettings,\n size: props.size,\n }),\n );\n\n const cellsToDraw = computed(() => {\n const { cells, calculatedImageSettings } = qrCodeData.value;\n if (props.imageSettings && calculatedImageSettings.value?.excavation != null) {\n return excavateModules(cells.value, calculatedImageSettings.value.excavation);\n }\n return cells.value;\n });\n\n const imageNode = computed(() => {\n const { calculatedImageSettings, margin } = qrCodeData.value;\n if (!props.imageSettings || !calculatedImageSettings.value) return null;\n\n return (\n \n );\n });\n\n return () => {\n const { margin, numCells } = qrCodeData.value;\n const fgPath = generatePath(cellsToDraw.value, margin.value);\n return (\n \n {!!props.title && {props.title}}\n \n \n {imageNode.value}\n \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport { QRCodeStatusProps } from './props';\nimport { CheckCircleFilledIcon, RefreshIcon } from 'tdesign-icons-vue-next';\nimport Loading from '../../loading';\nimport type { StatusRenderInfo } from '../type';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'QRCodeStatus',\n props: QRCodeStatusProps,\n setup(props) {\n const classPrefix = usePrefixClass();\n\n const defaultSpin = ;\n\n const defaultExpiredNode = computed(() => (\n <>\n

    {props.locale?.expiredText}

    \n {props?.onRefresh && (\n

    \n \n {props.locale?.refreshText}\n

    \n )}\n \n ));\n\n const defaultScannedNode = (\n

    \n \n {props.locale?.scannedText}\n

    \n );\n\n const defaultNodes = computed(() => {\n return {\n expired: defaultExpiredNode.value,\n loading: defaultSpin,\n scanned: defaultScannedNode,\n active: null as any,\n };\n });\n\n const renderStatus = (info: StatusRenderInfo) => {\n return defaultNodes.value[info.status];\n };\n\n return () => {\n return (\n <>\n {props.statusRender ||\n renderStatus({\n status: props.status,\n onRefresh: props.onRefresh,\n })}\n \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport props from './props';\nimport { DEFAULT_FRONT_COLOR } from '@tdesign/common-js/qrcode/utils';\nimport { usePrefixClass, useConfig, useTNodeJSX, useVariables } from '@tdesign/shared-hooks';\n\nimport QRCodeCanvas from './components/qrcode-canvas';\nimport QRCodeSVG from './components/qrcode-svg';\nimport QRcodeStatus from './components/qrcode-status';\n\nimport type { ImageSettings } from '@tdesign/common-js/qrcode/types';\nimport { isNumber } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TQRCode',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('qrcode');\n\n const { themeFgColor, themeBgColor } = useVariables({\n themeFgColor: '--td-text-color-primary',\n themeBgColor: '--td-bg-color-specialcomponent',\n });\n\n // bgColor:自定义颜色 > 主题色适配 > 透明[transparent]\n const finalBgColor = computed(() => props.bgColor || themeBgColor.value || 'transparent');\n // color[fgColor]:自定义颜色 > 主题色适配 > 默认颜色[#000000]\n const finalFgColor = computed(() => props.color || themeFgColor.value || DEFAULT_FRONT_COLOR);\n\n if (!props.value) {\n return null;\n }\n\n const imageSettings = computed(() => {\n return {\n src: props.icon,\n x: undefined,\n y: undefined,\n height: isNumber(props.iconSize) ? props.iconSize : props.iconSize?.height ?? 40,\n width: isNumber(props.iconSize) ? props.iconSize : props.iconSize?.width ?? 40,\n excavate: true,\n crossOrigin: 'anonymous',\n };\n });\n\n const classes = computed(() => {\n return [\n `${classPrefix.value}-qrcode`,\n {\n [`${classPrefix.value}-borderless`]: props.borderless,\n [`${classPrefix.value}-qrcode-svg`]: props.type === 'svg',\n },\n ];\n });\n\n const mergedStyle = computed(() => {\n return {\n backgroundColor: finalBgColor.value,\n width: `${props.size}px`,\n height: `${props.size}px`,\n };\n });\n\n return () => {\n const QRCodeProps = {\n value: props.value,\n size: props.size,\n bgColor: finalBgColor.value,\n fgColor: finalFgColor.value,\n imageSettings: props.icon ? imageSettings.value : undefined,\n level: props.level,\n };\n\n return (\n
    \n {props.status !== 'active' && (\n \n \n
    \n )}\n {props.type === 'canvas' ? (\n \n ) : (\n \n )}\n \n );\n };\n },\n});\n","import _QRCode from './qrcode';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdQRCodeProps } from './type';\n\nimport './style';\n\nexport type QRCodeProps = TdQRCodeProps;\nexport * from './type';\n\nexport const QRCode = withInstall(_QRCode, 'TQrcode');\n\nexport default QRCode;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAlertProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 即将废弃,请使用 closeBtn 属性。关闭按钮。值为 true 则显示默认关闭按钮;值为 false 则不显示按钮;值类型为 string 则直接显示;值类型为 Function 则可以自定关闭按钮 */\n close: {\n type: [String, Boolean, Function] as PropType,\n default: false as TdAlertProps['close'],\n },\n /** 关闭按钮。值为 true 则显示默认关闭按钮;值为 false 则不显示按钮;值类型为 string 则直接显示;值类型为 Function 则可以自定关闭按钮 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n default: false as TdAlertProps['closeBtn'],\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 if (!val) return true;\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, getCurrentInstance } 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 { isArray, isString } from 'lodash-es';\n\nimport { on, off, addClass } from '@tdesign/shared-utils';\nimport props from './props';\nimport { SlotReturnValue } from '../common';\nimport {\n useIcon,\n useConfig,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n filterCommentNode,\n} from '@tdesign/shared-hooks';\nimport log from '@tdesign/common-js/log/index';\n\nexport default defineComponent({\n name: 'TAlert',\n props,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\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 // close属性变更为closeBtn过渡期使用,close废弃后可删除。(需兼容标签上直接写close和closeBtn的场景)\n const { closeBtn } = props;\n const isUsingClose = Object.prototype.hasOwnProperty.call(instance.vnode.props || {}, 'close') || slots.close;\n const close = isUsingClose ? props.close : closeBtn;\n if (isUsingClose) {\n log.warnOnce('TAlert', 'prop `close` is going to be deprecated, please use `closeBtn` instead.');\n }\n let closeContent = null;\n if (close === true || close === '') {\n closeContent = ;\n } else if (isString(close)) {\n closeContent = close;\n } else {\n closeContent = renderTNodeJSX(isUsingClose ? 'close' : 'closeBtn');\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 = renderTNodeJSX('default') || renderTNodeJSX('message');\n\n if (isArray(messageContent)) {\n messageContent = filterCommentNode(messageContent);\n }\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 '@tdesign/shared-utils';\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 /** 确认按钮,可自定义。值为 null 则不显示确认按钮。类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 抽屉内容,同 body */\n default: {\n type: [String, Function] as PropType,\n },\n /** 抽屉关闭时是否销毁节点 */\n destroyOnClose: Boolean,\n /** 抽屉元素类名。 */\n drawerClassName: {\n type: String,\n default: '',\n },\n /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 true 显示默认操作按钮,值为 false 或 null 不显示任何内容,值类型为 TNode 表示自定义底部内容 */\n footer: {\n type: [Boolean, Function] as PropType,\n default: true as TdDrawerProps['footer'],\n },\n /** 头部内容。值为 true 显示空白头部,值为 false 不显示头部,值类型为 string 则直接显示值,值类型为 TNode 表示自定义头部内容 */\n header: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDrawerProps['header'],\n },\n /** 是否启用抽屉懒加载,启用时抽屉的内容不渲染 */\n lazy: Boolean,\n /** 展开方式,有两种:直接展示在内容上方 和 推开内容区域 */\n mode: {\n type: String as PropType,\n default: 'overlay' as TdDrawerProps['mode'],\n validator(val: TdDrawerProps['mode']): boolean {\n if (!val) return true;\n return ['overlay', 'push'].includes(val);\n },\n },\n /** 抽屉方向 */\n placement: {\n type: String as PropType,\n default: 'right' as TdDrawerProps['placement'],\n validator(val: TdDrawerProps['placement']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top', 'bottom'].includes(val);\n },\n },\n /** 防止滚动穿透 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative */\n showInAttachedElement: Boolean,\n /** 是否显示遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 尺寸,支持 'small', 'medium', 'large','35px', '30%', '3em' 等。纵向抽屉调整的是抽屉宽度,横向抽屉调整的是抽屉高度 */\n size: {\n type: String,\n default: undefined,\n },\n /** 抽屉大小可拖拽调整,横向抽屉调整宽度,纵向抽屉调整高度。`sizeDraggable.max` 和 `sizeDraggable.min` 用于控制拖拽尺寸大小限制 */\n sizeDraggable: {\n type: [Boolean, Object] as PropType,\n default: false as TdDrawerProps['sizeDraggable'],\n },\n /** 组件是否可见 */\n visible: Boolean,\n /** 抽屉层级,样式默认为 1500 */\n zIndex: {\n type: Number,\n },\n /** 抽屉执行关闭动画效果前触发 */\n onBeforeClose: Function as PropType,\n /** 抽屉执行打开动画效果前触发 */\n onBeforeOpen: Function as PropType,\n /** 如果“取消”按钮存在,点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 关闭事件,取消按钮点击时、关闭按钮点击时、ESC 按下时、点击蒙层时均会触发 */\n onClose: Function as PropType,\n /** 如果关闭按钮存在,点击关闭按钮时触发该事件,同时触发关闭事件 */\n onCloseBtnClick: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发 */\n onConfirm: Function as PropType,\n /** 按下 ESC 键时触发 */\n onEscKeydown: Function as PropType,\n /** 如果蒙层存在,点击蒙层时触发 */\n onOverlayClick: Function as PropType,\n /** 抽屉大小拖拽结束时触发,事件参数 `size` 在横向抽屉中表示宽度,在纵向抽屉中表示高度 */\n onSizeDragEnd: Function as PropType,\n};\n","type Placement = 'left' | 'right' | 'top' | 'bottom';\n\ninterface SizeDragLimit {\n max: number;\n min: number;\n}\n\nexport function getSizeDraggable(\n sizeDraggable: boolean | SizeDragLimit,\n limit: { max: number; min: number }\n) {\n if (typeof sizeDraggable === 'boolean') {\n return {\n allowSizeDraggable: sizeDraggable,\n max: limit.max,\n min: limit.min,\n };\n }\n\n return {\n allowSizeDraggable: true,\n max: sizeDraggable.max,\n min: sizeDraggable.min,\n };\n}\n\ntype IOptions = {\n x: number;\n y: number;\n maxWidth: number;\n maxHeight: number;\n min: number;\n max: number;\n};\n\n// > min && < max\nfunction calcSizeRange(size: number, min: number, max: number) {\n return Math.min(Math.max(size, min), max);\n}\n\nexport function calcMoveSize(placement: Placement, opts: IOptions) {\n const { x, y, max, min, maxWidth, maxHeight } = opts;\n let moveSize: number | undefined;\n switch (placement) {\n case 'right':\n // |<--- x --->| |\n // | maxWidth |\n // | size | > min && < max\n moveSize = calcSizeRange(maxWidth - x, min, max);\n break;\n case 'left':\n // |<-- x -->| |\n // x > min && < max\n moveSize = calcSizeRange(x, min, max);\n break;\n case 'top':\n // - - - - - - - -\n // | y |\n // | |\n // - - - - - - - -\n // > min && < max\n // moveSize = Math.min(Math.max(y, min), max);\n moveSize = calcSizeRange(y, min, max);\n break;\n case 'bottom':\n // - - - - - - - -\n // | y |\n // | | maxHeight\n // - - - - - - - -\n // | size |\n // > min && < max\n moveSize = calcSizeRange(maxHeight - y, min, max);\n break;\n default:\n // 参数缺失直接返回\n return moveSize;\n }\n return moveSize;\n}\n","import { computed, ref } from 'vue';\nimport { Styles } from '../../common';\nimport { getSizeDraggable, calcMoveSize } from '@tdesign/common-js/drawer/utils';\nimport type { TdDrawerProps } from '../type';\n\nexport const useDrag = (props: TdDrawerProps) => {\n // 以下为拖拽改变抽屉大小相关 可以抽成hooks\n const isSizeDragging = ref(false);\n const draggedSizeValue = ref(null);\n\n const enableDrag = (e: MouseEvent) => {\n e.stopPropagation(); // 阻止事件冒泡\n // mousedown绑定mousemove和mouseup事件\n document.addEventListener('mouseup', handleMouseup, true);\n document.addEventListener('mousemove', handleMousemove, true);\n isSizeDragging.value = true;\n };\n\n const handleMouseup = () => {\n document.removeEventListener('mouseup', handleMouseup, true);\n document.removeEventListener('mousemove', handleMousemove, true);\n isSizeDragging.value = false;\n };\n\n const handleMousemove = (e: MouseEvent) => {\n // 鼠标移动时计算draggedSizeValue的值\n const { x, y } = e;\n const maxHeight = document.documentElement.clientHeight;\n const maxWidth = document.documentElement.clientWidth;\n const offsetHeight = 8;\n const offsetWidth = 8;\n // x 轴方向使用最大宽度,y轴方向使用最大高度\n const max = props.placement === 'left' || props.placement === 'right' ? maxWidth : maxHeight;\n // x 轴方向使用默认最小宽度,y轴方向使用默认最小高度\n const min = props.placement === 'left' || props.placement === 'right' ? offsetWidth : offsetHeight;\n const { allowSizeDraggable, max: limitMax, min: limitMin } = getSizeDraggable(props.sizeDraggable, { max, min });\n\n // 不支持拖拽就直接返回\n if (!allowSizeDraggable || !isSizeDragging.value) return;\n\n const moveSize = calcMoveSize(props.placement, {\n x,\n y,\n maxWidth,\n maxHeight,\n max: limitMax,\n min: limitMin,\n });\n\n if (typeof moveSize === 'undefined') return;\n\n draggedSizeValue.value = `${moveSize}px`;\n props.onSizeDragEnd?.({\n e,\n size: moveSize,\n });\n };\n\n const draggableLineStyles = computed(() => {\n // 设置拖拽control的样式\n const isHorizontal = ['right', 'left'].includes(props.placement);\n const oppositeMap = {\n left: 'right',\n right: 'left',\n top: 'bottom',\n bottom: 'top',\n };\n return {\n zIndex: 1,\n position: 'absolute',\n background: 'transparent',\n [oppositeMap[props.placement]]: 0,\n width: isHorizontal ? '16px' : '100%',\n height: isHorizontal ? '100%' : '16px',\n cursor: isHorizontal ? 'col-resize' : 'row-resize',\n } as Styles;\n });\n\n const draggingStyles = computed(() => (isSizeDragging.value ? { userSelect: 'none' } : {}));\n\n return {\n draggedSizeValue,\n enableDrag,\n draggableLineStyles,\n draggingStyles,\n };\n};\n","import { onBeforeUnmount, onMounted, computed, defineComponent, nextTick, onUpdated, ref, watch, Teleport } from 'vue';\nimport { CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\nimport {\n useConfig,\n useContent,\n useTNodeJSX,\n useTeleport,\n useGlobalIcon,\n usePrefixClass,\n usePopupManager,\n} from '@tdesign/shared-hooks';\n\nimport { isServer } from '@tdesign/shared-utils';\nimport { getScrollbarWidth } from '@tdesign/common-js/utils/getScrollbarWidth';\nimport props from './props';\nimport { DrawerCloseContext } from './type';\nimport { useAction } from '../dialog/hooks';\n\nimport { useDrag } from './hooks';\nimport type { TdDrawerProps } from './type';\n\nlet key = 1;\n\nexport default defineComponent({\n name: 'TDrawer',\n inheritAttrs: false,\n props,\n emits: ['update:visible'],\n setup(props, context) {\n const destroyOnCloseVisible = ref(false);\n const isVisible = ref(false);\n const styleEl = ref();\n const styleTimer = ref();\n const { globalConfig } = useConfig('drawer');\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const COMPONENT_NAME = usePrefixClass('drawer');\n const { draggedSizeValue, enableDrag, draggableLineStyles, draggingStyles } = useDrag(props as TdDrawerProps);\n const computedVisible = computed(() => props.visible);\n const isMounted = ref(false);\n\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n\n const confirmBtnAction = (e: MouseEvent) => {\n props.onConfirm?.({ e });\n };\n const cancelBtnAction = (e: MouseEvent) => {\n props.onCancel?.({ e });\n closeDrawer({ trigger: 'cancel', e });\n };\n const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n const drawerEle = ref(null);\n const drawerClasses = computed(() => [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}--${props.placement}`,\n {\n [`${COMPONENT_NAME.value}--open`]: isVisible.value,\n [`${COMPONENT_NAME.value}--attach`]: props.showInAttachedElement,\n [`${COMPONENT_NAME.value}--without-mask`]: !props.showOverlay,\n },\n props.drawerClassName,\n ]);\n\n const sizeValue = computed(() => {\n if (draggedSizeValue.value) return draggedSizeValue.value;\n const size = props.size ?? globalConfig.value.size;\n const defaultSize = isNaN(Number(size)) ? size : `${size}px`;\n return (\n {\n small: '300px',\n medium: '500px',\n large: '760px',\n }[size] || defaultSize\n );\n });\n const wrapperStyles = computed(() => ({\n transform: isVisible.value ? 'translateX(0)' : undefined,\n width: ['left', 'right'].includes(props.placement) ? sizeValue.value : '',\n height: ['top', 'bottom'].includes(props.placement) ? sizeValue.value : '',\n }));\n\n const wrapperClasses = computed(() => [\n `${COMPONENT_NAME.value}__content-wrapper`,\n `${COMPONENT_NAME.value}__content-wrapper--${props.placement}`,\n ]);\n\n const parentNode = computed(() => drawerEle.value?.parentNode as HTMLElement);\n\n const modeAndPlacement = computed(() => [props.mode, props.placement].join());\n const footerStyle = computed(() => ({\n display: 'flex',\n justifyContent: props.placement === 'right' ? 'flex-start' : 'flex-end',\n }));\n\n const handleEscKeydown = (e: KeyboardEvent) => {\n if (\n (props.closeOnEscKeydown ?? globalConfig.value.closeOnEscKeydown) &&\n e.key === 'Escape' &&\n isVisible.value &&\n isTopInteractivePopup()\n ) {\n props.onEscKeydown?.({ e });\n closeDrawer({ trigger: 'esc', e });\n // 阻止事件冒泡\n e.stopImmediatePropagation();\n }\n };\n\n const clearStyleEl = () => {\n clearTimeout(styleTimer.value);\n styleTimer.value = setTimeout(() => {\n styleEl.value?.parentNode?.removeChild?.(styleEl.value);\n styleEl.value = null;\n }, 150);\n nextTick(() => {\n drawerEle.value?.focus?.();\n });\n };\n\n const createStyleEl = () => {\n if (!styleEl.value) return;\n const hasScrollBar = window.innerWidth > document.documentElement.clientWidth;\n const scrollWidth = hasScrollBar ? getScrollbarWidth() : 0;\n styleEl.value = document.createElement('style');\n styleEl.value.dataset.id = `td_drawer_${+new Date()}_${(key += 1)}`;\n styleEl.value.innerHTML = `\n html body {\n overflow-y: hidden;\n transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;\n ${props.mode === 'push' ? '' : `width: calc(100% - ${scrollWidth}px);`}\n }\n `;\n };\n\n const handlePushMode = () => {\n if (props.mode !== 'push') return;\n nextTick(() => {\n if (!parentNode.value) return;\n parentNode.value.style.cssText = 'transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;';\n });\n };\n\n // push 动画效果处理\n const updatePushMode = () => {\n if (!parentNode.value || props.mode !== 'push') return;\n const marginValueData = {\n left: { name: 'margin-left', value: sizeValue.value },\n right: { name: 'margin-right', value: `-${sizeValue.value}` },\n top: { name: 'margin-top', value: sizeValue.value },\n bottom: { name: 'margin-bottom', value: `-${sizeValue.value}` },\n }[props.placement];\n if (isVisible.value) {\n parentNode.value.style.setProperty(marginValueData.name, marginValueData.value);\n } else {\n parentNode.value.style.removeProperty(marginValueData.name);\n }\n };\n\n // locale 全局配置,插槽,props,默认值,决定了按钮最终呈现\n const getDefaultFooter = () => {\n const confirmBtn = getConfirmBtn({\n confirmBtn: props.confirmBtn as TdDrawerProps['confirmBtn'],\n globalConfirm: globalConfig.value.confirm,\n className: `${COMPONENT_NAME.value}__confirm`,\n });\n const cancelBtn = getCancelBtn({\n cancelBtn: props.cancelBtn as TdDrawerProps['cancelBtn'],\n globalCancel: globalConfig.value.cancel,\n className: `${COMPONENT_NAME.value}__cancel`,\n });\n return (\n
    \n {props.placement === 'right' ? confirmBtn : null}\n {cancelBtn}\n {props.placement !== 'right' ? confirmBtn : null}\n
    \n );\n };\n\n const { isTopInteractivePopup } = usePopupManager('drawer', {\n visible: computedVisible,\n });\n\n watch(modeAndPlacement, handlePushMode, { immediate: true });\n\n const updateVisibleState = (value: boolean) => {\n if (value) {\n isMounted.value = true;\n }\n\n if (props.destroyOnClose) {\n if (value) {\n destroyOnCloseVisible.value = false;\n setTimeout(() => (isVisible.value = true));\n } else {\n isVisible.value = false;\n // immediate 的 watch 的第一次触发,会将设置为 true 的行为延后\n // 插件场景下,watch -> create 方法 的立刻调用,导致 destroyOnCloseVisible 被 watch 的第一次触发覆盖\n // 所以关闭时候,默认先置为 false\n // 后续考虑移除 immediate 的 watch ?\n if (destroyOnCloseVisible.value) {\n destroyOnCloseVisible.value = false;\n }\n setTimeout(() => (destroyOnCloseVisible.value = true), 300);\n }\n return;\n }\n\n if (destroyOnCloseVisible.value && value) {\n destroyOnCloseVisible.value = false;\n setTimeout(() => (isVisible.value = true));\n return;\n }\n\n setTimeout(() => (isVisible.value = value));\n };\n\n const addStyleElToHead = () => {\n if (\n !props.showInAttachedElement &&\n props.preventScrollThrough &&\n isVisible.value &&\n (isMounted.value || !props.lazy)\n ) {\n if (!styleEl.value) {\n createStyleEl();\n }\n if (styleEl.value && !document.head.contains(styleEl.value)) {\n document.head.appendChild(styleEl.value);\n }\n }\n };\n\n watch(\n () => props.visible,\n (value) => {\n if (isServer) return;\n if (value) {\n addStyleElToHead();\n props.onBeforeOpen?.();\n } else {\n clearStyleEl();\n props.onBeforeClose?.();\n }\n\n updateVisibleState(value);\n },\n { immediate: true },\n );\n\n const handleCloseBtnClick = (e: MouseEvent) => {\n props.onCloseBtnClick?.({ e });\n closeDrawer({ trigger: 'close-btn', e });\n };\n const handleWrapperClick = (e: MouseEvent) => {\n props.onOverlayClick?.({ e });\n if (props.closeOnOverlayClick ?? globalConfig.value.closeOnOverlayClick) {\n closeDrawer({ trigger: 'overlay', e });\n }\n };\n\n const closeDrawer = (params: DrawerCloseContext) => {\n props.onClose?.(params);\n context.emit('update:visible', false);\n };\n\n onUpdated(updatePushMode);\n\n onMounted(() => {\n addStyleElToHead();\n window.addEventListener('keydown', handleEscKeydown);\n });\n\n onBeforeUnmount(() => {\n clearStyleEl();\n window.removeEventListener('keydown', handleEscKeydown);\n });\n\n const shouldRender = computed(() => {\n if (!isMounted.value) {\n return !props.lazy;\n } else {\n return isVisible.value || !destroyOnCloseVisible.value;\n }\n });\n\n return () => {\n if (!shouldRender.value) return;\n\n const body = renderContent('body', 'default');\n const headerContent = renderTNodeJSX('header');\n const defaultFooter = getDefaultFooter();\n\n return (\n \n \n {props.showOverlay &&
    }\n
    \n {headerContent &&
    {headerContent}
    }\n {props.closeBtn && (\n
    \n {renderTNodeJSX('closeBtn', )}\n
    \n )}\n
    {body}
    \n {props.footer && (\n
    {renderTNodeJSX('footer', defaultFooter)}
    \n )}\n {props.sizeDraggable &&
    }\n
    \n
    \n
    \n );\n };\n },\n});\n","import { App, ref, Plugin, defineComponent, h, onMounted, nextTick, render, createVNode, AppContext } from 'vue';\nimport DrawerComponent from './drawer';\nimport { getAttach } from '@tdesign/shared-utils';\nimport { DrawerOptions, DrawerMethod, DrawerInstance } from './type';\nimport { omit } from 'lodash-es';\n\nconst createDrawer: DrawerMethod = (props, context) => {\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 function destroySelf() {\n render(null, wrapper);\n wrapper.remove();\n }\n\n const component = defineComponent({\n setup(props, { expose }) {\n const drawerOptions = ref>(options);\n onMounted(() => {\n nextTick(() => {\n visible.value = true;\n });\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 if (options.destroyOnClose) {\n setTimeout(() => {\n destroySelf();\n }, 300);\n }\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 = createVNode(component);\n // eslint-disable-next-line no-underscore-dangle\n if (context ?? DrawerPlugin._context) {\n // eslint-disable-next-line no-underscore-dangle\n drawerComponent.appContext = context ?? DrawerPlugin._context;\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 render(drawerComponent, wrapper);\n\n const destroyDrawer = () => {\n visible.value = false;\n setTimeout(() => {\n destroySelf();\n }, 400);\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 drawerComponent.component.exposed.update(omit(newOptions, ['style']));\n updateStyle(newOptions.style);\n },\n destroy: () => {\n destroyDrawer();\n },\n };\n return drawerNode;\n};\n\nexport type DrawerPluginType = Plugin &\n DrawerMethod & {\n _context?: AppContext;\n };\n\nexport const DrawerPlugin = createDrawer as DrawerPluginType;\n\nDrawerPlugin.install = (app: App): void => {\n // 如果使用 use 方法,自动绑定当前 App 的 context\n // eslint-disable-next-line no-underscore-dangle\n DrawerPlugin._context = app._context;\n app.config.globalProperties.$drawer = createDrawer;\n};\n\nexport default DrawerPlugin;\n","import _Drawer from './drawer';\nimport { withInstall } from '@tdesign/shared-utils';\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 '@tdesign/shared-utils';\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 '@tdesign/shared-utils';\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 '@tdesign/shared-utils';\nimport { useVModel, useConfig, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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 { isString, isFunction } from 'lodash-es';\n\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 '@tdesign/shared-utils';\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 '@tdesign/shared-utils';\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 as TdNotificationProps['closeBtn'],\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 as TdNotificationProps['icon'],\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 { useConfig, useContent, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './props';\n\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 '@tdesign/shared-hooks';\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, nextTick, AppContext, createVNode, render, VNode } from 'vue';\nimport NotificationList from './notification-list';\nimport { getAttach } from '@tdesign/shared-utils';\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, context?: AppContext): 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 = createVNode(NotificationList, {\n placement: hackOptions.placement,\n });\n\n // eslint-disable-next-line no-underscore-dangle\n if (context ?? NotificationPlugin._context) {\n // eslint-disable-next-line no-underscore-dangle\n instance.appContext = context ?? NotificationPlugin._context;\n }\n\n // 会遗留一个容器在 attach 中,需要找合适的时机回收\n attachEl.appendChild(wrapper);\n render(instance, wrapper);\n instance.component.exposed.add(hackOptions);\n instanceMap.get(attachEl)[hackOptions.placement] = instance;\n tmpInstance = instance;\n } else {\n tmpInstance.component.exposed.add(hackOptions);\n }\n\n return new Promise((resolve) => {\n const ins = instanceMap.get(attachEl)[hackOptions.placement];\n nextTick(() => {\n const notificationList: NotificationInstance[] = ins.component.exposed.notificationList.value ?? [];\n resolve(\n notificationList?.find((notify) => {\n return (notify as any).$?.vnode?.key === hackOptions.id;\n }),\n );\n });\n });\n};\n\nconst showThemeNotification: NotificationMethod = (theme, options, context) => {\n const hackOptions = { ...options, theme };\n return NotificationFunction(hackOptions, context);\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, context) => showThemeNotification('info', options, context),\n success: (options, context) => showThemeNotification('success', options, context),\n warning: (options, context) => showThemeNotification('warning', options, context),\n error: (options, context) => showThemeNotification('error', options, context),\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].component.exposed.removeAll();\n });\n });\n },\n};\n\nexport type NotificationPluginType = Plugin &\n ExtraApi &\n NotificationMethod & {\n _context?: AppContext;\n };\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 // eslint-disable-next-line no-underscore-dangle\n NotificationPlugin._context = app._context;\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 '@tdesign/shared-utils';\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 {\n useConfig,\n useVModel,\n useContent,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useTNodeDefault,\n} from '@tdesign/shared-hooks';\n\nimport Popup, { PopupProps, PopupVisibleChangeContext } from '../popup/index';\nimport props from './props';\n\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 '@tdesign/shared-utils';\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, useGlobalIcon } from '@tdesign/shared-hooks';\nimport { UploadFile } from '../type';\nimport { abridgeName } from '@tdesign/common-js/upload/utils';\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 { useTNodeJSX, useGlobalIcon, useCommonClassName } from '@tdesign/shared-hooks';\nimport TLoading from '../../loading';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\n\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\n\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 { SIZE } = 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 { useTNodeJSX, useGlobalIcon } from '@tdesign/shared-hooks';\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';\n\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 const renderTrigger = () => {\n return (\n renderTNodeJSX('trigger', {\n params: {\n triggerUpload: props.triggerUpload,\n },\n }) || (\n
  • \n \n \n

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

    \n \n
  • \n )\n );\n };\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 && renderTrigger()}\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 { isObject, isFunction } from 'lodash-es';\n\nimport { useTNodeJSX, useGlobalIcon } from '@tdesign/shared-hooks';\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport TButton from '../../button';\nimport { UploadFile, TdUploadProps } from '../types';\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';\n\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 '@tdesign/shared-hooks';\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, useConfig } from '@tdesign/shared-hooks';\nimport { InnerProgressContext, OnResponseErrorContext, SuccessContext } from '@tdesign/common-js/upload/types';\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, useDisabled, useGlobalIcon } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\n\nimport './style';\n\nexport * from './types';\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 { withInstall } from '@tdesign/shared-utils';\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 { defineComponent } from 'vue';\nimport props from './props';\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\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 { 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","inRange","baseInRange","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","uniqBy","idCounter","xorWith","baseXor","xorWith$1","_arrayWithHoles","_nonIterableRest","_slicedToArray","arrayWithHoles","l","u","f","next","done","iterableToArrayLimit","nonIterableRest","hrtime","performanceNowModule","getNanoSeconds","nodeLoadTime","moduleLoadTime","hr","upTime","loadTime","window","vendors","suffix","raf","caf","id","queue","frameDuration","_now","cp","_loop","cancelled","round","handle","rafModule","fn","polyfill","requestAnimationFrame","cancelAnimationFrame","easeInOutCubic","duration","change","isServer","on","document","addEventListener","element","event","handler","attachEvent","concat","off","removeEventListener","detachEvent","hasClass","el","cls","indexOf","Error","classList","contains","className","addClass","curClass","classes","j","clsName","removeClass","getAttach","node","triggerNode","attachNode","querySelector","HTMLElement","body","getScrollContainer","container","isWindow","obj","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","hidden","appendChild","click","removeChild","elementInViewport","elm","rect","getBoundingClientRect","parentRect","top","left","bottom","right","innerHeight","innerWidth","getElmCssPropValue","propName","propValue","defaultView","getComputedStyle","getPropertyValue","isFixed","p","parentNode","nodeName","getWindowScroll","docElm","pageYOffset","scrollLeft","isCommentVNode","isVNode","Comment","withInstall","comp","alias","directive","componentPlugin","install","app","component","getDefaultNode","defaultNode","getChildren","content","childList","innerGetChildren","item","children","Fragment","getParams","params","useChildComponentSlots","instance","getCurrentInstance","childComponentName","slots","_slots","_slots$default","filter","_item$type$name","endsWith","useChildSlots","_slots$default2","flat","useFlatChildrenSlots","getFlatChildren","child","Teleport","some","vNode","hasOwn","val","getPropertyValFromObj","handleSlots","_instance$slots$camel","_instance$slots","_instance$slots$kebab","_instance$slots2","isEmptyNode","_node2$type","useTNodeJSX","renderParams","isSlotFirst","slotFirst","getSlotFirst","renderSlot","vProps","vnode","isPropExplicitlySet","_instance$type$props$","propsNode","Boolean","h","useTNodeDefault","renderTNodeJSX","useContent","name1","name2","toParams","node1","node2","s","c","d","$","y","M","weekdays","months","ordinal","m","v","z","utcOffset","abs","date","year","month","clone","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","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","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","loadingEndText","uploadImageText","uploadAttachmentText","qrcode","expiredText","refreshText","scannedText","configProviderInjectKey","text","_len","_key","firstArg","secondArg","pluralParts","part","trim","pluralIndex","getPluralIndex","globalConfigCopy","ref","useConfig","componentName","componentLocale","injectGlobalConfig","inject","mergedGlobalConfig","globalConfig","assign","commonT","provideConfig","defaultData","injectConfig","provide","usePrefixClass","useCommonClassName","SIZE","small","medium","large","xs","xl","block","STATUS","loading","loadMore","disabled","focused","error","selected","active","checked","visible","expanded","indeterminate","useDefaultValue","onChange","propsName","_getCurrentInstance","emit","internalValue","_len2","_key2","useDestroyOnClose","refresh","onUpdated","useDisabled","context","currentInstance","componentDisabled","formDisabled","_context$beforeDisabl","_context$afterDisable","_formDisabled$disable","beforeDisabled","afterDisabled","traversalTabNavs","tabNavs","_step","_iterator","_createForOfIteratorHelper","itemNode","getAttribute","err","handleTarget","resultTarget","observe","marginBottom","IntersectionObserver","io","isIntersecting","unobserve","rootMargin","console","useGlobalIcon","tdIcon","resultIcon","_globalConfig$value","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","oneRule","getFileList","files","fileList","useImagePreviewUrl","imgUrl","previewUrl","watch","_ref","_ref2","fileRaw","reader","FileReader","readAsDataURL","onload","_event$target","then","immediate","expand","ripple","fade","useListener","listener","onMounted","onBeforeUnmount","_defineProperties","_createClass","_classCallCheck","popupStackType","PopupManager","_this","popup","popupStack","zIndex","getNextZIndex","zIndexStack","popupType","_this$popupStack$popu","popupManager","usePopupManager","runOnMounted","open","close","readonly","isTopInteractivePopup","useReadonly","componentReadonly","formReadonly","_context$beforeReadon","_context$afterReadonl","_formReadonly$readonl","beforeReadonly","afterReadonly","useResizeObserver","ResizeObserver","containerObserver","cleanupObserver","disconnect","addObserver","setStyle","styles","style","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","width","offsetWidth","height","offsetHeight","position","borderRadius","pointerEvents","overflow","marginTop","marginLeft","transition","period","backgroundColor","opacity","elMap","initPosition","insertBefore","firstChild","handleClearRipple","onUnmounted","_el$value","useTeleport","to","innerTriggerNode","getElement","useVModel","modelValue","isVM","isVMP","_len3","_key3","useVirtualScrollNew","_params$value$data","_params$value$scroll","visibleData","translateY","scroll","rowHeight","scrollHeight","trHeightList","containerHeight","containerWidth","startAndEndIndex","tScroll","_scroll$isFixedRowHei","_scroll$fixedRows","bufferSize","isFixedRowHeight","threshold","fixedRows","isVirtualScroll","updateVisibleData","_getVisibleRangeConfi","_container$value$scro","_container$value","fixedStart","prevBufferHeightList","hiddenHeight","visibleStart","visibleEnd","totalHeight","_trHeightList$i","shift","startIndex","endIndex","getVisibleRangeConfig","translateYValue","_fixedRows","fixedEnd","fixedStartData","fixedEndData","bottomStartIndex","updateScrollTop","_ref3$top","behavior","contentRect","preventResizeRefresh","addIndexToData","initHeightList","fill","handleScroll","handleRowMounted","rowData","_rowData$ref$value","trHeight","rowIndex","VIRTUAL_SCROLL_INDEX","scrollToElement","_p$time","timer","DEFAULT_OPTIONS","debounceTime","config","attributes","characterData","subtree","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","getColorTokenColor","token","_document","_styles$getPropertyVa","targetElement","useVariables","variables","varsArray","varName","targetEl","mergedOptions","_objectSpread","observer","initObserver","_observer","_mergedOptions$value","_mergedOptions$value$","_mergedOptions$value$2","MutationObserver","newOptions","deep","_observer2","useMutationObservable","mutationsList","mutation","attributeName","_ref3","_ref4","_objectWithoutProperties","objectWithoutPropertiesLoose","getValidAttrs","newObj","getBackgroundColor","color","unshift","_color$direction","rest","_excluded","tempArr","sort","parseFloat","substr","getIEVersion","navigator","MAX_SAFE_INTEGER","userAgent","isIE","isIE11","reIE","fIEVersion","getCharacterLength","str","maxCharacter","hasMaxCharacter","characters","currentStringLength","pxCompat","param","DOM_STYLE_PROPS","GradientIcon","defineComponent","setup","circleRef","nextTick","circleElem","_window","_window$getComputedSt2","_window2","basicStyle","_window$getComputedSt","fontSize","ua","isSafari","isIosWechat","isIpadWechat","transformOrigin","matched","endColor","background","circleAdapter","_createVNode","class","viewBox","version","xmlns","createVNode","props$1z","delay","fullscreen","indicator","inheritColor","preventScrollThrough","showOverlay","_Loading","inheritAttrs","attrs","delayShowLoading","_useComponentClassNam","centerClass","fullscreenClass","lockClass","overlayClass","relativeClass","fullClass","inheritColorClass","renderContent","countDelay","teleportElement","delayCounted","hasContent","lockFullscreen","showText","showWrapLoading","showFullScreenLoading","showAttachedLoading","baseClasses","fullScreenClasses","attachClasses","withContentClasses","normalClasses","toRefs","_ref5","_classes$value","defaultIndicator","_mergeProps","fullScreenLoadingInstance","createLoading","mergedProps","mergeDefaultProps","loadingOptions","reactive","LoadingComponent","LoadingPlugin","_context","appContext","wrapper","render","parentRelativeClass","hide","produceLoading","_fullScreenLoadingIns","globalProperties","$loading","INSTANCE_KEY","createInstance","_binding$modifiers","modifiers","mapKeys","vLoading","mounted","updated","_value$loading","oldValue","unmounted","_el$INSTANCE_KEY","Loading","props$1y","ghost","href","loadingProps","shape","variant","onClick","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","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","_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$1w","hover","prefixIcon","suffixIcon","underline","_Link","emits","linkClass","handleClick","linkContent","prefix","Link","props$1v","align","gutter","justify","calcSize","useRowSize","_Row","rowClasses","getRowClasses","rowStyle","currentSize","getMarginStyle","marginRight","getRowGapStyle","rowGap","strategyMap","calcRowStyle","_slot","TAG","_isVNode","props$1u","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$1t","_Header","props$1s","_Footer","props$1r","_Aside","props$1q","_Content","Aside","Layout","Header","Footer","Content","props$1p","dashed","layout","_Divider","dividerClassNames","Divider","props$1o","breakLine","separator","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$1n","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$1m","_DescriptionsItem","Descriptions","DescriptionsItem","asyncGeneratorStep","_asyncToGenerator","_next","_throw","__esModule","_regeneratorDefine","_invoke","regeneratorDefine","_regenerator","Generator","G","bind","GeneratorFunction","GeneratorFunctionPrototype","setPrototypeOf","__proto__","displayName","OverloadYield","require$$1","AsyncIterator","asyncIterator","regenerator","regeneratorAsyncIterator","regeneratorAsyncGen","isNaN","regeneratorAsync","require$$2","require$$3","require$$4","regeneratorKeys","require$$5","regeneratorValues","require$$6","_regeneratorRuntime","throw","return","break","continue","stop","catch","abrupt","delegateYield","resultName","finish","_t","prev","sent","wrap","reverse","isGeneratorFunction","mark","awrap","async","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","props$1l","offsetBottom","offsetTop","onFixedChange","_Affix","affixWrapRef","affixRef","placeholderEL","ticking","isBind","scrollContainer","affixStyle","rAFId","_affixWrapRef$value$g","_affixWrapRef$value","fixedTop","wrapToTop","wrapWidth","wrapHeight","containerTop","calcTop","calcBottom","Window","affixed","placeholderStatus","removeAttribute","bindScroll","_callee","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","padding","margin","yPosition","createFakeElement","actions_copy","HTMLInputElement","actions_default","_options$action","action","hasAttribute","clipboard_typeof","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","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","nodeList","is","delegate","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$1k","affixProps","bounds","cursor","targetOffset","AnchorInjectionKey","_Anchor","anchorRef","links","handleScrollLock","activeLineStyle","ANCHOR_LINE_CLASSNAME","ANCHOR_LINE_CURSOR_CLASSNAME","utilsGetScrollContainer","filters","link","getAnchorTarget","cur","setCurrentActiveLink","matcher","getElementById","_props2$onChange","updateActiveLine","_x","_anchorRef$value","handleScrollTo","_callee2","_context2","_x2","_callee3","_context3","watchEffect","registerLink","unregisterLink","each","handleLinkClick","renderCursor","localProps","customScroll","_AnchorItem","tAnchor","CLASSNAME_PREFIX","register","unregister","titleSlot","titleVal","renderTitle","titleAttr","wrapperClass","titleClass","THEME_LIST","DISTANCE","PLACEMENT_OFFSET","center","display","flexDirection","alignItems","PLACEMENT_LIST","props$1i","closeBtn","onClose","onCloseBtnClick","onDurationEnd","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","exposed","MessagePlugin","ins","find","_mg$$","showThemeMessage","extraApi","promise","closeAll","$message","funcName","props$1h","auto","basePlacements","viewport","popper","variationPlacements","placements","modifierPhases","getNodeName","getWindow","ownerDocument","isElement","isHTMLElement","isShadowRoot","ShadowRoot","applyStyles$1","enabled","phase","state","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","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","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","flip$2","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","_i","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","offset$1","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","preventOverflow$1","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","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","getHTMLElementScroll","visited","modifier","dep","depModifier","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","popupProps","destroyOnClose","hideEmptyPopup","overlayClassName","overlayInnerClassName","overlayInnerStyle","overlayStyle","popperOptions","showArrow","triggerElement","defaultVisible","onOverlayClick","onScroll","onScrollToBottom","onVisibleChange","filterEmpty","vnodes","Text","useElement","newEl","Trigger","forwardRef","vm","nextElementSibling","_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","arrowStyle","env","TEST","assertMouseLeave","onMouseLeave","offs","prefixCls","commonCls","_props2$delay","_delay2$","show","clean","getOverlayStyle","updateOverlayInnerStyle","getArrowStyle","_popperEl$value$offse2","triggerRect","popupRect","startsWith","_popperEl$value$offse","popupWidth","maxPopupOffsetLeft","popupHeight","maxPopupOffsetTop","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","handleOnScroll","_props2$onScroll","_e$target","debounceOnScrollBottom","_props2$onScrollToBot","hidePopup","overlay","_withDirectives","withDirectives","mergeProps","visibility","_vShow","onContentMounted","Popup","_AnchorTarget","_useConfig","FileCopyIcon","TdFileCopyIcon","toCopyText","div","clip","Message","iconClassName","Anchor","AnchorItem","AnchorTarget","props$1g","itemsAfterCollapse","itemsBeforeCollapse","maxItemWidth","maxItems","props$1f","maxWidth","router","props$1e","_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","$router","location","itemClass","textClass","listeners","stopPropagation","textContent","itemContent","textOverflow","valueIsZeroOrUndefined","_Breadcrumb","ChevronRightIcon","TdChevronRightIcon","EllipsisIcon","TdEllipsisIcon","_useBreadcrumbOptions","getChildComponentSlots","breadcrumbOptions","_props$options","breadcrumbItems","currentIndex","option","itemsSlots","getSlotOrProp","slotName","_child$props","_children$slotName","slotContent","useBreadcrumbOptions","ellipsisItems","ellipsisContent","_useEllipsis","getBreadcrumbItems","shouldShowEllipsis","_maxItems$value","currentMaxItems","totalItems","itemsCollapseSum","getDisplayItems","beforeItems","afterItems","getEllipsisItems","sliceItems","isLast","useEllipsis","BreadcrumbItem","Breadcrumb","dropdownItemProps","divider","_DropdownItem","maxColumnWidth","minColumnWidth","isSubmenu","itemRef","dropdownItemClass","handleItemClick","minWidth","props$1d","hideAfterItemClick","maxHeight","panelBottomContent","panelTopContent","_DropdownMenu","dropdownClass","dropdownMenuClass","scrollTopMap","itemHeight","menuRef","isOverMaxHeight","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","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$1c","collapsed","defaultExpanded","expandMutex","expandType","logo","operations","onExpand","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$1b","tabPanelProps","destroyOnHide","draggable","lazy","panel","removable","onRemove","_TabPanel","renderTNodeContent","tabs","isActive","isMount","tabPanelClass","props$1a","addable","dragSort","scrollPosition","onAdd","onDragSort","getDomWidth","TTabNavItem","tabProps","removeBtnClick","onClickNav","navItemClass","TTabNavBar","navs","barRef","navBarClass","navBarStyle","sizePropName","offsetPropName","_props$navs$i","sizeWithUnit","getStyle","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","_resizeObserver","useResize","handleAddTab","_props$onAdd","setActiveTab","$el","_useDragSort","dragged","enterTargets","dragstart","dragend","dragover","dragenter","outline","dragleave","_enterTargets","enterTarget","drop","tabNav","_props$onDragSort","dragIndex","targetIndex","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$19","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","virtualChild","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$18","routerLink","_MenuItem","_menu$collapsed","_onClick$value","_submenu$closeParentP","methods","_router$value","liContent","props$17","_MenuGroup","Menu","HeadMenu","Submenu","MenuItem","MenuGroup","props$16","allowInputOverMax","autoWidth","autofocus","borderless","clearable","inputClass","maxcharacter","maxlength","showClearIconOnEmpty","showLimitNumber","spellCheck","tips","onBlur","onClear","onCompositionend","onCompositionstart","onFocus","onKeydown","onKeypress","onKeyup","onPaste","onValidate","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$15","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$onBlur4","_props$onBlur2","_props$onBlur3","keyEvent","ArrowUp","ArrowDown","onInnerInputChange","_number$match","_number$match2","tmpNumber","tmpMatched","canInputNumber","processedVal","parts","decimalLimit","lastNumber","canSetValue","_InputNumber","RemoveIcon","TdRemoveIcon","ChevronDownIcon","TdChevronDownIcon","ChevronUpIcon","TdChevronUpIcon","reduceIcon","addIcon","TInput","InputNumber","props$14","allowInput","collapsedItems","defaultInputValue","minCollapsedNum","multiple","defaultPopupVisible","reserveKeyword","tagInputProps","tagProps","valueDisplay","onInputChange","onPopupVisibleChange","onTagChange","props$13","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","ret","_monochromatic","toHsv","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","random","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","parms","level","toUpperCase","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","props$12","closable","_Tag","tagGlobalConfig","tagClass","tagStyle","getTagColorStyle","textStyle","_tinycolor$toRgb","borderColor","getCloseIcon","tagContent","props$11","defaultChecked","checkedProps","uncheckedProps","_CheckTag","innerChecked","setInnerChecked","checkTagProps","keyboardEventListener","_e$key","onCheckboxFocus","onCheckboxBlur","Tag","props$10","_CheckTagGroup","checkTagGroupClasses","onCheckTagChange","getTagContent","CheckTag","CheckTagGroup","_TagInput","NAME_CLASS","CLEAR_CLASS","BREAK_LINE_CLASS","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","scrollToRight","_tagInputRef$value","scrollToLeft","scrollToRightOnEnter","scrollToLeftOnLeave","useTagScroll","_useTagList","_tagValue","setTagValue","tagValue","oldInputValue","_onRemove$value","clearAll","onInnerEnter","valueStr","isLimitExceeded","onInputBackspaceKeyUp","onInputBackspaceKeyDown","isDelete","_onRemove$value2","renderLabel","displayNode","newList","_getDragProps$value","more","collapsedTags","collapsedSelectedItems","useTagList","tagInputPlaceholder","_tagValue$value","showClearIcon","_tagValue$value2","onInputEnter","_context$e","_context$e$preventDef","onInputCompositionstart","_inputProps$value","_inputProps$value$onC","onInputCompositionend","_inputProps$value2","_inputProps$value2$on","onClearClick","_props2$onClear","onMouseEnter","onInnerFocus","_props2$onFocus","onInnerBlur","_props2$onBlur","onInnerChange","scrollElementClass","_inputProps$value3","_tagValue$value3","suffixIconNode","prefixIconNode","suffixClass","TagInput","DEFAULT_KEYS","useOverlayInnerStyle","innerPopupVisible","disable","matchWidthFunc","popupElement","SCROLLBAR_WIDTH","otherOverlayInnerStyle","getAutoWidthPopupStyleWidth","_popupProps$value","tOverlayInnerStyle","_popupProps$value2","onInnerPopupVisibleChange","_props$onPopupVisible","newVisible","COMMON_PROPERTIES","useSingle","_props$defaultInputVa","propsInputValue","isSingleFocus","setInputValue","commonInputProps","onInnerClear","_context2$e","renderPrefixContent","singleValueDisplay","_props$valueDisplayOp","valueDisplayOptions","useInputDisplay","renderInputDisplay","displayedValue","_props$valueDisplayOp2","_props$valueDisplayOp3","renderPlaceholder","_props$valueDisplayOp4","_props$valueDisplayOp5","usePlaceholder","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$$","checkAll","props$_","lazyLoad","CheckboxGroupInjectionKey","_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$Z","_Group$1","optionList","intersectionLen","optionItems","onCheckAllChange","_getAllCheckboxValue","checkAllVal","uncheckAllVal","getAllCheckboxValue","currentValue","_props2$options","_optionList$value","Checkbox","nodes","getOptionListBySlots","role","CheckboxGroup","_Group","getSingleContent","isRemote","searchDisplayOptions","optionsMap","_searchDisplayOptions","getNewMultipleValue","optionValue","valueIndex","isCheck","selectInjectKey","_Option","createAble","trs","scrollType","isVirtual","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$Y","_OptionGroup","_props2$label","props$X","creatable","selectInputProps","valueType","onCreate","onSearch","usePanelVirtualScroll","_props$scroll3","_props$scroll4","_props$scroll5","_props$scroll6","_props$scroll7","_props$scroll","_props$options$value","_props$scroll2","_ref$fixedHeight","fixedHeight","_ref$lineHeight","lineHeight","_ref$bufferSize","_ref$threshold","cachedHeight","cachedScrollY","updateId","visibleCount","beforeScrollTop","$index","maxScrollY","average","firstRow","calculateScrollY","_anchorDom$getBoundin","anchorDom","anchorDomHeight","_state$visibleData","tr","scrollY","_state$visibleData$","refreshContainer","ob","intersectionRatio","_container$value2","useVirtualScroll","popupContentRef","_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","shouldOmitContent","Option","dropdownInnerSize","renderPanel","extraStyle","_Select","innerInputValue","orgValue","setOrgValue","selectPanelRef","_props2$keys","_props2$keys2","_props2$keys3","isObjectType","_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","searchOptions","currentSelectedOptions","searchSelectedOptions","checkAllOption","exactMatch","fuzzyMatch","useSelectOptions","getOption","_useDefaultValue4","setInnerPopupVisible","placeholderText","isRemoteSearch","currentSelectOptions","displayText","resLabel","getMultipleContent","valueDisplayParams","removeTag","displayValue","isFilterable","_props2$onRemove3","_ref4$trigger","_props2$onRemove2","currentSelected","getCurrentSelectedOptions","_currentSelected$len","_props2$onCreate","optionalList","selectedValue","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","renderValueDisplay","_props2$selectInputPr","_innerValue$value$sli","_innerValue$value$sli2","_ref7","_props2$tagProps","_props2$tagProps$onCl","renderTag","_selectPanelRef$value3","firstSelectedNode","elementBottomHeight","updateValue","_ref8","restPopupProps","onkeydown","_ref9","_ref0","_props2$onEnter","_ref1","_props2$onBlur2","_ref10","picker","Select","props$W","append","prepend","_InputAdornment","renderAddon","addon","addonNode","isContentNode","defaultSlot","InputAdornment","props$V","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$U","showCurrent","_PaginationMini","RoundIcon","TdRoundIcon","titleConfig","disabledConfig","renderWithTooltip","TTooltip","Pagination","PaginationMini","props$T","sequence","stepItemProps","_StepItem","stepsState","stepsProps","CheckIcon","TdCheckIcon","canClick","onStepClick","setCurrent","statusClass","baseClass","iconClass","defaultIcon","_Steps","indexMap","handleStatus","matchIndex","getChildComponentByName","getOptions","stepIndex","StepItem","Steps","props$S","onHover","stickyItemProps","_StickyItem","baseProps","TdStickyToolProps","basePopupProps","baseWidth","popupPlacement","selfWidth","handleClickItem","handleHoverItem","_StickyTool","getListBySlots","_props2$offset","handleHover","_props2$onHover","getList","StickyItem","StickyTool","props$R","visibleHeight","_BackTop","BacktopIcon","TdBackTopIcon","getContainer","scrollDOM","onscroll","_scrollDOM","defaultContent","_createTextVNode","positionStyle","insetInlineEnd","insetBlockEnd","targetNode","getBackTo","BackTop","props$Q","highlightKeyword","textareaProps","onSelect","_HighlightOption","keyword","_content$match","regExp","splitKeyword","_words$value","AutoCompleteOptionList","sizeClassNames","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$O","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","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","cascaderClassNames","renderSuffixIcon","_props2$selectInputPr2","_props2$selectInputPr3","_props2$selectInputPr4","_props2$selectInputPr5","_props2$selectInputPr6","_props2$selectInputPr7","_props2$selectInputPr8","_props2$selectInputPr9","_props2$selectInputPr0","_props2$selectInputPr1","_props2$selectInputPr10","closeIconClickEffect","_CascaderPanel","Cascader","CascaderPanel","isoWeeksInYear","isLeapYear","day","dayjs","TIME_FORMAT","extractTimeFormat","parseToDayjs","timeOfDay","dateText","yearStr","weekStr","weekFormatStr","firstWeek","weekCounts","nextWeek","quarterStr","quarterFormatStr","firstQuarter","nextQuarter","isValidDate","formatDate","newDate","targetFormat","_ref3$dayjsLocale","autoSwap","dayjsDateList","da","formatRange","dayJsDate","formatSingle","calcFormatTime","timeFormat","timeArr","timeFormatArr","formatTime","defaultTime","_result","getDefaultFormat","_ref4$mode","enableTimePicker","initYearMonthTime","_ref5$mode","_ref5$timeFormat","defaultYearMonthTime","useSingleValue","_value$value","_value$value2","_value$value3","_value$value4","formatRef","cacheValue","_extends","isBetween","weeks","weekYear","longDateFormat","localeData","isoWeekYear","isoWeek","offsetName","zone","A","afternoon","milliseconds","SS","SSS","ss","H","HH","DD","Do","MMM","MMMM","Y","YY","YYYY","Z","ZZ","regex","parser","hours","customParseFormat","parseTwoDigitYear","minutes","seconds","getDaysInMonth","isSameYear","date1","date2","isSameQuarter","isSameMonth","isSameWeek","isSameDate","compareAsc","d1","outOfRanges","getToday","subtractMonth","addMonth","getWeeks","_ref5$showWeekOfYear","showWeekOfYear","_ref5$disableDate","disableDate","minDate","maxDate","_ref5$dayjsLocale","_ref5$cancelRangeSele","cancelRangeSelectLimit","prependDay","getFirstDayOfMonth","appendDay","getLastDayOfMonth","maxDays","daysArr","currentDay","firstDayOfMonth","lastDayOfMonth","dayjsObj","setDate","additional","dataList","flagActive","_objectDestructuringEmpty","hoverStart","hoverEnd","_args$type","_args$isRange","isRange","_args$multiple","_item","isStart","isHoverStart","isEnd","isHoverEnd","highlight","startOfRange","endOfRange","hoverHighlight","hoverStartOfRange","hoverEndOfRange","_value$some","extractTimeObj","matchedMeridiem","_matchedTimeStr$0$spl2","_matchedTimeStr$0$spl3","_matchedTimeStr$0$spl4","_matchedTimeStr$0$spl5","_matchedTimeStr$0$spl6","weekOfYear","quarterOfYear","advancedFormat","dayJsIsBetween","datePickerProps","needConfirm","presets","presetsPlacement","timePickerProps","onConfirm","onPick","onPresetClick","TDateHeader","internalYear","partial","onMonthChange","onYearChange","onJumperClick","yearOptions","initOptions","showMonthPicker","nearestYear","_yearOptions$value$fi","extraYear","monthOptions","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","valueDayjs","_props$onCellMouseLea","col","AM","PM","MERIDIEM_LIST","TIME_PICKER_EMPTY","DEFAULT_STEPS","EPickerCols","TWELVE_HOUR_FORMAT","props$N","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","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","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$M","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","_innerValue$value7","_ref12","_props2$onClick2","_ref13","_innerValue$value9","_ref14","_innerValue$value0","_ref15","_innerValue$value1","_ref16","_innerValue$value10","props$L","_RangeInputPopup","RangeInput","RangeInputPopup","TRangePanel","hoverValue","hidePreselection","startTableData","endTableData","dateCorrection","partialIndex","onlyYearSelect","_DateRangePicker","_useRange","isMountedRef","_useRangeValue","useRange","notValidIndex","nextIndex","correctedDate","nextInputValue","changedInputValue","currentDate","nextTime","_initYearMonthTime","defaultYear","defaultMonth","confirmValueChange","_props2$onPresetClick","nextVal","_year$value","_year$value2","_year$value3","_year$value4","TRangeInputPopup","dateRangePickerPanelProps","_DateRangePickerPanel","DatePicker","DatePickerPanel","DateRangePicker","DateRangePickerPanel","props$K","labelAlign","labelWidth","preventSubmitDefault","requiredMarkPosition","resetType","rules","scrollToFirstError","showErrorMessage","statusIcon","submitWithWarningMessage","onReset","onSubmit","defaults","_merge","default_date_options","isValidFormat","strictMode","formatDelimiter","delimiters","delimiter","dateDelimiter","dateAndFormat","zippedArr","zip","dateObj","_n","F","_step$value","dateWord","formatWord","fullYear","parsedYear","getUTCDate","isFinite","_iterableToArrayLimit","isRegExp","_assertString","encodeURI","default_fqdn_options","allow_trailing_dot","allow_wildcard","tld","require_tld","allow_numeric_tld","ignore_max_length","allow_underscores","_interopRequireDefault","isIP","ipAddress","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","isValueEmpty","default_url_options","validate_length","max_allowed_length","allow_fragments","_includesString","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","getFormItemClassName","_Form","formRef","CLASS_NAMES","formClass","FORM_ITEM_CLASS_PREFIX","getFirstError","firstKey","tmpClassName","resArr","getElementsByClassName","scrollIntoView","needValidate","fields","formatValidateResult","validateResultList","_props2$onValidate","showErrorMessage2","firstError","validateOnly","_ref6$trigger","submitParams","submit","resetParams","clearValidate","resetHandler","setValidateMessage","validateMessage","_props2$onSubmit","_props2$onReset","_resetParams$value","resetField","_resetParams$value2","props$J","for","_FormItem","formItemClassPrefix","needRequiredMark","_props2$requiredMark","isRequired","innerRules","_form$requiredMarkPos","hasLabel","hasColon","FROM_LABEL","getDefaultIcon","errorList","verifyStatus","SUCCESS","errorClasses","contentClasses","successList","TO_BE_VALIDATED","resetValidating","needResetField","getEmptyValue","emptyValue","lodashGet","_args","lodashSet","initialValue","errorMessages","_form$errorMessage","_props2$rules","lastIndexOf","pRuleName","analysisValidateResult","_result$rules","resultList","allowSetValue","vars","_vars$prop$trim","validateHandler","_yield$analysisValida","innerSuccessList","innerErrorList","freeShowErrorMessage","FAIL","_callee4","_yield$analysisValida2","_context4","_callee5","_context5","helpNode","extraNode","_list$","getExtraNode","tmpTips","tmpClasses","_callee6","_context6","Form","FormItem","props$I","allowUncheck","RadioGroupInjectionKey","RadioButtonInjectionKey","_Radio","radioChecked","radioGroup","onLabelClick","keydown","keyup","keypresss","onKeypresss","wrapperAttrs","groupDisabled","groupReadonly","radioButton","radioBtnName","props$H","_RadioButton","radioProps","Radio","defaultWindow","useMutationObserver","_options$window","mutationOptions","isSupported","cleanup","stopWatch","elRef","plain","unref","_plain$$el","getCurrentScope","onScopeDispose","radioGroupRef","updateInnerValue","checkRadioInGroup","inputNode","true","false","useKeyboard","observerReturn","checkedClassName","barStyle","calcBarStyle","disableAnimation","checkedRadio","transitionProperty","cloneNode","defaultCheckedRadio","calcDefaultBarStyle","checkedRadioLabel","mutations","_observerReturn","radioGroupName","renderBlock","groupClass","RadioComponent","TRadioButton","TRadio","RadioGroup","RadioButton","props$G","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","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$F","beforeChange","customValue","_Switch","setSwitchVal","inactiveValue","handleToggle","toggle","nodeClasses","switchContent","loadingContent","Switch","props$E","autosize","calcTextareaHeight","_hiddenTextarea","minRows","maxRows","_calculateNodeSize","paddingSize","borderSize","boxSizing","sizingStyle","calculateNodeSize","isBorderbox","singleRowHeight","calcHeight","rows","rowsHeight","minHeight","_Textarea","TEXTAREA_TIPS_CLASS","TEXTAREA_LIMIT","textareaStyle","refTextareaElem","isComposing","adjustTextareaHeight","_refTextareaElem$valu3","_props2$autosize","stringInfo","textareaElem","eventDeal","_props2$eventName","eventName","emitKeyDown","emitKeyUp","emitKeypress","textareaClasses","characterNumber","characterInfo","_refTextareaElem$valu","_refTextareaElem$valu2","_String","textTips","limitText","Textarea","SOURCE","TARGET","getTransferListOption","getDataValues","filterValues","_ref$isTreeMode","isTreeMode","_ref$include","_ref$remainValue","remainValue","isInclude","childResult","getTransferData","transferDataItem","_transferDataItem$dis","labelKey","valueKey","disabledKey","isTreeNodeValid","needMatch","_data$children","cloneTreeWithFilter","sourceTree","targetTree","newNode","isAllNodeValid","filterTransferData","getLefCount","Search","SearchIcon","TdSearchIcon","changeCtx","checkboxProps","dataSource","listType","checkedValue","transferItem","footer","onPageChange","onDataChange","TransferList","filterValue","currentPage","filteredData","filteredTreeData","pageTotal","curPageData","pageData","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$C","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$B","_TimeRangePicker","currentPanelIdx","handleTimeChange","_currentValue$value$","_currentValue$value$2","handleOnPick","_currentValue$value$3","_currentValue$value$4","_previousValue$","_previousValue$2","previousValue","_props2$onInput","autoSwapTime","_currentValue$value","endTime","startDayjs","endDayjs","pickValue","pickedRangeValue","_currentValue$value$5","_currentValue$value$6","TimePicker","TimeRangePicker","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","isRightClick","markName","markValue","useTreeEvents","nodesEmpty","cacheMap","refreshVisibleNodes","hasVisibleNode","refreshVirtualNodes","renderTreeNodes","treeNodeViews","nodeUniqueId","useTreeScroll","isScrolling","scrollStopTimer","srcElement","_props$onScroll","emitScrollEvent","_allNodes$value","formatCSSUnit","unit","props$A","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","$slots","cname","emptyNode","emptyContent","treeNodeList","$props","TransitionGroup","topValue","placeholderStyles","placeholderEl","Tree","tdWithInstall","props$z","rComma","rValue","rColor","rColorStop","rColorStopList","rLineCapture","_TreeSelect","treeRef","nodeInfo","treeKey","treeSelectValue","setTreeSelectValue","setInnerInputValue","setTreeParentsExpanded","realValue","realChildren","_currentTargetValue","currentTargetValue","findPath","parentPath","newPath","findParentValues","treeParents","flatMap","changeNodeInfo","treeRerender","filterByText","realLabel","_nodeInfo$value","popupClass","isObjectValue","multiLimitDisabled","_treeSelectValue$valu","valueParam","treeNodeChange","getNodeItem","treeNodeActive","treeNodeExpand","treeNodeLoad","inputChange","_props2$onSearch2","tagChange","getMultipleNodeInfo","getSingleNodeInfo","getTreeNode","TreeSelect","props$y","colorModes","enableAlpha","enableMultipleGradient","recentColors","defaultRecentColors","showPrimaryColorPreview","swatchColors","onPaletteBarChange","onRecentColorsChange","REG_CMYK_STRING","cmykInputToColor","_cmyk2rgb","cmyk2rgb","COLOR_MODES","monochrome","DEFAULT_LINEAR_GRADIENT","DEFAULT_SYSTEM_SWATCH_COLORS","FORMATS","ALPHA_FORMAT_MAP","HEX","RGB","HSL","HSV","COLOR_FORMAT_INPUTS","CMYK","CSS","combineRegExp","regexpList","flags","REGEXP_LIB","gradientSearch","colorStopSearch","REG_GRADIENT","isGradientColor","sideCornerDegreeMap","parseGradientString","gradientColors","points","degree","regExpLib","matchColorStop","stopResult","matchGradient","original","colorStopList","angle","sideCorner","parseGradient","tinyColor","mathRound","hsv2rgba","states","gradientColors2string","colorsStop","pA","pB","genGradientPoint","Color","colors","selectedId","originColor","isGradient","colorHsv","updateCurrentGradientColor","colorInput","_points$","_this$gradientSelecte","_this$gradientStates$","gradientStates","linearGradient","gradientSelectedPoint","updateStates","_hsv2rgba","_hsv2rgba2","_this$getHsva","getHsva","_this$getHsva2","_this$getHsla","getHsla","_this$getHsla2","_this$getCmyk","getCmyk","gradientDegree","_this$gradientSelecte2","gradientSelectedId","cmyk","RGBA","HSLA","HSVA","HEX8","finalFormat","getFormatsColorMap","_hsv2rgba3","_this$getRgba","getRgba","_rgb2cmyk","computedC","computedM","computedY","minCMY","rgb2cmyk","_rgb2cmyk2","_hsv2hsva","_hsv2hsla","_Color","_defineProperty$2","isGradientColor1","isGradientColor2","gradientStr1","gradientStr2","COLOR_OBJECT_OUTPUT_KEYS","getColorObject","colorObject","defaultsOptions","coordinate","_Draggable_brand","WeakSet","Draggable","_classPrivateMethodInitSpec","handles","_assertClassBrand","_dragStart","_drag","_dragEnd","_getCoordinate","getColorFormatMap","getColorFormatInputs","configs","useBaseClassName","baseClassName","props$x","FormatInputs","lastModelValue","updateModelValue","alpha","throttleUpdate","_props2$color","saturation","object2color","FormatPanel","formatModel","handleModeChange","newProps","ColorSlider","railStyle","refPanel","refThumb","dragInstance","panelRect","handleDrag","isEnded","paddingStyle","AlphaSlider","isDragEnd","PanelHeader","onModeChange","modeValue","_props2$colorModes","HueSlider","DELETE_KEYS","LinearGradient","statusClassNames","refSlider","sliderRect","isMoved","payload","addUsedColor","handleDegreeChange","handleSelectedIdChange","handleColorsChange","handleMove","percentLeft","updateActiveThumbLeft","handleEnd","handleKeyup","toLocaleLowerCase","handleThumbBarClick","newPoint","_props$color","thumbBackground","handleStart","TInputNumber","SaturationPanel","_getSaturationAndValu","getSaturationAndValueByCoordinate","panelBackground","SwatchesPanel","editable","onSetColor","handleAddColor","DeleteIcon","TdDeleteIcon","visiblePopConfirm","isEqualCurrentColor","compare","selectedColorIndex","handleRemoveColor","selectedIndex","swatchesClass","ColorPanel","innerRecentColors","setInnerRecentColors","getModeByColor","defaultEmptyColor","initColorFormat","addRecentlyUsedColor","currentColor","handleRecentlyUsedColorsChange","emitColorChange","getFormattedColor","newMode","isGradientMode","handleSatAndValueChange","_color$value","sat","changeTrigger","handleHueChange","_props2$onPaletteBarC","handleAlphaChange","handleGradientChange","handleSetColor","onlySupportGradient","showUsedColors","systemColors","showSystemColors","renderSwatches","_ColorPickerPanel","pickBy","DefaultTrigger","onTriggerChange","onTriggerClear","_props$onTriggerClear","inputSlots","_ColorPicker","refTrigger","renderPopupContent","popProps","TPopup","ColorPickerPanel","ColorPicker","props$w","alt","hideOnLoadFailed","imageProps","onError","props$v","fallback","fit","gallery","overlayContent","overlayTrigger","referrerpolicy","src","srcset","_Image","divRef","imgRef","_imgRef$value","complete","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$u","cascading","collapseAvatar","_AvatarGroup","AVATAR_NAME","renderEllipsisAvatar","getEllipsisContent","outAvatar","Avatar","AvatarGroup","props$t","dot","maxCount","showZero","_Badge","displayCount","isHidden","badgeClassNames","inlineStyle","_getOffset","xOffset","yOffset","Badge","props$s","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$r","bodyClassName","bodyStyle","cover","description","footerClassName","footerStyle","header","headerClassName","headerStyle","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$q","author","datetime","reply","_Comment","showAuthorDatetime","replyDom","quoteDom","avatarDom","authorDatetimeDom","contentDom","flatChildren","renderActions","props$p","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","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$o","cancelBtn","confirmBtn","confirmLoading","confirmOnEnter","dialogClassName","dialogStyle","showInAttachedElement","onBeforeClose","onBeforeOpen","onCancel","onClosed","onEscKeydown","onOpened","useAction","getButtonByProps","defaultButtonProps","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","closeClassName","_Dialog","dialogCardRef","_props2$onCancel","emitCloseEvent","styleEl","isModal","computedVisible","maskClass","positionClass","topStyle","isMounted","destroySelf","_styleEl$value$parent","_styleEl$value$parent2","_document$activeEleme","_dialogCardRef$value","addKeyboardEvent","MOUSEDOWN_TARGET","MOUSEUP_TARGET","keyboardEvent","keyboardEnterEvent","_props2$onConfirm2","_props2$onEscKeydown","_props2$closeOnEscKey","stopImmediatePropagation","_useSameTarget","_props2$closeOnOverla","_props2$onBeforeOpen","_props2$onOpened","_props2$onBeforeClose","_dialogCardRef$value2","_dialogCardRef$value3","_props2$onClosed","shouldRender","view","otherProps","TDialogCard","renderDialog","ctxStyle","ctxClass","onBeforeEnter","onAfterLeave","createDialog","preClassName","updateClassNameStyle","_wrapper$firstElement","firstElementChild","cssText","dialogOptions","DialogComponent","DialogPlugin","setConfirmLoading","$dialog","Dialog","DialogCard","props$n","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$m","_ListItem","propsContent","propsDefaultContent","propsActionContent","props$l","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$k","_ListItemMeta","renderAvatar","propsTitleContent","propsDescriptionContent","listItemMetaContent","List","ListItem","ListItemMeta","PRO_THEME","CIRCLE_SIZE","CIRCLE_SIZE_PX","CIRCLE_FONT_SIZE_RATIO","STATUS_ICON","props$j","percentage","strokeWidth","trackColor","_Progress","ErrorIcon","TdErrorIcon","CIRCLE_ICONS_MAP","NORMAL_ICONS_MAP","statusStyle","trackBgStyle","circlePathStyle","circleOuterStyle","diameter","diameterValue","SMALL","LARGE","MEDIUM","customSize","rPoints","radius","circleStrokeWidth","circleStyle","defaultWidth","strokeDashArr","perimeter","PI","getIconMap","getLabelContent","labelContentRender","infoIsOut","infoRef","separateClasses","_updateInfoIsOut","infoEl","cx","cy","Progress","props$i","rowCol","ThemeMap","paragraph","tab","article","getColItemStyle","px","_Skeleton","isShow","getColItemClass","renderRowCol","_rowCol","renderCols","_cols","bool","Skeleton","props$h","animationStart","trend","trendPlacement","quartOut","Tween","_ref$duration","onStart","_ref$onUpdate","started","finished","_this$onFinish","elapsed","_this$onStart","delta","interval","setInterval","clearInterval","tick","polyfillStart","normalStart","COLOR_MAP","_Statistic","_props2$animation$val","_props2$animation","ArrowTriangleUpFilledIcon","TDArrowTriangleUpFilledIcon","ArrowTriangleDownFilledIcon","TDArrowTriangleDownFilledIcon","trendIcons","increase","decrease","numberValue","valueFrom","innerDecimalPlaces","_props2$decimalPlaces","_numberValue$value$to","tween","_props2$animation$val2","_props2$animation2","_tween$value","formatValue","minimumFractionDigits","maximumFractionDigits","useGrouping","toLocaleString","getFormatValue","_tween$value2","trendIcon","Statistic","props$g","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","columnVNodeList","cellSpans","spanState","_spanState","_spanState2","tdStyles","normalAttrs","renderTd","columnLength","trListeners","_props","getTrListeners","extendTableProps","TBody","renderExpandedRow","activeRow","hoverRow","tbodyClasses","_data$value","_data$value2","_props$virtualConfig2","getFullRow","tType","fullRowNode","isFixedToLeft","trNodeList","properties","renderData","_props$activeRow","trProps","trNode","onRowMounted","expandedContent","posStyle","useStyle","tableSize","_size$value","tableClasses","tableContentStyles","tableElementStyles","THead","thDraggable","columnResizeParams","theadRef","classnames","theadClasses","colspanSkipMap","processColumns","thBorderMap","thRowspanAndColspan","renderThNodeList","thRow","thStyles","colParams","thCustomClasses","thClassName","isLeftFixedActive","isRightFixedActive","canDragSort","withoutChildren","innerTh","resizeColumnListener","_props$columnResizePa","_props$columnResizePa2","_thList$index","onMousemove","_props$columnResizePa3","_props$columnResizePa4","_parent","getTableNode","TFoot","virtualScroll","renderTFootCell","foot","_props$footData","footerDomList","_props$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","virtualScrollParams","getTFootHeight","_tableElmRef$value$qu","onTableFocus","onTableBlur","onInnerRowClick","_props2$onRowClick","scrollColumnIntoView","thDom","fixedThDom","totalWidth","domRect","_tableData$value","_tableBodyRef$value","_el$children","_params$top","_params$behavior","scrollBy","_props2$allowResizeCo","_affixHeaderRef$value","_props2$footData","_tableFootHeight$valu","_tableFootHeight$valu2","_affixHeaderHeight$va","defaultColWidth","renderColGroup","isAffixHeader","headProps","IEHeaderWrap","barWidth","affixHeaderHeight","_affixHeaderRef$value2","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","_props$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","_props$tFilterValue","defaultFilterIcon","isObjectTrue","isValueExist","_props$onVisibleChang","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","mount","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","toEl","fromEl","extraEventProperties","onName","CustomEvent","createEvent","initEvent","bubbles","cancelable","pullMode","lastPutMode","allEventProperties","dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","_detectDirection","elCSS","elWidth","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","secondChildWidth","gridTemplateColumns","touchingSideChild2","_prepareGroup","toFn","sameGroup","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","nearestEmptyInsertDetectEvent","nearest","emptyInsertThreshold","insideHorizontally","insideVertically","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","preventOnFilter","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","relatedRect","_disableDraggable","_unsilent","_generateId","_nextTick","_cancelNextTick","_getDirection","pointerType","originalTarget","inputs","_saveInputCheckedState","isContentEditable","criteria","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","lastElRect","childContainingRect","spacer","_ghostIsLast","changed","firstElRect","_ghostIsFirst","targetBeforeFirstSwap","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","moveVector","insertion","_showClone","_offMoveEvents","_offUpEvents","save","dropEffect","_globalDragOver","toArray","useAnimation","dst","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","toSortable","changedTouches","onSpill","Revert","Remove","swapDragArrayElement","removeNode","insertNodeAt","fatherNode","refNode","dragCol","isRowDraggable","isRowHandlerDraggable","isColDraggable","getDataPageIndex","_pagination$current","_pagination$pageSize","registerOneLevelColDragEvent","recover","onEnd","_props$onDragSort2","oldElement","newElement","registerColDragEvent","primaryTableCmp","timerA","_element$children","dragContainer","baseOptions","registerRowDragEvent","$refs","setDragSortPrimaryTableRef","setDragSortColumns","_toArray","dragStart","parentSortable","AutoScroll","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","EditableCell","oldCell","errors","onRuleChange","onEditableChange","_props$col$edit","isKeepEditMode","_col$value$edit","edit","keepEditMode","isEdit","defaultEditable","editValue","Edit1Icon","TdEdit1Icon","updateEditedCellValue","isUpdateCurrentRow","editOnListeners","_col$value$edit2","_col$value$edit2$on","editedRow","currentRow","restKeys","newRow","editProps","componentProps","_edit$abortEditOnEven","tmpProps","abortEditOnEvent","isAbortEditOnChange","_edit$abortEditOnEven2","validateEdit","_props$onValidate2","updateAndSaveAbort","outsideAbortEvent","_editOnListeners$valu","_editOnListeners$valu2","_props$onEditableChan","_edit$abortEditOnEven3","isCellEditable","tListeners","onEdited","itemEvent","newRowData","onEditChange","_editProps$value","_editProps$value$onCh","_props$onRuleChange","_editOnListeners$valu3","_editOnListeners$valu4","_col$value$edit4","_col$value$edit3","validateTrigger","documentClickHandler","_e$composedPath","_node2$classList","enterEdit","_props$onEditableChan2","_props$col$edit2","cellValue","_props$onRuleChange2","_col$value$edit6","_errorList$value","_col$value$edit7","_errorList$value2","_col$value$edit5","showEditIcon","Component","tmpEditOnListeners","onEventName","useRowEdit","cellRuleMap","errorListMap","editableKeysMap","getEditableKeysMap","editingCells","editedFormData","getErrorListMapByErrors","errorMap","validateOneRowData","rowRules","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$f","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$e","expandIconPlacement","_Collapse","borderlessClass","collapseValue","setCollapseValue","getUniqId","props$d","destroyOnCollapse","headerRightContent","_CollapsePanel","clickableClass","updateCollapseValue","_inject","disableAll","renderParentTNode","iconRef","panelExpandIcon","handleHeaderRightContentClick","tNodeRender","renderBody","Collapse","CollapsePanel","props$c","isRepeat","lineSpace","movable","moveInterval","watermarkContent","_Watermark","backgroundImage","watermarkRef","watermarkContentRef","gapX","gapY","backgroundRepeat","fontColor","bgImageOptions","injectWaterMark","_ref$fontColor","ratio","canvasWidth","canvasHeight","globalAlpha","markWidth","markHeight","fillStyle","fillRect","contents","_item$isGrayscale","isGrayscale","img","crossOrigin","referrerPolicy","imgData","getImageData","pixels","lightness","putImageData","toDataURL","_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$b","allowHalf","_Rate","activeColor","defaultColor","starValue","setStarValue","displayTexts","RateIcon","iconProps","StarFilledIcon","getStarValue","starMiddle","mouseLeaveHandler","getStarCls","clickHandler","mouseEnterHandler","Rate","props$a","copyable","italic","keyboard","strong","reselectPrevious","rangeCount","ranges","getRangeAt","deselectCurrent","whiteSpace","webkitUserSelect","userSelect","clearData","onCopy","copyKey","prompt","removeRange","props$9","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$8","_Title","_Paragraph","Typography","Title","Paragraph","props$7","bgColor","iconSize","statusRender","onRefresh","appendBits","bb","RangeError","getBit","assert","cond","Mode","modeBits","numBitsCharCount","ver","_Mode","Ecc","formatBits","_Ecc","QrSegment","numChars","bitData","BYTE","digits","isNumeric","NUMERIC","isAlphanumeric","ALPHANUMERIC_CHARSET","ALPHANUMERIC","makeNumeric","makeAlphanumeric","makeBytes","toUtf8ByteArray","assignVal","ECI","NUMERIC_REGEX","ALPHANUMERIC_REGEX","segs","seg","ccbits","numCharCountBits","QrCode","errorCorrectionLevel","dataCodewords","oriMsk","msk","MIN_VERSION","MAX_VERSION","modules","drawFunctionPatterns","allCodewords","addEccAndInterleave","drawCodewords","minPenalty","applyMask","drawFormatBits","penalty","getPenaltyScore","mask","setFunctionModule","drawFinderPattern","alignPatPos","getAlignmentPatternPositions","numAlign","drawAlignmentPattern","drawVersion","rem","bits","dist","xx","ecl","getNumDataCodewords","numBlocks","NUM_ERROR_CORRECTION_BLOCKS","blockEccLen","ECC_CODEWORDS_PER_BLOCK","rawCodewords","getNumRawDataModules","numShortBlocks","shortBlockLen","blocks","rsDiv","reedSolomonComputeDivisor","dat","ecc","reedSolomonComputeRemainder","_i9","vert","runColor","runX","runHistory","PENALTY_N1","finderPenaltyAddHistory","finderPenaltyCountPatterns","PENALTY_N3","finderPenaltyTerminateAndCount","runY","PENALTY_N2","dark","PENALTY_N4","core","currentRunColor","oriCurrentRunLength","currentRunLength","makeSegments","encodeSegments","oriEcl","dataUsedBits","minVersion","maxVersion","boostEcl","dataCapacityBits","usedBits","getTotalBits","_i0","_arr","QUARTILE","HIGH","newEcl","_step5","_iterator5","padByte","reedSolomonMultiply","divisor","_step6","_iterator6","_loop2","factor","coef","ERROR_LEVEL_MAP","LOW","DEFAULT_NEED_MARGIN","generatePath","ops","excavateModules","excavation","isSupportPath2d","Path2D","addPath","_unused","QRCodeSubComponentProps","fgColor","includeMargin","marginSize","imageSettings","QRCodeStatusProps","useQRCode","memoizedQrcode","segments","cs","getModules","needMargin","getMarginSize","cis","cells","numCells","defaultSize","excavate","floorX","floorY","getImageSettings","calculatedImageSettings","QRCodeCanvas","_props$imageSettings","imageRef","canvasRef","imgCrossOrigin","renderQRCode","_calculatedImageSetti","_useQRCode","cellsToDraw","haveImageToRender","naturalHeight","naturalWidth","pixelRatio","rdx","cdx","QRCodeSVG","qrCodeData","_qrCodeData$value","imageNode","_qrCodeData$value2","_qrCodeData$value3","fgPath","QRcodeStatus","_props$locale3","defaultSpin","defaultExpiredNode","_props$locale","_props$locale2","RefreshIcon","defaultScannedNode","defaultNodes","expired","scanned","_QRCode","_useVariables","themeFgColor","themeBgColor","finalBgColor","finalFgColor","_props2$iconSize$heig","_props2$iconSize","_props2$iconSize$widt","_props2$iconSize2","mergedStyle","QRCodeProps","QRCode","props$6","maxLine","_Alert","renderIconTNode","iconType","defaultIcons","iconContent","useIcon","alertRef","descriptionRef","descHeight","renderClose","isUsingClose","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","wrapperStyles","wrapperClasses","_drawerEle$value","modeAndPlacement","justifyContent","handleEscKeydown","clearStyleEl","_styleEl$value","_styleEl$value$remove","_drawerEle$value2","_drawerEle$value2$foc","addStyleElToHead","createStyleEl","updateVisibleState","handleCloseBtnClick","handleWrapperClick","marginValueData","setProperty","removeProperty","headerContent","createDrawer","updateStyle","drawerOptions","_drawerOptions$value","DrawerComponent","drawerComponent","DrawerPlugin","$drawer","Drawer","props$4","counter","hideCounter","hidePrev","hideSkip","highlightPadding","onNextStepClick","onPrevStepClick","onSkip","scrollToParentVisibleArea","excludeStaticParent","overflowRegex","scrollToElm","winHeight","doc","getWindowSize","_Guide","LOCK_CLASS","overlayLayerRef","highlightLayerRef","referenceLayerRef","currentHighlightLayerElm","dialogWrapperRef","dialogTooltipRef","popupTooltipRef","stepsTotal","currentStepInfo","isPopup","getCurrentCrossProps","currentElmIsFixed","_currentStepInfo$valu","currentCustomHighlightContent","highlightContent","hWithParams","showCustomHighlightContent","newH","setHighlightLayerPosition","highlightLayer","isReference","_getRelativePosition","relativeElm","_getWindowScroll","_elm$getBoundingClien","elmTop","elmLeft","_relativeElm$getBound","relElmTop","relElmLeft","relativeElmPosition","getRelativePosition","_currentHighlightLaye","_highlightLayerRef$va","showPopupGuide","_popupTooltipRef$valu","_process","NODE_ENV","getTargetElm","destroyTooltipElm","_referenceLayerRef$va","destroyDialogTooltipElm","_dialogTooltipRef$val","_dialogWrapperRef$val","showGuide","handleSkip","_props2$onSkip","handlePrev","_props2$onPrevStepCli","handleNext","_props2$onNextStepCli","handleFinish","_props2$onFinish","initGuide","_highlightLayerRef$va2","_overlayLayerRef$valu","renderCounter","popupSlotCounter","popupDefaultCounter","renderAction","_getCurrentCrossProps","_getCurrentCrossProps2","_getCurrentCrossProps3","_props2$finishButtonP","buttonSize","renderTooltipBody","functionTitle","slotTitle","descBody","bodyRender","footerClasses","renderPopupGuide","_currentStepInfo$valu2","contentProps","innerClassName","stepOverlayClass","renderDialogGuide","dialogClasses","highlightClass","Guide","props$3","keyframes","_Notification","notificationRef","NotificationList","notificationList","notificationStyles","Notification","seed","showThemeNotification","hackOptions","attachEl","tmpInstance","NotificationPlugin","_ins$component$expose","notify","_notify$$","NotificationFunction","$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","customList","_locale$value3","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","existFiles","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","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.27.6/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/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/_baseInRange.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/inRange.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/max.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/min.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/uniqBy.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqueId.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/xorWith.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseXor.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../../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","../../shared/utils/dom.ts","../../shared/utils/withInstall.ts","../../shared/utils/render-tnode.ts","../../shared/hooks/slot/index.ts","../../common/js/utils/general.ts","../../shared/hooks/tnode/index.ts","../../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","../../common/js/global-config/t.ts","../../components/config-provider/hooks/useConfig.ts","../../shared/hooks/useConfig/index.ts","../../shared/hooks/useCommonClassName/index.ts","../../shared/hooks/useDefaultValue/index.ts","../../shared/hooks/useDestroyOnClose/index.ts","../../shared/hooks/useDisabled/index.ts","../../shared/hooks/useDragSort/index.ts","../../common/js/utils/observe.ts","../../shared/hooks/useGlobalIcon/index.ts","../../common/js/log/log.ts","../../common/js/upload/utils.ts","../../shared/hooks/useImagePreviewUrl/index.ts","../../shared/hooks/useKeepAnimation/index.ts","../../shared/hooks/useListener/index.ts","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/createClass.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../shared/hooks/usePopupManager/index.ts","../../shared/hooks/useReadonly/index.ts","../../shared/hooks/useResizeObserver/index.ts","../../common/js/utils/setStyle.ts","../../shared/hooks/useRipple/index.ts","../../shared/hooks/useTeleport/index.ts","../../shared/hooks/useVModel/index.ts","../../shared/hooks/useVirtualScrollNew/index.ts","../../shared/hooks/useMutationObservable/index.ts","../../common/js/common.ts","../../common/js/utils/getColorTokenColor.ts","../../shared/hooks/useVariables/index.ts","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../common/js/utils/helper.ts","../../components/loading/icon/gradient.tsx","../../common/js/loading/circle-adapter.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/loading/index.ts","../../components/button/props.ts","../../components/button/button.tsx","../../components/button/index.ts","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/_chunks/dep-931ef437.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/utils/render-fn.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/utils/config-context.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/utils/use-size-props.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/utils/use-common-classname.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/add-rectangle.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/add.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/arrow-triangle-down-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/arrow-triangle-up-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/backtop.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/browse-off.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/browse.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/calendar.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/caret-right-small.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/check-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/check.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-down.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-left-double.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-left.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-right-circle.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-right-double.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-right.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/chevron-up.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/close-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/close.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/copy.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/delete.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/download.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/edit-1.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/ellipsis.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/error-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/error.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/file-copy.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/file-excel.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/file-pdf.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/file-powerpoint.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/file-word.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/file.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/filter.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/help-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/image-error.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/image.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/info-circle-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/minus-rectangle.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/mirror.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/page-first.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/page-last.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/refresh.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/remove.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/rotation.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/round.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/search.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/setting.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/star-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/time-filled.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/time.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/upload.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/video.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/zoom-in.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/components/zoom-out.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/utils/check-url-and-load.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.3_/node_modules/tdesign-icons-vue-next/esm/svg-sprite/props/props.js","../../../node_modules/.pnpm/tdesign-icons-vue-next@0.3.7_vue@3.3.9_typescript@5.8.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/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/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.27.6/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/OverloadYield.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorDefine.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regenerator.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorAsync.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorKeys.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/typeof.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorValues.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../../../node_modules/.pnpm/@babel+runtime@7.27.6/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/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/popup/props.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","../../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/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","../../shared/hooks/useCollapseAnimation/index.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/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","../../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","../../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","../../shared/hooks/useVirtualScroll/index.ts","../../components/select/components/select-panel.tsx","../../components/select/select.tsx","../../components/select/hooks/useSelectOptions.ts","../../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/components/highlight-option.tsx","../../components/auto-complete/components/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","../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/customParseFormat.js","../../common/js/date-picker/format.ts","../../components/date-picker/hooks/useSingleValue.tsx","../../../node_modules/.pnpm/@babel+runtime@7.27.6/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","../../common/js/date-picker/utils.ts","../../../node_modules/.pnpm/@babel+runtime@7.27.6/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/utils/index.ts","../../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/DateRangePicker.tsx","../../components/date-picker/date-range-picker-panel-props.ts","../../components/date-picker/DateRangePickerPanel.tsx","../../components/date-picker/index.ts","../../components/form/props.ts","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/merge.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isDate.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/assertString.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/checkHost.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isByteLength.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isFQDN.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isIP.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isEmail.js","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/util/includesString.js","../../components/form/utils/form-model.ts","../../../node_modules/.pnpm/validator@13.15.15/node_modules/validator/lib/isURL.js","../../components/form/utils/form-item.ts","../../components/form/form.tsx","../../components/form/form-item-props.ts","../../components/form/form-item.tsx","../../common/js/utils/stringTemplate.ts","../../components/form/index.ts","../../components/radio/props.ts","../../components/radio/consts/index.ts","../../components/radio/radio.tsx","../../components/radio/radio-group-props.ts","../../components/radio/radio-button.tsx","../../components/watermark/hooks/index.ts","../../components/radio/group.tsx","../../components/radio/hooks/useKeyboard.ts","../../components/radio/index.ts","../../components/slider/props.ts","../../components/slider/utils/index.ts","../../components/slider/hooks/useSliderTooltip.tsx","../../components/slider/consts/index.ts","../../components/slider/slider-button.tsx","../../components/slider/slider-mark.tsx","../../components/slider/hooks/useSliderInput.tsx","../../common/js/utils/calcTextareaHeight.ts","../../components/slider/slider.tsx","../../components/slider/hooks/useSliderMark.tsx","../../components/slider/index.ts","../../components/switch/props.ts","../../components/switch/switch.tsx","../../components/switch/index.ts","../../components/textarea/props.ts","../../components/textarea/textarea.tsx","../../components/textarea/index.ts","../../components/transfer/utils/index.ts","../../components/transfer/components/transfer-search.tsx","../../components/transfer/components/transfer-list.tsx","../../components/transfer/hooks/useDragSort.ts","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/filter.js","../../components/transfer/props.ts","../../components/transfer/components/transfer-operations.tsx","../../components/transfer/transfer.tsx","../../components/transfer/index.ts","../../components/time-picker/time-picker.tsx","../../components/time-picker/time-range-picker-props.ts","../../components/time-picker/time-range-picker.tsx","../../components/time-picker/index.ts","../../components/tree/utils/adapt.ts","../../components/tree/hooks/useDraggable.ts","../../components/tree/utils/index.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","../../shared/hooks/useLazyLoad/index.ts","../../components/tree/tree-item.tsx","../../components/tree/hooks/useItemState.ts","../../components/tree/hooks/useTreeNodes.tsx","../../components/tree/hooks/useTreeEvents.ts","../../components/tree/hooks/useTreeScroll.ts","../../components/tree/hooks/useTreeStyles.ts","../../components/tree/props.ts","../../components/tree/tree.tsx","../../components/tree/hooks/useTreeState.ts","../../components/tree/hooks/useTreeStore.ts","../../components/tree/hooks/useDragHandle.ts","../../components/tree/index.ts","../../components/tree-select/props.ts","../../components/tree-select/tree-select.tsx","../../common/js/color-picker/gradient.ts","../../common/js/tree-select/utils.ts","../../components/tree-select/index.ts","../../components/color-picker/color-picker-panel-props.ts","../../common/js/color-picker/cmyk.ts","../../common/js/color-picker/constants.ts","../../common/js/color-picker/color.ts","../../common/js/color-picker/draggable.ts","../../common/js/color-picker/format.ts","../../components/color-picker/hooks/index.ts","../../components/color-picker/props.ts","../../components/color-picker/components/format/inputs.tsx","../../components/color-picker/components/format/index.tsx","../../components/color-picker/components/panel/base-props.ts","../../components/color-picker/components/panel/slider.tsx","../../components/color-picker/components/panel/alpha.tsx","../../components/color-picker/components/panel/header.tsx","../../components/color-picker/components/panel/hue.tsx","../../components/color-picker/components/panel/linear-gradient.tsx","../../components/color-picker/components/panel/saturation.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/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/components/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/index.ts","../../components/table/hooks/useRowspanAndColspan.ts","../../components/table/components/tr.tsx","../../components/table/hooks/useLazyLoad.ts","../../components/table/components/tbody.tsx","../../components/table/hooks/useStyle.ts","../../components/table/components/thead.tsx","../../components/table/components/tfoot.tsx","../../components/table/hooks/useRowHighlight.ts","../../components/table/base-table.tsx","../../shared/hooks/useElementLazyRender/index.ts","../../components/table/hooks/useHoverKeyboardEvent.ts","../../components/table/primary-table-props.ts","../../components/table/components/column-checkbox-group.tsx","../../components/table/hooks/useColumnController.tsx","../../common/js/table/utils.ts","../../components/table/hooks/useRowSelect.tsx","../../components/table/components/sorter-button.tsx","../../components/table/hooks/useSorter.tsx","../../components/table/components/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.27.6/node_modules/@babel/runtime/helpers/esm/toArray.js","../../components/table/components/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.ts","../../components/typography/paragraph-props.ts","../../components/typography/components/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/qrcode/props.ts","../../common/js/qrcode/qrcodegen.ts","../../common/js/qrcode/utils.ts","../../components/qrcode/components/props.ts","../../components/qrcode/hooks/useQRCode.ts","../../components/qrcode/components/qrcode-canvas.tsx","../../components/qrcode/components/qrcode-svg.tsx","../../components/qrcode/components/qrcode-status.tsx","../../components/qrcode/qrcode.tsx","../../components/qrcode/index.ts","../../components/alert/props.ts","../../components/alert/alert.tsx","../../shared/hooks/icon/index.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/index.ts","../../components/config-provider/config-provider.tsx","../../components/index.ts"],"sourcesContent":["function _arrayLikeToArray(r, a) {\n (null == a || a > 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","/* 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 * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\nfunction baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n}\n\nexport default baseInRange;\n","import baseInRange from './_baseInRange.js';\nimport toFinite from './toFinite.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\nfunction inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n}\n\nexport default inRange;\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 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 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 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","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 baseIteratee from './_baseIteratee.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nexport default uniqBy;\n","import toString from './toString.js';\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nexport default uniqueId;\n","import arrayFilter from './_arrayFilter.js';\nimport baseRest from './_baseRest.js';\nimport baseXor from './_baseXor.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\nvar xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n});\n\nexport default xorWith;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nexport default baseXor;\n","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 };","// 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, isVNode, Comment } from 'vue';\nimport raf from 'raf';\nimport { isArray, isString, isFunction } from 'lodash-es';\n\nimport { easeInOutCubic, EasingFunction } from '@tdesign/common-js/utils/easing';\nimport { ScrollContainer, ScrollContainerElement } from '../../components/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\n/**\n * 判断一个 VNode 是否是注释节点(Comment)\n * Vue 3 中注释节点的 type 是 Comment\n *\n * @param node - 任意节点\n * @returns 是否为注释类型的 VNode\n */\nexport const isCommentVNode = (node: unknown): node is VNode => {\n return isVNode(node) && node.type === Comment;\n};\n","import { App, Plugin, Component, Directive } from 'vue';\n\nexport function 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","import { VNode, isVNode, Fragment } from 'vue';\nimport { isArray, isString, isObject } from 'lodash-es';\n\n// TODO:PAOPAO move? i have no idea\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 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\n// TODO:PAOPAO looks like a common util??\nexport function getParams(options?: OptionsType) {\n // TODO:PAOPAO in ??? in my view, it is better to use hasOwnProperty instead of in if it is not necessary.\n return isObject(options) && 'params' in options ? options.params : {};\n}\n\n// TODO:PAOPAO as above\n// and only hooks tnode import this one, so, can we move it to tnode hooks directly????\nexport function getSlotFirst(options?: OptionsType): boolean {\n return isObject(options) && 'slotFirst' in options ? options.slotFirst : false;\n}\n","import {\n Slots,\n VNode,\n Component,\n getCurrentInstance,\n Fragment,\n Comment,\n RendererNode,\n VNodeArrayChildren,\n RendererElement,\n VNodeChild,\n isVNode,\n Teleport,\n} from 'vue';\nimport { isArray } from 'lodash-es';\nimport { getChildren } from '@tdesign/shared-utils';\n\n/**\n * 渲染default slot,获取子组件VNode。处理多种子组件创建场景\n * 使用场景: , \n * @returns {function(childComponentName: string, slots: Slots): VNode[]}\n * @param childComponentName\n * @param slots\n * @example const getChildByName = useChildComponentSlots()\n * @example getChildComponentByName('TStepItem')\n */\nexport function useChildComponentSlots() {\n const instance = getCurrentInstance();\n return (childComponentName: string, slots?: Slots): VNode[] => {\n if (!slots) {\n slots = instance.slots;\n }\n const content = slots?.default?.() || [];\n\n return getChildren(content).filter((item: VNode) =>\n (item.type as Component).name?.endsWith(childComponentName),\n ) as VNode[];\n };\n}\n\n/**\n * 渲染default slot,获取slot child\n * @param childComponentName\n * @param slots\n * @example const getChildSlots = useChildSlots()\n * @example getChildSlots()\n */\nexport function useChildSlots(): () => (\n | VNode<\n RendererNode,\n RendererElement,\n {\n [key: string]: any;\n }\n >\n | VNodeArrayChildren\n | VNodeChild\n)[] {\n const instance = getCurrentInstance();\n return () => {\n const { slots } = instance;\n const content = slots?.default?.() || [];\n\n return content\n .filter((item) => {\n if (typeof item.type === 'symbol' && !item.children) {\n return false;\n }\n return item.type !== Comment;\n })\n .map((item) => {\n if (item.children && isArray(item.children) && item.type === Fragment) return item.children;\n return item;\n })\n .flat();\n };\n}\n\n/**\n * 递归展开所有 Fragment,并跳过 Comment 节点,返回一维 VNodeChild 数组\n * @example const useFlatChildrenSlots = useFlatChildrenSlotsHook()\n * @example useFlatChildrenSlots(children)\n */\nexport function useFlatChildrenSlots() {\n function getFlatChildren(children: VNodeChild[]): VNodeChild[] {\n const result: VNodeChild[] = [];\n children.forEach((child) => {\n if (isVNode(child) && child.type === Fragment && Array.isArray(child.children)) {\n result.push(...getFlatChildren(child.children as VNodeChild[]));\n } else if (isVNode(child) && [Teleport, Comment].some((vNode) => vNode === child.type)) {\n // skip Teleport and Comment\n } else {\n result.push(child);\n }\n });\n return result;\n }\n return getFlatChildren;\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, getCurrentInstance, ComponentInternalInstance, VNode } from 'vue';\nimport { camelCase, kebabCase, isFunction } from 'lodash-es';\n\nimport {\n getDefaultNode,\n getParams,\n OptionsType,\n JSXRenderContext,\n getSlotFirst,\n isCommentVNode,\n} from '@tdesign/shared-utils';\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) => !isCommentVNode(t)).length) return node;\n // 检查是否存在 中划线命名 的插槽\n node = instance.slots[kebabCase(name)]?.(params);\n if (node && node.filter((t) => !isCommentVNode(t)).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 // 如果该属性的类型有多种且包含 Boolean 和 Slot 的情况下,处理 boolean casting true 的场景\n // https://vuejs.org/guide/components/props.html#boolean-casting\n const types = instance.type.props[name]?.type;\n if (types?.length > 1) {\n if (types.includes(Boolean) && types.includes(Function)) {\n if (propsNode === '' && !renderSlot) return defaultNode;\n }\n }\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\n/**\n * 过滤掉注释节点。\n *\n * @param nodes - VNode 数组\n * @returns 去除注释节点后的 VNode 数组。\n */\nexport const filterCommentNode = (nodes: VNode[]): VNode[] => {\n return nodes.filter((node) => !isCommentVNode(node));\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","import { isString } from 'lodash-es';\n\n/**\n * 复数规则判断函数\n * @param count 数量\n * @returns 返回复数形式的索引 (0: zero/none, 1: one, 2: other/many)\n */\nfunction getPluralIndex(count: number): number {\n if (count === 0) return 0; // no items\n if (count === 1) return 1; // one item\n return 2; // multiple items\n}\n\n/**\n * @see https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/config-provider/hooks/useConfig.ts#L48\n * 自定义 t function 可能依赖特定库函数,例如 tdesign-vue-next 中使用了 vue 的 h 函数\n * 因此交由各个类库自行实现\n */\n\n/**\n * 国际化函数,支持复数处理和变量替换\n *\n * 示例用法:\n * 1. 基本变量替换:\n * t('Hello {name}', { name: 'World' }) // => 'Hello World'\n *\n * 2. 复数处理(传入数字):\n * t('no apples | one apple | {count} apples', 0) // => 'no apples'\n * t('no apples | one apple | {count} apples', 1) // => 'one apple'\n * t('no apples | one apple | {count} apples', 5) // => '5 apples'\n *\n * 3. 复合使用:\n * t('no items found | found {count} item | found {count} items', 3, { count: 3 }) // => 'found 3 items'\n */\n\n// 类型重载定义\nexport function t(pattern: string): string;\nexport function t(pattern: string, data: Record): string;\nexport function t(pattern: string, count: number): string;\nexport function t(pattern: string, count: number, data: Record): string;\nexport function t(pattern: T): string;\n\n/**\n * @param pattern 文本模式,可以是字符串、函数或其他类型\n * @param args 参数列表,支持 (count: number) 或 (count: number, data: object) 或 (data: object)\n * @returns 处理后的文本\n */\nexport function t(pattern: T, ...args: any[]): string {\n if (isString(pattern)) {\n let text = pattern as string;\n let count: number | undefined;\n let data: Record = {};\n\n // 解析参数\n if (args.length > 0) {\n const [firstArg, secondArg] = args;\n\n if (typeof firstArg === 'number') {\n // 第一个参数是数字,表示 count\n count = firstArg;\n if (secondArg && typeof secondArg === 'object') {\n // 第二个参数是对象,表示额外的数据\n data = secondArg;\n } else {\n data.count = count; // 若没有提供第二个参数,则将 count 添加到数据中\n }\n } else if (typeof firstArg === 'object' && firstArg !== null) {\n // 第一个参数是对象,表示数据\n data = firstArg;\n }\n }\n\n // 处理复数形式:支持 \"no items | one item | {count} items\" 格式\n if (text.includes('|')) {\n const pluralParts = text.split('|').map((part) => part.trim());\n\n if (typeof count === 'number') {\n // 使用 count 进行复数处理\n const pluralIndex = getPluralIndex(count);\n\n // 根据复数索引选择对应的文本\n if (pluralIndex < pluralParts.length) {\n text = pluralParts[pluralIndex];\n } else {\n // 如果索引超出范围,使用最后一个选项\n text = pluralParts[pluralParts.length - 1];\n }\n } else {\n // 如果没有 count,默认使用第一个选项\n const [firstPart] = pluralParts;\n text = firstPart;\n }\n }\n\n // 处理变量替换:{key} 格式\n if (data && Object.keys(data).length > 0) {\n const regular = /\\{\\s*([\\w-]+)\\s*\\}/g;\n text = text.replace(regular, (match, key) => {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n return String(data[key]);\n }\n return match; // 如果找不到对应的键,保留原始占位符\n });\n }\n\n return text as any;\n }\n\n // 如果不是字符串或函数,返回空字符串\n return '';\n}\n","// TODO 应当提取到公共 hooks 中\nimport { computed, h, inject, getCurrentInstance, ref, provide } from 'vue';\nimport { cloneDeep, isFunction } from 'lodash-es';\n\nimport { defaultGlobalConfig, configProviderInjectKey, mergeWith } from '../utils/context';\nimport { GlobalConfigProvider, TdConfigProviderProps } from '../type';\n\nimport { t as commonT } from '@tdesign/common-js/global-config/t';\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 if (isFunction(pattern)) {\n // 重要:组件的渲染必须存在参数 h,不能移除\n if (!args.length) return pattern(h);\n return pattern(...args);\n }\n // 使用公共翻译函数,以支持复数处理\n // @ts-expect-error be passed to rest parameter\n return commonT(pattern, ...args);\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';\n// TODO need refactor\nimport { useConfig } from '../../../components/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 { useConfig };\n","import { computed } from 'vue';\nimport { useConfig } from '../useConfig';\n\nexport function useCommonClassName() {\n const { classPrefix } = useConfig('classPrefix');\n\n return {\n classPrefix,\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 type CommonClassNameType = ReturnType;\n","import { ref, Ref, getCurrentInstance } from 'vue';\nimport { kebabCase } from 'lodash-es';\nimport { ChangeHandler } from '../useVModel';\n\nexport function useDefaultValue(\n value: Ref,\n defaultValue: T,\n onChange: ChangeHandler,\n propsName: string,\n): [Ref, ChangeHandler] {\n const { emit, vnode } = getCurrentInstance();\n const internalValue: Ref = ref();\n\n const vProps = vnode.props || {};\n const isVMP =\n Object.prototype.hasOwnProperty.call(vProps, propsName) ||\n Object.prototype.hasOwnProperty.call(vProps, kebabCase(propsName));\n\n if (isVMP) {\n return [\n value,\n (newValue, ...args) => {\n emit(`update:${propsName}`, newValue);\n onChange?.(newValue, ...args);\n },\n ];\n }\n\n internalValue.value = defaultValue;\n return [\n internalValue,\n (newValue, ...args) => {\n internalValue.value = newValue;\n onChange?.(newValue, ...args);\n },\n ];\n}\n","import { ref, provide, onUpdated } from 'vue';\n\nexport const TDisplayNoneElementRefresh = 't-display-none-element-refresh';\n\n// destroyOnClose=false 时,父元素为 display: none,此时的子元素无法获取到自身元素的任何宽度\n// 因此,需在父元素 display: none 发生变化时主动更新子元素\nexport function useDestroyOnClose() {\n const refresh = ref(0);\n provide(TDisplayNoneElementRefresh, refresh);\n onUpdated(() => {\n refresh.value += 1;\n });\n}\n","import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { isBoolean } from 'lodash-es';\n// TODO: need refator\nimport { TdFormProps } from '../../../components/form/type';\n\nexport interface FormDisabledProvider {\n disabled: Ref;\n}\n\nexport interface DisabledContext {\n beforeDisabled?: Ref;\n afterDisabled?: Ref;\n}\n\n/**\n * 用于实现组件全局禁用状态的hook\n * 优先级:(beforeDisabled) > Component.disabled > ComponentGroup.disabled(afterDisabled) > Form.disabled\n * @returns\n */\nexport function useDisabled(context?: DisabledContext) {\n const currentInstance = getCurrentInstance();\n const componentDisabled = computed(() => currentInstance.props.disabled as boolean);\n\n const formDisabled = inject('formDisabled', Object.create(null));\n\n return computed(() => {\n if (isBoolean(context?.beforeDisabled?.value)) return context.beforeDisabled.value;\n // Component\n if (isBoolean(componentDisabled.value)) return componentDisabled.value;\n // ComponentGroup\n if (isBoolean(context?.afterDisabled?.value)) return context.afterDisabled.value;\n // Form\n if (isBoolean(formDisabled.disabled?.value)) return formDisabled.disabled.value;\n\n return false;\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 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","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 { useConfig } from '../useConfig';\n// TODO need refactor\nimport { IconConfig } from '@tdesign/components/config-provider/type';\n\n// 从 globalConfig 获取 icon 配置用于覆盖组件内置 icon\nexport function useGlobalIcon(tdIcon: object): IconConfig {\n const { globalConfig } = useConfig('icon');\n\n const resultIcon: IconConfig = {};\n\n Object.keys(tdIcon).forEach((key: keyof typeof tdIcon) => {\n resultIcon[key] = globalConfig.value?.[key] || tdIcon[key];\n });\n\n return resultIcon;\n}\n\nexport default useGlobalIcon;\n","/* eslint-disable no-console */\nimport { Log } from './types';\n\nconst logSet = new Set();\n\nconst log: Log = {\n warn(componentName, message): void {\n console.warn(`TDesign ${componentName} Warn: ${message}`);\n },\n warnOnce(componentName, message): void {\n const msgContent = `TDesign ${componentName} Warn: ${message}`;\n if (logSet.has(msgContent)) return;\n logSet.add(msgContent);\n console.warn(msgContent);\n },\n error(componentName, message): void {\n console.error(`TDesign ${componentName} Error: ${message}`);\n },\n errorOnce(componentName, message): void {\n const msgContent = `TDesign ${componentName} Error: ${message}`;\n if (logSet.has(msgContent)) return;\n logSet.add(msgContent);\n console.error(msgContent);\n },\n info(componentName, message): void {\n console.info(`TDesign ${componentName} Info: ${message}`);\n },\n};\n\nexport default log;\n","import { SizeUnit } from './types';\nimport log from '../log/log';\n\nexport const IMAGE_REGEXP = /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.svg|.gif|.bmp)/i;\nexport const IMAGE_ALL_REGEXP = /(.png|.jpg|.jpeg|.jpe|.webp|.avif|.svg|.gif|.bmp|.dwg|.dxf|.svf|.tif|.tiff|.arw)/i;\nexport const FILE_PDF_REGEXP = /(.pdf)/i;\nexport const FILE_EXCEL_REGEXP = /(.xlsx|.xls|.csv|.xlc|.xlm|.xlt|.xlw)/i;\nexport const FILE_WORD_REGEXP = /(.dox|docx|.document|.wps|.wdb|.msword)/i;\nexport const FILE_PPT_REGEXP = /(.ppt|.pptx|.key)/i;\nexport const VIDEO_REGEXP = /(.avi|.mp4|.wmv|.mpg|.mpeg|.mov|.rm|.ram|.swf|.flv|.rmvb|.flash|.mid|.3gp)/i;\nexport const AUDIO_REGEXP = /(.mp2|.mp3|.mp4|.ogg|.3gpp|.ac3|.au)/i;\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n */\nconst INPUT_FILE_MAP = {\n 'audio/*': AUDIO_REGEXP,\n 'video/*': VIDEO_REGEXP,\n 'image/*': IMAGE_ALL_REGEXP,\n '.jpg': /image\\/jpeg|\\.jpg$/i,\n '.ico': /image\\/vnd.microsoft.icon/i,\n '.doc': /application\\/msword/i,\n '.docx': /application\\/vnd.openxmlformats-officedocument.wordprocessingml.document/i,\n '.xls': /application\\/vnd.ms-excel/i,\n '.xlsx': /application\\/vnd.openxmlformats-officedocument.spreadsheetml.sheet/i,\n '.ppt': /application\\/vnd.ms-powerpoint/i,\n '.pptx': /application\\/vnd.openxmlformats-officedocument.presentationml.presentation/i,\n '.vsd': /application\\/vnd.visio/i,\n '.txt': /text\\/plain/i,\n '.abw': /application\\/x-abiword/i,\n '.avi': /video\\/x-msvideo/i,\n '.azw': /application\\/vnd.amazon.ebook/i,\n '.bin': /application\\/octet-stream/i,\n '.cda': /application\\/x-cdf/i,\n '.mpkg': /application\\/vnd.apple.installer+xml/i,\n '.odp': /application\\/vnd.oasis.opendocument.presentation/i,\n '.ods': /application\\/vnd.oasis.opendocument.spreadsheet/i,\n '.odt': /application\\/vnd.oasis.opendocument.text/i,\n '.oga': /audio\\/ogg/i,\n '.ogv': /video\\/ogg/i,\n '.ogx': /application\\/ogg/i,\n};\n\n/**\n * 各个单位和 KB 的关系\n *\n * [*] 表示方法采用这种方式\n * [x] 表示方法不采用这种方式\n *\n * [x] bit 位 b 0 or 1\n * [*] byte 字节 B 8 bits\n * [x] kilobit 千位 kb 1000 bites\n * [*] kilobyte 千字节(二进制) KB 1024 bytes\n * [x] kilobyte 千字节(十进制) KB 1000 bytes\n * [x] Megabite 百万位 Mb 1000 kilobits\n * [*] Megabyte 兆字节(二进制) KB 1024 kilobytes\n * [*] Megabyte 兆字节(十进制) KB 1000 kilobytes\n * [x] Gigabit 万亿位 Gb 1000 Megabite\n * [*] Gigabyte 吉字节(二进制) GB 1024 Megabytes\n * [x] Gigabyte 吉字节(十进制) GB 1000 Megabytes\n */\nexport const SIZE_MAP = {\n B: 1,\n KB: 1024,\n MB: 1048576, // 1024 * 1024\n GB: 1073741824, // 1024 * 1024 * 1024\n};\n\nexport function returnFileSize(number: number) {\n if (number < SIZE_MAP.KB) {\n return `${number} Bytes`;\n }\n if (number >= SIZE_MAP.KB && number < SIZE_MAP.MB) {\n return `${(number / SIZE_MAP.KB).toFixed(1)} KB`;\n }\n if (number >= SIZE_MAP.MB && number < SIZE_MAP.GB) {\n return `${(number / SIZE_MAP.MB).toFixed(1)} MB`;\n }\n\n if (number >= SIZE_MAP.GB) {\n return `${(number / SIZE_MAP.GB).toFixed(1)} GB`;\n }\n return '';\n}\n\nexport function getCurrentDate(needTime = false) {\n const d = new Date();\n let month: string | number = d.getMonth() + 1;\n month = month < 10 ? `0${month}` : month;\n const date = `${d.getFullYear()}-${month}-${d.getDate()}`;\n const time = `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`;\n if (needTime) return [date, time].join(' ');\n return date;\n}\n\n/**\n * 缩略文件名 ABCDEFG => ABC...FG\n * @param inputName 文件名\n * @param leftCount 左边长度\n * @param rightCount 右边长度\n * @returns 缩略后的文件名\n */\nexport function abridgeName(\n inputName: string,\n leftCount = 5,\n rightCount = 7\n): string {\n const name = inputName;\n let leftLength = 0;\n let rightLength = 0;\n if (!name) return '';\n for (let i = 0; i < name.length; i++) {\n const w = name[i];\n const isCn = escape(w).indexOf('%u') === 0;\n if (i < leftCount * 2 && leftLength < leftCount) {\n // eslint-disable-next-line no-unused-expressions\n isCn ? (leftLength += 1) : (leftLength += 2);\n } else if (i > i - rightCount && rightLength < rightCount) {\n // eslint-disable-next-line no-unused-expressions\n isCn ? (rightLength += 1) : (rightLength += 2);\n }\n }\n return name.replace(\n new RegExp(`^(.{${leftLength}})(.+)(.{${rightLength}})$`),\n '$1…$3'\n );\n}\n\nexport function getFileSizeText(number: number) {\n if (number < 1024) {\n return `${number} Bytes`;\n }\n if (number >= 1024 && number < 1048576) {\n return `${(number / 1024).toFixed(1)} KB`;\n }\n if (number >= 1048576) {\n return `${(number / 1048576).toFixed(1)} MB`;\n }\n return '';\n}\n\n/**\n * 大小比较\n * @param size 文件大小,单位:B\n * @param unit 计算机计量单位\n */\nexport function isOverSizeLimit(\n fileSize: number,\n sizeLimit: number,\n unit: SizeUnit\n) {\n const units = ['B', 'KB', 'MB', 'GB'];\n const KBIndex = 1;\n let index = units.indexOf(unit);\n if (index === -1) {\n log.warn('Upload', `\\`sizeLimit.unit\\` can only be one of ${units.join()}`);\n index = KBIndex;\n }\n const num = SIZE_MAP[unit];\n return fileSize > sizeLimit * num;\n}\n\n// vue2临时使用的 sizeLimit 计算\nexport function isOverSizeLimit1(\n fileSize: number,\n sizeLimit: number,\n unit: SizeUnit\n) {\n // 以 KB 为单位进行比较\n const units = ['B', 'KB', 'MB', 'GB'];\n // 各个单位和 KB 的关系\n\n const KBIndex = 1;\n let index = units.indexOf(unit);\n if (index === -1) {\n // eslint-disable-next-line no-console\n console.warn(\n `TDesign Upload Warn: \\`sizeLimit.unit\\` can only be one of ${units.join()}`\n );\n index = KBIndex;\n }\n const num = SIZE_MAP[unit];\n const limit = index < KBIndex ? sizeLimit / num : sizeLimit * num;\n return fileSize <= limit;\n}\n\nexport const urlCreator = () => window.webkitURL || window.URL;\n\nexport function getFileUrlByFileRaw(fileRaw: File): Promise {\n return new Promise((resolve) => {\n if (!fileRaw) {\n resolve('');\n return;\n }\n const reader = new FileReader();\n reader.readAsDataURL(fileRaw);\n reader.onload = (event: ProgressEvent) => {\n resolve(event.target?.result as string);\n };\n });\n}\n\nexport function validateFileType(accept: string, fileType: string, fileName?: string) {\n const tmpFileType = fileType || fileName;\n if (!accept) return true;\n\n if (!tmpFileType) return false;\n\n const acceptList = accept.split(',').map((v) => v.trim());\n for (let i = 0, len = acceptList.length; i < len; i++) {\n const oneRule = acceptList[i] as keyof typeof INPUT_FILE_MAP;\n if (INPUT_FILE_MAP[oneRule] && INPUT_FILE_MAP[oneRule].test(tmpFileType)) {\n return true;\n }\n const regExp = new RegExp(oneRule, 'i');\n if (regExp.test(tmpFileType)) {\n return true;\n }\n }\n return false;\n}\n\nexport function getFileList(files: FileList, accept: string = '') {\n const fileList: File[] = [];\n for (let i = 0; i < files.length; i++) {\n if (validateFileType(accept, files[i].type, files[i].name)) {\n fileList.push(files[i]);\n }\n }\n return fileList;\n}\n","import { ComputedRef, ref, Ref, watch } from 'vue';\nimport { getFileUrlByFileRaw } from '@tdesign/common-js/upload/utils';\n\nexport function useImagePreviewUrl(imgUrl: Ref | ComputedRef) {\n const previewUrl = ref('');\n\n watch(\n [imgUrl],\n ([imgUrl], [preImgUrl]) => {\n if (preImgUrl === imgUrl) return;\n if (typeof imgUrl === 'string') {\n previewUrl.value = imgUrl;\n return;\n }\n getFileUrlByFileRaw(imgUrl).then((url) => {\n previewUrl.value = url;\n });\n },\n { immediate: true },\n );\n\n return { previewUrl };\n}\n","import { useConfig } from '../useConfig';\n// TODO need refactor\nimport { EAnimationType } from '../../../components/config-provider/utils/context';\n\nconst { expand, ripple, fade } = EAnimationType;\n\nexport function useKeepAnimation() {\n const { globalConfig } = useConfig('animation');\n\n const keepAnimation = (type: EAnimationType) => {\n const animationConfig = globalConfig.value;\n return animationConfig && !animationConfig.exclude?.includes(type) && animationConfig.include?.includes(type);\n };\n return {\n keepExpand: keepAnimation(expand),\n keepRipple: keepAnimation(ripple),\n keepFade: keepAnimation(fade),\n };\n}\n","import { onBeforeUnmount, onMounted } from 'vue';\n\n/**\n * 用于订阅Listener事件\n * @param updateSize\n */\nexport function useListener(type: string, listener: () => void): void {\n onMounted(() => {\n window.addEventListener(type, listener);\n });\n\n onBeforeUnmount(() => {\n window.removeEventListener(type, listener);\n });\n}\n\nexport function useResize(listener: () => void, observer?: HTMLElement) {\n useListener('resize', listener);\n\n let resizeObserver: ResizeObserver = null;\n\n onMounted(() => {\n if (!window.ResizeObserver || !observer) return;\n resizeObserver = new window.ResizeObserver(listener);\n resizeObserver.observe(observer);\n });\n\n onBeforeUnmount(() => {\n resizeObserver?.disconnect();\n });\n}\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","// https://github.dev/arco-design/arco-design-vue\nimport { onMounted, onBeforeUnmount, readonly, Ref, ref, watch } from 'vue';\nexport type PopupType = 'popup' | 'dialog' | 'message' | 'drawer';\n\nconst popupStackType = ['dialog', 'drawer'];\nconst POPUP_BASE_Z_INDEX = 1000;\nconst MESSAGE_BASE_Z_INDEX = 5000;\nconst Z_INDEX_STEP = 1;\n\nclass PopupManager {\n private popupStack = {\n popup: new Set(),\n dialog: new Set(),\n message: new Set(),\n drawer: new Set(),\n };\n\n private zIndexStack: number[] = [];\n\n private getNextZIndex = (type: PopupType) => {\n const current =\n type === 'message'\n ? Array.from(this.popupStack.message).pop() || MESSAGE_BASE_Z_INDEX\n : Array.from(this.popupStack.popup).pop() || POPUP_BASE_Z_INDEX;\n return current + Z_INDEX_STEP;\n };\n\n public add = (type: PopupType) => {\n const zIndex = this.getNextZIndex(type);\n this.popupStack[type].add(zIndex);\n if (popupStackType.includes(type)) {\n this.popupStack.popup.add(zIndex);\n }\n this.zIndexStack.push(zIndex);\n return zIndex;\n };\n\n public delete = (zIndex: number, type: PopupType) => {\n this.popupStack[type].delete(zIndex);\n if (popupStackType.includes(type)) {\n this.popupStack.popup.delete(zIndex);\n }\n const index = this.zIndexStack.indexOf(zIndex);\n if (index !== -1) {\n this.zIndexStack.splice(index, 1);\n }\n };\n\n // 最顶层的交互式弹窗(指Dialog和Drawer)\n public isTopInteractivePopup = (popupType: PopupType, zIndex: number) => {\n if (popupStackType.includes(popupType)) {\n const lastZIndex = this.zIndexStack[this.zIndexStack.length - 1];\n return zIndex === lastZIndex;\n }\n\n if (this.popupStack[popupType]?.size > 1) {\n return zIndex === Array.from(this.popupStack[popupType]).pop();\n }\n\n return true;\n };\n\n public getLastZIndex = () => {\n return this.zIndexStack[this.zIndexStack.length - 1];\n };\n}\n\nconst popupManager = new PopupManager();\n\nexport function usePopupManager(\n type: PopupType,\n {\n visible,\n runOnMounted,\n }: {\n visible?: Ref;\n runOnMounted?: boolean;\n } = {},\n) {\n const zIndex = ref(0);\n\n const open = () => {\n zIndex.value = popupManager.add(type);\n };\n\n const close = () => {\n popupManager.delete(zIndex.value, type);\n };\n\n const isTopInteractivePopup = () => {\n if (popupStackType.includes(type)) {\n return popupManager.isTopInteractivePopup(type, zIndex.value);\n }\n return false;\n };\n\n watch(\n () => visible?.value,\n (visible) => {\n if (visible) {\n open();\n } else {\n close();\n }\n },\n {\n immediate: true,\n },\n );\n\n if (runOnMounted) {\n onMounted(() => {\n open();\n });\n\n onBeforeUnmount(() => {\n close();\n });\n }\n\n return {\n zIndex: readonly(zIndex),\n open,\n close,\n isTopInteractivePopup,\n };\n}\n","import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { isBoolean } from 'lodash-es';\n// TODO need refactor\nimport { TdFormProps } from '../../../components/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 { Ref, watch, onBeforeUnmount } from 'vue';\n\nexport function useResizeObserver(container: Ref, callback: (data: ResizeObserverEntry[]) => void) {\n if (typeof window === 'undefined') return;\n\n const isSupport = window && (window as Window & typeof globalThis).ResizeObserver;\n // unit tests do not need any warn console; too many warns influence focusing on more important log info\n if (!isSupport) return;\n\n let containerObserver: ResizeObserver = null;\n\n const cleanupObserver = () => {\n if (!containerObserver || !container.value) return;\n containerObserver.unobserve(container.value);\n containerObserver.disconnect();\n containerObserver = null;\n };\n\n const addObserver = (el: HTMLElement) => {\n containerObserver = new ResizeObserver(callback);\n containerObserver.observe(el);\n };\n\n // can not use container.value to judge\n container &&\n watch(\n container,\n (el) => {\n cleanupObserver();\n el && addObserver(el);\n },\n { immediate: true, flush: 'post' },\n );\n\n onBeforeUnmount(() => {\n cleanupObserver();\n });\n}\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 { ref, onMounted, onUnmounted, Ref } from 'vue';\nimport { useKeepAnimation } from '../useKeepAnimation';\nimport { usePrefixClass } from '../useConfig';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\n\nconst period = 200;\nconst noneRippleBg = 'rgba(0, 0, 0, 0)';\nconst defaultRippleColor = 'rgba(0, 0, 0, 0.35)';\n\n// 设置动画颜色 get the ripple animation color\nconst getRippleColor = (el: HTMLElement, fixedRippleColor?: string) => {\n // get fixed color from params\n if (fixedRippleColor) {\n return fixedRippleColor;\n }\n // get dynamic color from the dataset\n if (el?.dataset?.ripple) {\n const rippleColor = el.dataset.ripple;\n return rippleColor;\n }\n // use css variable\n const cssVariable = getComputedStyle(el).getPropertyValue('--ripple-color');\n if (cssVariable) {\n return cssVariable;\n }\n return defaultRippleColor;\n};\n\n/**\n * 斜八角动画hooks 支持三种方式使用\n * 1. fixedRippleColor 固定色值 useRipple(ref,fixedRippleColor);\n * 2. dynamicColor 动态色值 data.ripple=\"rippleColor\" useRipple(ref)\n * 3. CSS variables(recommended) 配合节点对应CSS设置 --ripple-color useRipple(ref)\n * @param ref 需要使用斜八角动画的DOM\n * @param fixedRippleColor 斜八角的动画颜色\n */\nexport function useRipple(el: Ref, fixedRippleColor?: Ref) {\n const rippleContainer = ref(null);\n const classPrefix = usePrefixClass();\n\n // 全局配置ripple\n const { keepRipple } = useKeepAnimation();\n\n // 为节点添加斜八角动画 add ripple to the DOM and set up the animation\n const handleAddRipple = (e: MouseEvent) => {\n const dom = el.value;\n const rippleColor = getRippleColor(dom, fixedRippleColor?.value);\n if (e.button !== 0 || !el || !keepRipple) return;\n\n if (\n dom.classList.contains(`${classPrefix.value}-is-active`) ||\n dom.classList.contains(`${classPrefix.value}-is-disabled`) ||\n dom.classList.contains(`${classPrefix.value}-is-checked`) ||\n dom.classList.contains(`${classPrefix.value}-is-loading`)\n )\n return;\n\n const elStyle = getComputedStyle(dom);\n\n const elBorder = parseInt(elStyle.borderWidth, 10);\n const border = elBorder > 0 ? elBorder : 0;\n const width = dom.offsetWidth;\n const height = dom.offsetHeight;\n\n if (rippleContainer.value.parentNode === null) {\n setStyle(rippleContainer.value, {\n position: 'absolute',\n left: `${0 - border}px`,\n top: `${0 - border}px`,\n width: `${width}px`,\n height: `${height}px`,\n borderRadius: elStyle.borderRadius,\n pointerEvents: 'none',\n overflow: 'hidden',\n });\n dom.appendChild(rippleContainer.value);\n }\n // 新增一个ripple\n const ripple = document.createElement('div');\n\n setStyle(ripple, {\n marginTop: '0',\n marginLeft: '0',\n right: `${width}px`,\n width: `${width + 20}px`,\n height: '100%',\n transition: `transform ${period}ms cubic-bezier(.38, 0, .24, 1), background ${period * 2}ms linear`,\n transform: 'skewX(-8deg)',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n backgroundColor: rippleColor,\n opacity: '0.9',\n });\n\n // fix zIndex:避免遮盖内部元素\n const elMap = new WeakMap();\n for (let n = dom.children.length, i = 0; i < n; ++i) {\n const child = dom.children[i];\n if ((child as HTMLElement).style.zIndex === '' && child !== rippleContainer.value) {\n (child as HTMLElement).style.zIndex = '1';\n elMap.set(child, true);\n }\n }\n\n // fix position\n const initPosition = dom.style.position ? dom.style.position : getComputedStyle(dom).position;\n if (initPosition === '' || initPosition === 'static') {\n // eslint-disable-next-line no-param-reassign\n dom.style.position = 'relative';\n }\n rippleContainer.value.insertBefore(ripple, rippleContainer.value.firstChild);\n\n setTimeout(() => {\n ripple.style.transform = `translateX(${width}px)`;\n }, 0);\n // 清除动画节点 clear ripple container\n const handleClearRipple = () => {\n ripple.style.backgroundColor = noneRippleBg;\n\n if (!el.value) return;\n\n el.value.removeEventListener('pointerup', handleClearRipple, false);\n el.value.removeEventListener('pointerleave', handleClearRipple, false);\n\n setTimeout(() => {\n ripple.remove();\n if (rippleContainer.value.children.length === 0) rippleContainer.value.remove();\n }, period * 2 + 100);\n };\n el.value.addEventListener('pointerup', handleClearRipple, false);\n el.value.addEventListener('pointerleave', handleClearRipple, false);\n };\n\n onMounted(() => {\n const dom = el?.value;\n if (!dom) return;\n\n rippleContainer.value = document.createElement('div');\n\n dom.addEventListener('pointerdown', handleAddRipple, false);\n });\n\n onUnmounted(() => {\n el?.value?.removeEventListener('pointerdown', handleAddRipple, false);\n });\n}\n","import { getAttach } from '@tdesign/shared-utils';\nimport { computed, Ref, onMounted, ref, watch } from 'vue';\n// TODO need refactor\nimport { AttachNode } from '../../../components/common';\nimport { isFunction } from 'lodash-es';\n\n/**\n * @description 返回挂载的节点, 用于teleport\n * @param attach 既可以是一个函数, 也可以是一个ref\n * @param triggerNode 既可以是一个函数, 也可以是一个ref\n */\nexport function 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","import { ref, Ref, getCurrentInstance } from 'vue';\nimport { kebabCase } from 'lodash-es';\n\nexport type ChangeHandler = (value: T, ...args: P) => void;\n\nexport function useVModel(\n value: Ref,\n modelValue: Ref,\n defaultValue: T,\n onChange: ChangeHandler,\n propName = 'value',\n): [Ref, ChangeHandler] {\n const { emit, vnode } = getCurrentInstance();\n const internalValue: Ref = ref();\n\n const vProps = vnode.props || {};\n const isVM =\n Object.prototype.hasOwnProperty.call(vProps, 'modelValue') ||\n Object.prototype.hasOwnProperty.call(vProps, 'model-value');\n const isVMP =\n Object.prototype.hasOwnProperty.call(vProps, propName) ||\n Object.prototype.hasOwnProperty.call(vProps, kebabCase(propName));\n\n if (isVM) {\n return [\n modelValue,\n (newValue, ...args) => {\n emit('update:modelValue', newValue);\n onChange?.(newValue, ...args);\n },\n ];\n }\n\n if (isVMP) {\n return [\n value,\n (newValue, ...args) => {\n emit(`update:${propName}`, newValue);\n onChange?.(newValue, ...args);\n },\n ];\n }\n\n internalValue.value = defaultValue;\n return [\n internalValue,\n (newValue, ...args) => {\n internalValue.value = newValue;\n onChange?.(newValue, ...args);\n },\n ];\n}\n","/**\n * 基于原作者(@louiszhai)的思路二次开发,为保证其他组件暂不受影响,单独开一个文件\n * 新增支持以下 3 个特性\n * 1. 支持不同表格高度\n * 2. 支持滚动到特定元素,方便 Select 等组件展开时直接定位到选中元素\n * 3. 支持数据变化不重置,方便支持树形结构虚拟滚动\n */\nimport { ref, computed, watch, Ref } from 'vue';\n// TODO need refactor\nimport { TScroll } from '../../../components/common';\nimport { useResizeObserver } from '../useResizeObserver';\nimport { max, min, sum, 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\nexport function useVirtualScrollNew(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","import { onBeforeUnmount, onMounted, ref, watch } from 'vue';\nimport { debounce, isEqual } from 'lodash-es';\n\nexport interface MutationCallback {\n (mutations: MutationRecord[]): void;\n}\n\ninterface Options {\n debounceTime?: number;\n config?: MutationObserverInit;\n}\n\nconst DEFAULT_OPTIONS: Options = {\n debounceTime: 0,\n config: {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n },\n};\n\n/**\n * useMutationObservable\n * @param targetEl 监听对象\n * @param callback 回调方法\n * @param options 配置项\n */\nexport function useMutationObservable(\n targetEl: HTMLElement | null,\n callback: MutationCallback,\n options: Options = DEFAULT_OPTIONS,\n) {\n const mergedOptions = ref({ ...DEFAULT_OPTIONS, ...options });\n let observer: MutationObserver | null = null;\n\n const initObserver = () => {\n if (!targetEl) return;\n\n const { debounceTime = 0, config = DEFAULT_OPTIONS.config } = mergedOptions.value;\n const handler: MutationCallback = (...args) => {\n callback?.(...args);\n };\n\n observer?.disconnect();\n observer = new MutationObserver(debounceTime > 0 ? debounce(handler, debounceTime) : handler);\n observer.observe(targetEl, config);\n };\n\n watch(\n () => options,\n (newOptions) => {\n if (!isEqual(newOptions, mergedOptions.value)) {\n mergedOptions.value = { ...DEFAULT_OPTIONS, ...newOptions };\n initObserver();\n }\n },\n { deep: true },\n );\n\n onMounted(initObserver);\n onBeforeUnmount(() => observer?.disconnect());\n}\n\nexport default useMutationObservable;\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\nexport const THEME_MODE = 'theme-mode';\n","/**\n * 获取颜色token的色值\n * @example getColorTokenColor('--td-brand-color')\n * @returns string\n */\nexport const getColorTokenColor = (token: string): string => {\n if (typeof window === 'undefined') return '';\n const targetElement = document?.documentElement;\n const styles = getComputedStyle(targetElement);\n return styles.getPropertyValue(token).trim() ?? '';\n};\n\nexport default getColorTokenColor;\n","import { ref } from 'vue';\nimport type { Ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { THEME_MODE } from '@tdesign/common-js/common';\nimport getColorTokenColor from '@tdesign/common-js/utils/getColorTokenColor';\nimport useMutationObservable from '../useMutationObservable';\n\n/**\n * useVariables\n * @param variable CSS 变量名\n * @example\n * const { textColor, brandColor } = useVariables({\n * textColor: '--td-color-primary',\n * brandColor: '--td-brand-color',\n * });\n */\nexport function useVariables>(variables: T): Record> {\n const values = {} as Record>;\n let varsArray: string[] = [];\n\n varsArray = Object.values(variables);\n Object.entries(variables).forEach(([key, varName]) => {\n values[key as keyof T] = ref(getColorTokenColor(varName));\n });\n\n varsArray.forEach((varName) => {\n values[varName as keyof T] = ref(getColorTokenColor(varName));\n });\n\n const targetElement = document?.documentElement;\n useMutationObservable(targetElement, (mutationsList) => {\n mutationsList.some((mutation) => {\n if (mutation.type === 'attributes' && mutation.attributeName === THEME_MODE) {\n if (isString(variables) || Array.isArray(variables)) {\n varsArray.forEach((varName) => {\n values[varName].value = getColorTokenColor(varName);\n });\n } else {\n Object.entries(variables).forEach(([key, varName]) => {\n values[key].value = getColorTokenColor(varName);\n });\n }\n return true;\n }\n return false;\n });\n });\n\n return values;\n}\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 '@tdesign/shared-hooks';\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 // 判断是否为 iPadOS 下的微信和企业微信\n const isIpadWechat = /(?=.*iPad)[?=.*MicroMessenger]/.test(ua) && !/Chrome/.test(ua);\n\n // 注意:chrome上调试mobile/ipad端时,loading出现异常,属于正常现象,不需要修改。\n if (isSafari || isIosWechat || isIpadWechat) {\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","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\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: '' as TdLoadingProps['attach'],\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 as TdLoadingProps['indicator'],\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 '@tdesign/shared-utils';\nimport { getPropertyValFromObj } from '@tdesign/common-js/utils/general';\nimport { useContent, useTNodeJSX, useTeleport, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\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, createVNode, defineComponent, h, reactive, render, AppContext } from 'vue';\nimport { merge } from 'lodash-es';\nimport LoadingComponent from './loading';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport { getAttach, removeClass, addClass } from '@tdesign/shared-utils';\nimport { TdLoadingProps, LoadingInstance, LoadingMethod } from './type';\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, context?: AppContext): 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\n return () => h(LoadingComponent, loadingOptions);\n },\n });\n\n const attach = getAttach(mergedProps.fullscreen ? 'body' : mergedProps.attach);\n\n const instance = createVNode(component);\n\n // eslint-disable-next-line no-underscore-dangle\n if (context ?? LoadingPlugin._context) {\n // eslint-disable-next-line no-underscore-dangle\n instance.appContext = context ?? LoadingPlugin._context;\n }\n\n const wrapper = document.createElement('div');\n render(instance, wrapper);\n\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 removeClass(attach, parentRelativeClass);\n removeClass(document.body, lockClass.value);\n // 卸载组件渲染\n render(null, wrapper);\n wrapper.remove();\n },\n };\n return loadingInstance;\n}\n\nfunction produceLoading(props: boolean | TdLoadingProps, context?: AppContext): LoadingInstance {\n // 全屏加载\n if (props === true) {\n fullScreenLoadingInstance = createLoading(\n {\n fullscreen: true,\n loading: true,\n attach: 'body',\n preventScrollThrough: true,\n },\n context,\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 &\n LoadingMethod & {\n _context?: AppContext;\n };\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 // eslint-disable-next-line no-underscore-dangle\n LoadingPlugin._context = app._context;\n};\n\nexport default LoadingPlugin;\n","import type { Directive, DirectiveBinding } from 'vue';\nimport { mapKeys, isEqual, isObject } from 'lodash-es';\n\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 { vLoading } from './directive';\nimport _Loading from './loading';\nimport { withInstall } from '@tdesign/shared-utils';\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, useResizeObserver } from '@tdesign/shared-hooks';\n\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 { h, defineComponent, Transition, ref, computed, watch, onMounted, nextTick } from 'vue';\nimport { debounce, isFunction } 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, useDragSort, useGlobalIcon, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\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 onTabRemove = ({ 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 onTabRemove={onTabRemove}\n onTabPanelRemove={panel.onRemove}\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 { useVModel, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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 '@tdesign/shared-hooks';\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, useContent, useTNodeJSX, usePrefixClass, useCollapseAnimation } from '@tdesign/shared-hooks';\n\nimport { Popup, PopupPlacement } from '../popup';\nimport { isFunction } from 'lodash-es';\nimport { TdSubmenuProps } from './type';\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\n const submenu = inject('TdSubmenu', {});\n const { setSubPopup, closeParentPopup } = submenu;\n\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 let virtualChild;\n\n if (mode.value === 'popup') {\n events = {\n onMouseenter: handleMouseEnter,\n onMouseleave: handleMouseLeave,\n };\n // popup模式下且存在多层的特殊封装场景中,需要将子节点挂载进行计算高亮\n if (activeValues.value.length < 2)\n virtualChild =
    {renderContent('default', 'content')}
    ;\n }\n if (Object.keys(slots).length > 0) {\n child = isHead ? renderHeadSubmenu() : renderSubmenu();\n }\n\n return (\n
  • \n {child}\n {virtualChild}\n
  • \n );\n };\n },\n});\n","export 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 { isArray, isFunction } 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 { useVModel, usePrefixClass, useDefaultValue } from '@tdesign/shared-hooks';\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 { useRipple, useContent, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\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 const activeValues = menu.activeValues.value;\n if (activeValues.includes(props.value) && !activeValues.includes(submenu?.value)) {\n activeValues.push(submenu?.value);\n }\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 { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 { 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 '@tdesign/shared-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, useDisabled, useReadonly } from '@tdesign/shared-hooks';\n\nimport { useLengthLimit } from './useLengthLimit';\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 if (isComposition.value) {\n isComposition.value = false;\n compositionValue.value = '';\n }\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 '@tdesign/shared-hooks';\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 {\n useConfig,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\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, isComposition);\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, isComposition?: 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 // 修复中文输入法回车键冲突:在中文输入法激活时不触发onEnter事件\n if (!isComposition?.value) {\n props.onEnter?.(tmpValue, { e });\n }\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 { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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 { useVModel, useReadonly, useDisabled, useCommonClassName } from '@tdesign/shared-hooks';\n\nimport { InputNumberValue, TdInputNumberProps } from '../type';\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';\n\nimport { StrInputProps } from '../../input';\n\n/**\n * 独立一个组件 Hook 方便用户直接使用相关逻辑 自定义任何样式的数字输入框\n */\nexport default function useInputNumber(props: TdInputNumberProps) {\n const { classPrefix, SIZE, STATUS } = 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 SIZE.value[props.size],\n {\n [STATUS.value.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 { [STATUS.value.disabled]: disabledReduce.value },\n ]);\n\n const addClasses = computed(() => [\n `${classPrefix.value}-input-number__increase`,\n { [STATUS.value.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 // 先处理小数位数限制,然后再更新显示值和实际值\n let processedVal = val;\n if (props.decimalPlaces !== undefined && val !== '' && val.includes('.')) {\n const parts = val.split('.');\n // 获取实际小数位数限制\n const decimalLimit = typeof props.decimalPlaces === 'number' ? props.decimalPlaces : props.decimalPlaces.places;\n\n if (parts[1] && parts[1].length > decimalLimit) {\n // 直接截断为指定小数位数\n processedVal = `${parts[0]}.${parts[1].substring(0, decimalLimit)}`;\n }\n }\n\n // 更新显示值\n userInput.value = processedVal;\n\n if (props.largeNumber) {\n setTValue(processedVal, { type: 'input', e });\n return;\n }\n\n // 当处理后的值与当前值不同时,才更新\n const newNumber = processedVal === '' ? undefined : Number(processedVal);\n if (canSetValue(processedVal, Number(tValue.value))) {\n setTValue(newNumber, { 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) {\n // 当值为 undefined 或 null 且最小值不为默认值 -Infinity 时,设置为最小值\n if ([undefined, null].includes(tValue.value) && min !== -Infinity) {\n setTValue(min, { type: 'blur', e: ctx.e });\n props.onBlur?.(min, ctx);\n return;\n }\n // 当值不为 undefined 时,进行范围检查\n if (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 }\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 '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 {\n useConfig,\n useContent,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { Styles } from '../common';\n\nexport default defineComponent({\n name: 'TTag',\n props,\n setup(props) {\n const { globalConfig: tagGlobalConfig } = useConfig('tag');\n const COMPONENT_NAME = usePrefixClass('tag');\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { SIZE } = useCommonClassName();\n const { vnode } = getCurrentInstance();\n\n const tagClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}--${props.theme}`,\n `${COMPONENT_NAME.value}--${props.variant}`,\n {\n [`${COMPONENT_NAME.value}--ellipsis`]: props.maxWidth,\n [`${COMPONENT_NAME.value}--close`]: props.closable,\n [`${COMPONENT_NAME.value}--disabled`]: props.disabled,\n [SIZE.value[props.size]]: props.size !== 'medium',\n },\n props.shape !== 'square' && `${COMPONENT_NAME.value}--${props.shape}`,\n ];\n });\n const tagStyle = computed(() => {\n return getTagColorStyle();\n });\n\n const textStyle = computed(() => {\n if (!props.maxWidth) return {};\n\n return {\n maxWidth: isNaN(Number(props.maxWidth)) ? String(props.maxWidth) : `${props.maxWidth}px`,\n };\n });\n\n const getTagColorStyle = () => {\n const { color, variant } = props;\n if (!color) return {};\n\n const luminance = tinycolor(color).getLuminance();\n\n const style: Styles = {\n color: luminance > 0.5 ? 'black' : 'white',\n };\n\n if (variant === 'outline' || variant === 'light-outline') {\n style.borderColor = color;\n }\n if (variant !== 'outline') {\n const getLightestShade = () => {\n const { r, g, b } = tinycolor(color).toRgb();\n // alpha 0.1 is designed by @wen1kang\n return `rgba(${r}, ${g}, ${b}, 0.1)`;\n };\n style.backgroundColor = variant === 'dark' ? color : getLightestShade();\n }\n if (variant !== 'dark') {\n style.color = color;\n }\n return style;\n };\n\n const handleClick = (e: MouseEvent) => {\n if (props.disabled) return;\n props.onClick?.({ e });\n };\n\n const getCloseIcon = () => {\n if (!props.closable) return null;\n const iconClassName = `${COMPONENT_NAME.value}__icon-close`;\n if (tagGlobalConfig.value.closeIcon) {\n return h(tagGlobalConfig.value.closeIcon(h) as VNode, { class: iconClassName });\n }\n return (\n {\n if (e) e.stopPropagation();\n props.onClose?.({ e });\n }}\n class={iconClassName}\n />\n );\n };\n\n const renderTitle = (tagContent: string) => {\n const vProps = vnode.props || {};\n if (Reflect.has(vProps, 'title')) {\n return vProps.title || undefined;\n }\n\n if (tagContent) {\n return tagContent;\n }\n\n return undefined;\n };\n\n return () => {\n // 关闭按钮 自定义组件使用 nativeOnClick 绑定事件\n const closeIcon = getCloseIcon();\n // 标签内容\n const tagContent = renderContent('default', 'content');\n // 图标\n const icon = renderTNodeJSX('icon');\n\n const title = renderTitle(isString(tagContent) ? tagContent : '');\n\n return (\n
    \n {icon}\n \n {tagContent}\n \n {!props.disabled && closeIcon}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckTagProps } from '../tag/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 标签选中的状态,默认风格(theme=default)才有选中态 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 标签选中的状态,默认风格(theme=default)才有选中态,非受控属性 */\n defaultChecked: Boolean,\n /** 透传标签选中态属性 */\n checkedProps: {\n type: Object as PropType,\n },\n /** 组件子元素;传入数组时:[选中内容,非选中内容] */\n content: {\n type: [String, Number, Array, Function] as PropType,\n },\n /** 组件子元素,默认插槽 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态 */\n disabled: Boolean,\n /** 标签尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCheckTagProps['size'],\n validator(val: TdCheckTagProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 透传标签未选态属性 */\n uncheckedProps: {\n type: Object as PropType,\n },\n /** 标签唯一标识,一般用于标签组场景,单个可选择标签无需设置 */\n value: {\n type: [String, Number] as PropType,\n },\n /** 状态切换时触发 */\n onChange: Function as PropType,\n /** 点击标签时触发 */\n onClick: Function as PropType,\n};\n","import { defineComponent, computed, toRefs } from 'vue';\nimport props from './check-tag-props';\nimport { useVModel, useContent, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\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 { useVModel, usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './check-tag-group-props';\nimport CheckTag from './check-tag';\n\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 '@tdesign/shared-utils';\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 {\n useDisabled,\n useReadonly,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useDefaultValue,\n} from '@tdesign/shared-hooks';\n\nimport { useTagScroll, useHover, useDragSorter, useTagList } from './hooks';\n\nimport { isArray } from 'lodash-es';\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] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const { excessTagsDisplayType, clearable, placeholder } = toRefs(props);\n const { isHover, addHover, cancelHover } = useHover({\n readonly: isReadonly.value,\n disabled: isDisabled.value,\n onMouseenter: props.onMouseenter,\n onMouseleave: props.onMouseleave,\n });\n const isComposition = ref(false);\n const { classPrefix } = useConfig();\n const isFocused = ref(false);\n\n // 这里不需要响应式,因此直接传递参数\n const { getDragProps } = useDragSorter({\n ...props,\n sortOnDraggable: props.dragSort,\n onDragOverCheck: {\n x: true,\n targetClassNameRegExp: new RegExp(`^${classPrefix.value}-tag`),\n },\n });\n const { scrollToRight, onWheel, scrollToRightOnEnter, scrollToLeftOnLeave, tagInputRef, isScrollable } =\n useTagScroll(props);\n // handle tag add and remove\n // 需要响应式,为了尽量的和 react 版本做法相同,这里进行响应式处理\n const { tagValue, onInnerEnter, onInputBackspaceKeyUp, onInputBackspaceKeyDown, clearAll, renderLabel, onClose } =\n useTagList(\n reactive({\n ...toRefs(props),\n getDragProps,\n }),\n );\n\n const classes = computed(() => {\n const isEmpty = !(isArray(tagValue.value) && tagValue.value.length);\n return [\n NAME_CLASS.value,\n {\n [BREAK_LINE_CLASS.value]: excessTagsDisplayType.value === 'break-line',\n [`${classPrefix.value}-is-empty`]: isEmpty,\n [`${classPrefix.value}-tag-input--with-tag`]: !isEmpty,\n [`${classPrefix.value}-tag-input--drag-sort`]: props.dragSort && !isReadonly.value && !isDisabled.value,\n },\n ];\n });\n\n const tagInputPlaceholder = computed(() => (!tagValue.value?.length ? placeholder.value : ''));\n\n const showClearIcon = computed(() =>\n Boolean(\n !isReadonly.value &&\n !isDisabled.value &&\n clearable.value &&\n isHover.value &&\n (tagValue.value?.length || tInputValue.value),\n ),\n );\n\n const onInputEnter = (value: string, context: { e: KeyboardEvent }) => {\n // 阻止 Enter 默认行为,避免在 Form 中触发 submit 事件\n context.e?.preventDefault?.();\n setTInputValue('', { e: context.e, trigger: 'enter' });\n !isComposition.value && onInnerEnter(value, context);\n nextTick(() => {\n scrollToRight();\n isComposition.value = false;\n });\n };\n\n const onInputCompositionstart = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = true;\n inputProps.value?.onCompositionstart?.(value, context);\n };\n\n const onInputCompositionend = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = false;\n inputProps.value?.onCompositionend?.(value, context);\n };\n\n const onClick: TdInputProps['onClick'] = (ctx) => {\n if (isDisabled.value) return;\n isFocused.value = true;\n tagInputRef.value?.focus();\n props.onClick?.(ctx);\n };\n\n const onClearClick = (context: { e: MouseEvent }) => {\n clearAll(context);\n setTInputValue('', { e: context.e, trigger: 'clear' });\n props.onClear?.(context);\n };\n\n const onMouseEnter: InputProps['onMouseenter'] = (context) => {\n addHover(context);\n scrollToRightOnEnter();\n };\n\n const onMouseLeave: InputProps['onMouseleave'] = (context) => {\n cancelHover(context);\n scrollToLeftOnLeave();\n };\n\n const onInnerFocus: InputProps['onFocus'] = (inputValue: string, context: { e: MouseEvent }) => {\n if (isFocused.value) return;\n isFocused.value = true;\n props.onFocus?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerBlur: InputProps['onBlur'] = (inputValue: string, context: { e: MouseEvent }) => {\n isFocused.value = false;\n setTInputValue('', { e: context.e, trigger: 'blur' });\n props.onBlur?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerChange: StrInputProps['onChange'] = (val, context) => {\n setTInputValue(val, { ...context, trigger: 'input' });\n };\n\n watch(\n () => isScrollable.value,\n (v) => {\n if (props.excessTagsDisplayType !== 'scroll') return;\n const scrollElementClass = `${classPrefix.value}-input__prefix`;\n const scrollElement = tagInputRef.value.$el.querySelector(`.${scrollElementClass}`);\n if (v) scrollElement.classList.add(`${scrollElementClass}--scrollable`);\n else scrollElement.classList.remove(`${scrollElementClass}--scrollable`);\n },\n );\n\n return () => {\n const suffixIconNode = showClearIcon.value ? (\n \n ) : (\n renderTNodeJSX('suffixIcon')\n );\n const prefixIconNode = renderTNodeJSX('prefixIcon');\n const suffixClass = `${classPrefix.value}-tag-input__with-suffix-icon`;\n if (suffixIconNode && !classes.value.includes(suffixClass)) {\n classes.value.push(suffixClass);\n }\n // 自定义 Tag 节点\n const displayNode = renderTNodeJSX('valueDisplay', {\n params: {\n value: tagValue.value,\n onClose: (index: number) => onClose({ index }),\n },\n });\n // 左侧文本\n const label = renderTNodeJSX('label', { silent: true });\n // const inputProps = inputProps as TdTagInputProps['inputProps'];\n const readonly = isReadonly.value || inputProps.value?.readonly;\n\n return (\n renderLabel({ displayNode, label })}\n class={classes.value}\n tips={tips.value}\n status={status.value}\n placeholder={tagInputPlaceholder.value}\n suffix={suffix.value}\n suffixIcon={() => suffixIconNode}\n prefixIcon={() => prefixIconNode}\n keepWrapperWidth={!autoWidth.value}\n onWheel={onWheel}\n onChange={onInnerChange}\n onPaste={onPaste.value}\n onEnter={onInputEnter}\n onKeyup={onInputBackspaceKeyUp}\n onKeydown={onInputBackspaceKeyDown}\n onMouseenter={onMouseEnter}\n onMouseleave={onMouseLeave}\n onFocus={onInnerFocus}\n onBlur={onInnerBlur}\n onClick={onClick}\n onCompositionstart={onInputCompositionstart}\n onCompositionend={onInputCompositionend}\n {...inputProps.value}\n />\n );\n };\n },\n});\n","import { ref } from 'vue';\n\nexport interface UseHoverParams {\n readonly: boolean;\n disabled: boolean;\n onMouseenter: (context: { e: MouseEvent }) => void;\n onMouseleave: (context: { e: MouseEvent }) => void;\n}\n\nexport function useHover(props: UseHoverParams) {\n const { disabled, readonly, onMouseenter, onMouseleave } = props;\n const isHover = ref(false);\n\n const addHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = true;\n onMouseenter?.(context);\n };\n\n const cancelHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = false;\n onMouseleave?.(context);\n };\n\n return { isHover, addHover, cancelHover };\n}\n","import { ref, reactive } from 'vue';\nimport { DragSortProps, DragSortInnerProps } from '../types';\n\nexport function useDragSorter(props: DragSortProps): DragSortInnerProps {\n const { sortOnDraggable, onDragSort, onDragOverCheck } = props;\n const draggingIndex = ref(-1);\n const dragStartData = ref(null);\n const isDropped = ref(null);\n const startInfo = reactive({ nodeX: 0, nodeWidth: 0, mouseX: 0 });\n\n const onDragOver = (e: DragEvent, index: number, record: T) => {\n e.preventDefault();\n if (draggingIndex.value === index || draggingIndex.value === -1) return;\n const target = e.target as HTMLElement;\n if (onDragOverCheck?.targetClassNameRegExp && !onDragOverCheck?.targetClassNameRegExp.test(target.className)) {\n return;\n }\n\n if (onDragOverCheck?.x && target) {\n if (!startInfo.nodeWidth) return;\n\n const { x, width } = target.getBoundingClientRect();\n const targetNodeMiddleX = x + width / 2;\n const draggingNodeLeft = e.clientX - (startInfo.mouseX - startInfo.nodeX);\n const draggingNodeRight = draggingNodeLeft + startInfo.nodeWidth;\n\n let overlap = false;\n if (draggingNodeLeft > x && draggingNodeLeft < x + width) {\n overlap = draggingNodeLeft < targetNodeMiddleX;\n } else {\n overlap = draggingNodeRight > targetNodeMiddleX;\n }\n\n if (!overlap) return;\n }\n\n onDragSort?.({\n currentIndex: draggingIndex.value,\n current: dragStartData,\n target: record,\n targetIndex: index,\n });\n\n draggingIndex.value = index;\n };\n\n if (!sortOnDraggable) {\n return {};\n }\n\n function onDragStart(e: DragEvent, index: number, record: T) {\n draggingIndex.value = index;\n dragStartData.value = record;\n const target = e.target as HTMLElement;\n if (onDragOverCheck && target) {\n const { x, width } = target.getBoundingClientRect();\n startInfo.nodeX = x;\n startInfo.nodeWidth = width;\n startInfo.mouseX = e.clientX;\n }\n }\n\n function onDrop() {\n isDropped.value = true;\n }\n\n function onDragEnd() {\n if (!isDropped.value) {\n // 取消排序,待扩展 api,输出 dragStartData\n }\n isDropped.value = false;\n draggingIndex.value = -1;\n dragStartData.value = null;\n }\n\n function getDragProps(index: number, record: T) {\n if (sortOnDraggable) {\n return {\n draggable: true,\n onDragstart: (e: DragEvent) => {\n onDragStart(e, index, record);\n },\n onDragover: (e: DragEvent) => {\n onDragOver(e, index, record);\n },\n onDrop: () => {\n onDrop();\n },\n onDragend: () => {\n onDragEnd();\n },\n };\n }\n return {};\n }\n\n return { onDragStart, onDragOver, onDrop, onDragEnd, getDragProps, dragging: draggingIndex.value !== -1 };\n}\n","/**\n * 当标签数量过多时,输入框显示不下,则需要滚动查看,以下为滚动逻辑\n * 如果标签过多时的处理方式,是标签省略,则不需要此功能\n */\n\nimport { isFunction } from 'lodash-es';\nimport { onMounted, onUnmounted, ref, toRefs } from 'vue';\nimport { TdTagInputProps } from '../type';\n\nexport function useTagScroll(props: TdTagInputProps) {\n const tagInputRef = ref();\n const { excessTagsDisplayType, readonly, disabled } = toRefs(props);\n // 允许向右滚动的最大距离\n const scrollDistance = ref(0);\n const scrollElement = ref();\n const mouseEnterTimer = ref();\n const isScrollable = ref(false); // 设置可滚动\n\n const updateScrollElement = (element: HTMLElement) => {\n const inputElement = element.children[0] as HTMLElement;\n scrollElement.value = inputElement;\n };\n\n const updateScrollDistance = () => {\n scrollDistance.value = scrollElement.value.scrollWidth - scrollElement.value.clientWidth;\n };\n\n const scrollTo = (distance: number) => {\n if (!isFunction(scrollElement.value?.scroll)) return;\n scrollElement.value.scroll({ left: distance, behavior: 'smooth' });\n };\n\n const scrollToRight = () => {\n updateScrollDistance();\n scrollTo(scrollDistance.value);\n setTimeout(() => {\n isScrollable.value = true;\n }, 200);\n };\n\n const scrollToLeft = () => {\n scrollTo(0);\n };\n\n // TODO:MAC 电脑横向滚动,Windows 纵向滚动。当前只处理了横向滚动\n const onWheel = ({ e }: { e: WheelEvent }) => {\n if (readonly.value || disabled.value) return;\n if (!scrollElement.value) return;\n if (e.deltaX > 0) {\n const distance = Math.min(scrollElement.value.scrollLeft + 120, scrollDistance.value);\n scrollTo(distance);\n } else {\n const distance = Math.max(scrollElement.value.scrollLeft - 120, 0);\n scrollTo(distance);\n }\n };\n\n // 鼠标 hover,自动滑动到最右侧,以便输入新标签\n const scrollToRightOnEnter = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n // 一闪而过的 mousenter 不需要执行\n mouseEnterTimer.value = setTimeout(() => {\n scrollToRight();\n clearTimeout(mouseEnterTimer.value);\n }, 100);\n };\n\n const scrollToLeftOnLeave = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n isScrollable.value = false; // 离开焦点不可滚动\n scrollTo(0);\n clearTimeout(mouseEnterTimer.value);\n };\n\n const init = () => {\n const element = tagInputRef.value?.$el;\n if (!element) return;\n updateScrollElement(element);\n };\n\n const clear = () => {\n clearTimeout(mouseEnterTimer.value);\n };\n\n onMounted(init);\n\n onUnmounted(clear);\n\n return {\n tagInputRef,\n scrollElement,\n scrollDistance,\n scrollTo,\n scrollToRight,\n scrollToLeft,\n updateScrollElement,\n updateScrollDistance,\n onWheel,\n scrollToRightOnEnter,\n scrollToLeftOnLeave,\n isScrollable,\n };\n}\n","import { computed, ref, toRefs } from 'vue';\nimport { TagInputValue, TagInputChangeContext } from '../type';\nimport { TagInputProps } from '../types';\nimport { InputValue } from '../../input';\nimport Tag from '../../tag';\nimport { useVModel, useTNodeJSX, useDisabled, useReadonly, usePrefixClass } from '@tdesign/shared-hooks';\n\nexport type ChangeParams = [TagInputChangeContext];\n\n// handle tag add and remove\nexport function useTagList(props: TagInputProps) {\n const renderTNode = useTNodeJSX();\n const classPrefix = usePrefixClass();\n const { value, modelValue, onRemove, max, minCollapsedNum, size, tagProps, getDragProps } = toRefs(props);\n // handle controlled property and uncontrolled property\n const [_tagValue, setTagValue] = useVModel(value, modelValue, props.defaultValue || [], props.onChange);\n const tagValue = computed(() => _tagValue.value || []);\n const oldInputValue = ref();\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // 点击标签关闭按钮,删除标签\n const onClose = (p: { e?: MouseEvent; index: number }) => {\n const arr = [...tagValue.value];\n const [item] = arr.splice(p.index, 1); // 当前删除的item无需参数传递\n setTagValue(arr, { trigger: 'tag-remove', ...p, item });\n onRemove.value?.({ ...p, item, trigger: 'tag-remove', value: arr });\n };\n\n const clearAll = (context: { e: MouseEvent }) => {\n setTagValue([], { trigger: 'clear', e: context.e });\n };\n\n // 按下 Enter 键,新增标签\n const onInnerEnter = (value: string, context: { e: KeyboardEvent }) => {\n const valueStr = value ? String(value).trim() : '';\n const isLimitExceeded = max && tagValue.value.length >= max.value;\n let newValue: TagInputValue = tagValue.value;\n if (!isLimitExceeded && valueStr) {\n newValue = tagValue.value.concat(String(valueStr));\n setTagValue(newValue, {\n trigger: 'enter',\n index: newValue.length - 1,\n item: valueStr,\n e: context.e,\n });\n }\n props?.onEnter?.(newValue, { ...context, inputValue: value });\n };\n\n // 按下回退键,删除标签\n const onInputBackspaceKeyUp = (value: InputValue) => {\n if (!tagValue.value.length) return;\n oldInputValue.value = value;\n };\n // 按下回退键,删除标签\n const onInputBackspaceKeyDown = (value: InputValue, context: { e: KeyboardEvent }) => {\n const { e } = context;\n if (!tagValue.value.length || e.key === 'Process' || isReadonly.value) return;\n // 回车键删除,输入框值为空时,才允许 Backspace 删除标签\n const isDelete = /(Backspace|NumpadDelete)/i.test(e.code) || /(Backspace|NumpadDelete)/i.test(e.key);\n if (!value && isDelete) {\n const index = tagValue.value.length - 1;\n const item = tagValue.value[index];\n const trigger = 'backspace';\n const newValue = tagValue.value.slice(0, -1);\n setTagValue(newValue, { e, index, item, trigger });\n onRemove.value?.({ e, index, item, trigger, value: newValue });\n }\n oldInputValue.value = value;\n };\n\n const renderLabel = ({ displayNode, label }: { displayNode: any; label: any }) => {\n const newList = minCollapsedNum.value ? tagValue.value.slice(0, minCollapsedNum.value) : tagValue.value;\n const list = displayNode\n ? [displayNode]\n : newList.map((item, index) => {\n const tagContent = renderTNode('tag', { params: { value: item } });\n return (\n onClose({ e: context.e, index })}\n closable={!isReadonly.value && !isDisabled.value}\n {...getDragProps.value?.(index, item)}\n {...tagProps.value}\n >\n {tagContent ?? item}\n \n );\n }) || [];\n if (![null, undefined, ''].includes(label)) {\n list.unshift(\n
    \n {label}\n
    ,\n );\n }\n // 超出省略\n if (newList.length !== tagValue.value.length) {\n const len = tagValue.value.length - newList.length;\n const more = renderTNode('collapsedItems', {\n params: {\n value: tagValue.value,\n count: tagValue.value.length - minCollapsedNum.value,\n collapsedTags: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n collapsedSelectedItems: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n onClose,\n },\n });\n list.push(\n more ?? (\n \n +{len}\n \n ),\n );\n }\n return list;\n };\n\n return {\n tagValue,\n clearAll,\n onClose,\n onInnerEnter,\n onInputBackspaceKeyUp,\n onInputBackspaceKeyDown,\n renderLabel,\n };\n}\n","import _TagInput from './tag-input';\nimport { withInstall } from '@tdesign/shared-utils';\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 { useDisabled, useReadonly, usePrefixClass, useDefaultValue } from '@tdesign/shared-hooks';\n\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] = useDefaultValue(\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, isFunction } from 'lodash-es';\n\nimport { TdSelectInputProps } from '../type';\nimport { TdPopupProps, PopupVisibleChangeContext } from '../../popup';\nimport { useDisabled, useReadonly } from '@tdesign/shared-hooks';\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 { pick, isObject } from 'lodash-es';\n\nimport Input, { StrInputProps } from '../../input';\nimport Loading from '../../loading';\nimport { useTNodeJSX, useDisabled, useReadonly, usePrefixClass, useDefaultValue } from '@tdesign/shared-hooks';\n\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\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 !value.value ||\n (props.valueDisplayOptions?.useInputDisplay && popupVisible) ||\n (popupVisible && props.allowInput)\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 (popupVisible && props.allowInput) {\n return displayedValue;\n }\n if (\n !props.valueDisplayOptions?.useInputDisplay ||\n (props.valueDisplayOptions?.useInputDisplay && !popupVisible)\n ) {\n return undefined;\n }\n }\n\n return displayedValue;\n };\n\n const renderPlaceholder = (singleValueDisplay: any) => {\n // 使用valueDisplay插槽时,如用户传入usePlaceholder使用自带占位符实现,未传则认为用户自行实现。\n // 如果当前存在value(对应直接使用组件和select组件调用时),不显示占位符。\n\n if (singleValueDisplay) {\n if (!value.value || (props.allowInput && props.popupVisible)) return props.placeholder;\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 { useTNodeJSX, usePrefixClass } from '@tdesign/shared-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 '@tdesign/shared-utils';\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","import { defineComponent, ref, toRefs, inject, watch, computed } from 'vue';\nimport { isString } from 'lodash-es';\nimport props from './props';\nimport {\n useVModel,\n useRipple,\n useContent,\n useDisabled,\n useReadonly,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { CheckboxGroupInjectionKey } from './consts';\nimport useCheckboxLazyLoad from './hooks/useCheckboxLazyLoad';\nimport useKeyboardEvent from './hooks/useKeyboardEvent';\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、Cascader 等组件中使用 阻止 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 e.stopPropagation()}\n key=\"input\"\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 { isObject, isUndefined, intersection } from 'lodash-es';\n\nimport Checkbox from './checkbox';\nimport props from './checkbox-group-props';\nimport { CheckboxOptionObj, TdCheckboxProps, CheckboxGroupValue } from './type';\nimport { CheckboxGroupInjectionKey } from './consts';\nimport { useVModel, useTNodeJSX, usePrefixClass, useChildComponentSlots } from '@tdesign/shared-hooks';\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 */\n const getAllCheckboxValue = () => {\n const checkAllVal = new Set();\n const uncheckAllVal = new Set();\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) {\n if (!innerValue.value.includes(item.value)) continue;\n else uncheckAllVal.add(item.value); // 添加禁用状态项的值到集合中\n }\n if (item.readonly) {\n if (!innerValue.value.includes(item.value)) continue;\n else uncheckAllVal.add(item.value); // 添加禁用状态项的值到集合中\n }\n\n checkAllVal.add(item.value); // 添加非排除状态项的值到集合中\n\n // 如果已达到最大限制,则终止循环\n if (maxExceeded.value) break;\n }\n\n return { checkAllVal: [...checkAllVal], uncheckAllVal: [...uncheckAllVal] }; // 从 Set 集合转换为数组并返回\n };\n\n const onCheckAllChange = (checked: boolean, context: { e: Event; source?: 't-checkbox' }) => {\n const { checkAllVal, uncheckAllVal } = getAllCheckboxValue();\n\n const value: CheckboxGroupValue = checked ? checkAllVal : uncheckAllVal;\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 '@tdesign/shared-utils';\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 isRemote: boolean,\n searchDisplayOptions: ComputedRef,\n optionsMap: ComputedRef, TdOptionProps>>,\n): string => {\n if (isRemote) {\n return searchDisplayOptions.value.filter((option) => option.value === value)[0]?.label || value?.toString();\n }\n\n const option = optionsMap.value.get(value);\n return option?.label || value?.toString();\n};\n\nexport const getMultipleContent = (\n value: SelectValue[],\n isRemote: boolean,\n searchDisplayOptions: ComputedRef,\n optionsMap: ComputedRef, TdOptionProps>>,\n) => {\n const res = [];\n for (const iterator of value) {\n const resLabel = getSingleContent(iterator, isRemote, searchDisplayOptions, 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 { useRipple, useContent, useDisabled, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\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, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\nimport props from './option-group-props';\n\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 '@tdesign/shared-hooks';\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,主要是为了方便跟其他组件搭配使用,比如说表格或者下拉框\nexport function 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}\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 { useConfig, useTNodeJSX, usePrefixClass, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport { usePanelVirtualScroll } from '../hooks';\nimport { selectInjectKey } from '../consts';\nimport type { TdSelectProps as SelectProps } from '../type';\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 keys: TdSelectProps.keys,\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 const keys = computed(() => props.keys as SelectProps['keys']);\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\n const defaultOmit = ['index', '$index', 'className', 'tagName'];\n\n const { value, label, disabled } = keys.value || {};\n // 如果 keys 中刚好有 content,则移除 content 渲染 https://github.com/Tencent/tdesign-vue-next/issues/5088\n const shouldOmitContent = [value, label, disabled].includes('content');\n const option = omit(item, defaultOmit.concat(shouldOmitContent ? 'content' : []));\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\n return () => {\n return isVirtual.value ? (\n <>\n {renderTNodeJSX('panelTopContent')}\n
    \n
    \n {renderPanel(visibleData.value, panelStyle.value)}\n
    \n {renderTNodeJSX('panelBottomContent')}\n \n ) : (\n <>\n {renderTNodeJSX('panelTopContent')}\n {renderPanel(displayOptions.value)}\n {renderTNodeJSX('panelBottomContent')}\n \n );\n };\n },\n});\n","import { defineComponent, provide, computed, toRefs, watch, ref, nextTick, PropType } from 'vue';\nimport { get, isArray, debounce, cloneDeep, isFunction, intersection, pick as picker } from 'lodash-es';\n\nimport FakeArrow from '../common-components/fake-arrow';\nimport SelectInput from '../select-input';\nimport SelectPanel from './components/select-panel';\nimport Tag from '../tag';\nimport props from './props';\n// hooks\nimport {\n useVModel,\n useConfig,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n usePrefixClass,\n useDefaultValue,\n} from '@tdesign/shared-hooks';\n\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, TdOptionProps } 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\n const isObjectType = computed(() => props.valueType === 'object');\n\n // 内部数据,格式化过的\n const innerValue = computed(() => {\n if (orgValue.value === undefined) {\n return props.multiple ? [] : undefined;\n }\n if (isObjectType.value) {\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 { optionsMap, optionsList, optionsCache, displayOptions, filterMethods, searchDisplayOptions } =\n useSelectOptions(props, keys, innerInputValue, innerValue);\n\n const setInnerValue: TdSelectProps['onChange'] = (newVal: SelectValue | SelectValue[], context) => {\n if (isObjectType.value) {\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 &&\n innerPopupVisible.value &&\n getSingleContent(innerValue.value, isRemoteSearch.value, currentSelectOptions, 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[], isRemoteSearch.value, currentSelectOptions, optionsMap)\n : getSingleContent(innerValue.value, isRemoteSearch.value, currentSelectOptions, optionsMap),\n );\n\n // valueDisplayParams参数\n const valueDisplayParams = computed(() => {\n if (!props.multiple) {\n return {\n ...optionsMap.value.get(innerValue.value),\n value: innerValue.value,\n label: displayText.value,\n };\n }\n\n const val = isArray(innerValue.value) ? innerValue.value.map((value) => optionsMap.value.get(value)) : [];\n const params = {\n value: val,\n onClose: props.multiple ? (index: number) => removeTag(index) : () => {},\n };\n\n if (props.minCollapsedNum && isArray(innerValue.value)) {\n return {\n ...params,\n displayValue: Array.isArray(val) ? 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 === 'backspace') {\n // 如果最后一个为disabled,则应删除前一项(非disabled的)\n let closest = -1;\n let len = index;\n\n const currentSelected = getCurrentSelectedOptions();\n while (len >= 0) {\n if (!currentSelected[len]?.disabled) {\n closest = len;\n break;\n }\n len -= 1;\n }\n // 只剩下disabled的情况,不做任何操作\n if (closest < 0) return;\n\n // 前面不是disabled的option\n const values = currentSelected[closest];\n\n const currentSelectedOptions = currentSelected.filter((item) => item.value !== values.value);\n\n setInnerValue(\n currentSelectedOptions.map((item) => item.value),\n { selectedOptions: currentSelectedOptions, trigger, e },\n );\n\n props.onRemove?.({\n value: values.value as string | number,\n data: values,\n e,\n });\n\n return;\n }\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 // 获取当前选中的选项,和 getSelectedOptions 的区别是 这个会保持选择的先后顺序\n const getCurrentSelectedOptions = () => {\n const options: TdOptionProps[] = [];\n\n // 需要处理 objectType 的情况\n const selectedValue = isObjectType.value ? orgValue.value : innerValue.value;\n const values = isArray(selectedValue) ? selectedValue : [selectedValue];\n\n values.forEach((value) => {\n const option = optionsMap.value.get(isObjectType.value ? value.value : value);\n if (option) options.push(option);\n // 处理不存在选项的值的场景,也需要推入\n else options.push(isObjectType.value ? value : { value });\n });\n return options;\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 = isObjectType.value\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 (\n intersectionLen.value === (isRemoteSearch.value ? searchDisplayOptions.value.length : optionalList.value.length)\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 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\n /**\n * 获取当前选中的选项 —— 远程搜索数据和本地传入的数据\n */\n const currentSelectOptions = computed(() => {\n return isRemoteSearch.value ? searchDisplayOptions.value : getCurrentSelectedOptions();\n });\n\n const renderValueDisplay = () => {\n const renderTag = () => {\n if (!props.multiple || props.selectInputProps?.multiple === false) {\n return undefined;\n }\n\n return innerValue.value\n .slice(0, props.minCollapsedNum ? props.minCollapsedNum : innerValue.value.length)\n .map?.((v: string, key: number) => {\n const option = currentSelectOptions.value.find((item) => {\n if (item.value === v) {\n return true;\n }\n });\n\n return (\n {\n e.stopPropagation();\n props.tagProps?.onClose?.({ e });\n removeTag(key);\n }}\n >\n {option ? option.label ?? option?.value : v}\n \n );\n });\n };\n\n return (\n renderTNodeJSX('valueDisplay', {\n params: valueDisplayParams.value,\n }) || renderTag()\n );\n };\n\n provide('updateScrollTop', updateScrollTop);\n return () => {\n const { overlayClassName, ...restPopupProps } = (props.popupProps || {}) as TdSelectProps['popupProps'];\n return (\n
    \n renderTNodeJSX('tips'),\n minCollapsedNum: props.minCollapsedNum,\n autofocus: props.autofocus,\n suffix: props.suffix,\n valueDisplayOptions: props.valueDisplayOptions,\n }}\n ref={selectInputRef}\n class={COMPONENT_NAME.value}\n value={displayText.value}\n disabled={isDisabled.value}\n popupVisible={innerPopupVisible.value}\n inputValue={innerPopupVisible.value ? innerInputValue.value : ''}\n placeholder={`${placeholderText.value}`}\n allowInput={isFilterable.value}\n collapsed-items={props.collapsedItems}\n inputProps={{\n size: props.size,\n autofocus: props.autofocus,\n ...(props.inputProps as TdSelectProps['inputProps']),\n onkeydown: handleKeyDown,\n }}\n tagInputProps={{\n size: props.size,\n ...(props.tagInputProps as TdSelectProps['tagInputProps']),\n }}\n onTagChange={(val, ctx) => {\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={renderValueDisplay}\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 { computed, Slots, Ref, ref } from 'vue';\nimport { get, isArray, isFunction, uniqBy } from 'lodash-es';\n\nimport { useChildComponentSlots } from '@tdesign/shared-hooks';\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 = (\n props: TdSelectProps,\n keys: Ref,\n inputValue: Ref,\n innerValue: Ref>,\n) => {\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 searchOptions = ref([]);\n\n const getSelectedOptions = (options: TdOptionProps[], selectValue: SelectValue[] | SelectValue) => {\n return options.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 * @description 获取搜索结果选项\n * 这里通过记录所有时间选中的 options 来保证搜索结果中选中的选项不会被过滤掉\n */\n const searchDisplayOptions = computed(() => {\n const currentSelectedOptions = getSelectedOptions(optionsList.value, innerValue.value);\n searchOptions.value = uniqBy([...searchOptions.value, ...currentSelectedOptions], 'value');\n const searchSelectedOptions = getSelectedOptions(searchOptions.value, innerValue.value);\n\n return uniqBy([...searchSelectedOptions, ...optionsList.value], 'value');\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 searchDisplayOptions,\n };\n};\n","import { ref, watch, ComputedRef, Ref } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { getNewMultipleValue } from '../utils';\n\nimport type { SelectOption, TdOptionProps, SelectValue } from '../type';\nimport type { ChangeHandler } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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, isNumber, isFunction } from 'lodash-es';\n\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport props from './props';\n\nexport default defineComponent({\n name: 'TInputAdornment',\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 '@tdesign/shared-utils';\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, isObject } 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 {\n useConfig,\n useVModel,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useDefaultValue,\n} from '@tdesign/shared-hooks';\n\nimport TInputNumber from '../input-number';\nimport { Select } from '../select';\nimport TInputAdornment from '../input-adornment';\nimport props from './props';\nimport { usePaginationClasses, useMoreAction } from './hooks';\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 '@tdesign/shared-hooks';\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 { useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport TButton from '../button';\nimport TTooltip from '../tooltip';\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 const renderWithTooltip = (content: string | undefined, node: JSX.Element) => {\n if (!content) return node;\n return (\n \n {node}\n \n );\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 {renderWithTooltip(\n titleConfig.value.prev,\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\n {props.showCurrent &&\n renderWithTooltip(\n titleConfig.value.current,\n props.onChange?.({ e, trigger: 'current' })}\n icon={() => }\n class={`${COMPONENT_NAME.value}__current`}\n disabled={disabledConfig.value.current}\n />,\n )}\n\n {renderWithTooltip(\n titleConfig.value.next,\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});\n","import _Pagination from './pagination';\nimport _PaginationMini from './pagination-mini';\nimport { withInstall } from '@tdesign/shared-utils';\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, useContent, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-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 { useVModel, usePrefixClass, useChildComponentSlots } from '@tdesign/shared-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 '@tdesign/shared-utils';\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 { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\nimport type { Styles } from '../common';\nimport Popup from '../popup';\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, useChildComponentSlots } from '@tdesign/shared-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 '@tdesign/shared-utils';\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 '@tdesign/shared-utils';\nimport { useConfig, useContent, useChildSlots, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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 '@tdesign/shared-hooks';\nimport { isString, 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 { isString, isFunction, escapeRegExp } from 'lodash-es';\nimport HighlightOption from './highlight-option';\nimport { useConfig, usePrefixClass, CommonClassNameType } from '@tdesign/shared-hooks';\nimport { AutoCompleteOptionObj, TdAutoCompleteProps } from '../type';\nimport log from '@tdesign/common-js/log/index';\n\nimport { on, off } from '@tdesign/shared-utils';\n\nimport { ARROW_UP_REG, ARROW_DOWN_REG, ENTER_REG } from '@tdesign/common-js/common';\n\nexport default defineComponent({\n name: 'AutoCompleteOptionList',\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 emits: ['select'],\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.value[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 {\n useVModel,\n useContent,\n useTNodeJSX,\n useDisabled,\n useReadonly,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\nimport AutoCompleteOptionList from './components/option-list';\n\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { ClassName } from '../common';\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, SIZE } = 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 './components/highlight-option';\nimport { withInstall } from '@tdesign/shared-utils';\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 { isArray, isEmpty, isNumber, isObject } from 'lodash-es';\n\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 { isArray, isNumber, cloneDeep, isFunction } 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\n // 筛选情况下,不更新展开节点\n if (!cascaderContext.inputVal) {\n treeStore.replaceExpanded(expanded);\n const nodes = treeStore.getNodes().filter((node: TreeNode) => node.visible);\n setTreeNodes(nodes);\n }\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 { useRipple, useGlobalIcon, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\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 { useConfig, usePrefixClass, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport { getDefaultNode } from '@tdesign/shared-utils';\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, isString, isFunction } from 'lodash-es';\n\nimport TreeStore from '@tdesign/common-js/tree/tree-store';\nimport { useVModel, useDisabled, useDefaultValue } from '@tdesign/shared-hooks';\n\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 }\n\n if (!isEmptyValues(innerValue.value)) {\n statusContext.scopeVal = getCascaderValue(innerValue.value, valueType, multiple);\n } else {\n statusContext.scopeVal = 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 {\n useConfig,\n useTNodeJSX,\n useDisabled,\n useReadonly,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\nimport { useCascaderContext } from './hooks';\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 '@tdesign/shared-utils';\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}}}));","!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 { isString } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';\nimport isLeapYear from 'dayjs/plugin/isLeapYear';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\nimport log from '../log';\n\ntype DateValue = string | number | Date;\n\ndayjs.extend(isoWeeksInYear);\ndayjs.extend(isLeapYear);\ndayjs.extend(customParseFormat);\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// 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) {\n const formattedResult = dayjs(v, typeof v === 'string' ? format : undefined).format(timeFormat);\n return !dayjs(formattedResult, timeFormat).isValid() && defaultTime[i] ? defaultTime[i] : formattedResult;\n }\n return calcFormatTime(defaultTime[i], timeFormat);\n });\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 '@tdesign/shared-hooks';\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)}}}));","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 /** 是否只读,优先级大于 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 '@tdesign/shared-hooks';\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 internalYear: Array as PropType>,\n partial: String,\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 const nearestYear = computed(() => {\n // 右侧面板年份选择需要保持大于左侧面板年份选择\n const extraYear =\n props.partial === 'end' &&\n props.mode === 'year' &&\n Number(props.internalYear[1]) - Number(props.internalYear[0]) <= 9\n ? 9\n : 0;\n\n return (\n yearOptions.value.find(\n (option) => option.value - (props.year + extraYear) <= 9 && option.value - (props.year + extraYear) >= 0,\n )?.value || props.year\n );\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 '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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 const valueDayjs = parseToDayjs(value, props.format).locale(dayjsLocale);\n const targetDayjs = parseToDayjs(targetValue, props.format).locale(dayjsLocale);\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]:\n valueDayjs.year() === targetDayjs.year() && valueDayjs.week() === targetDayjs.week(),\n };\n };\n\n const multipleWeekRowClass = (value: DateMultipleValue, targetValue: Date) => {\n const targetDayjs = parseToDayjs(targetValue, props.format);\n if (props.mode !== 'week' || (Array.isArray(value) && !value.length)) return {};\n const isSomeYearWeek = value\n .map?.((v) => parseToDayjs(v, props.format))\n .some((item) => item.week() === targetDayjs.week() && item.year() === targetDayjs.year());\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]: isSomeYearWeek,\n };\n };\n const activeRowCss = props.multiple ? multipleWeekRowClass : weekRowClass;\n\n return () => (\n
    props.onCellMouseLeave?.({ e })}>\n \n {showThead.value && (\n \n \n {weekArr.value.map((value: string, i: number) => (\n \n ))}\n \n \n )}\n \n {props.data.map((row: Array, i: number) => (\n \n {row.map((col: any, j: number) => (\n \n ))}\n \n ))}\n \n
    \n {value}\n
    \n
    \n );\n },\n});\n","export const AM = 'am';\nexport const PM = 'pm';\nexport const MERIDIEM_LIST = [AM, PM];\n\nexport const TIME_PICKER_EMPTY: Array = [undefined, undefined];\n\nexport const DEFAULT_STEPS = [1, 1, 1];\nexport const DEFAULT_FORMAT = 'HH:mm:ss';\nexport const EMPTY_VALUE = -1;\n\nexport enum EPickerCols {\n hour = 'hour',\n minute = 'minute',\n second = 'second',\n milliSecond = 'millisecond',\n meridiem = 'meridiem',\n}\n\n// RegExp\nexport const TIME_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\n// 上下午前置\nexport const PRE_MERIDIEM_FORMAT = /^(a|A)\\s+?[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?$/;\n// 上下午后置\nexport const POST_MERIDIEM_FORMAT = /^[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?(\\s+(a|A))?$/;\n// 12小时制\nexport const TWELVE_HOUR_FORMAT = /[h]{1}/;\n// HH:mm\nexport const HM_FORMAT = /[hH]{1,2}:m{1,2}/;\n// HH:mm:ss\nexport const HMS_FORMAT = /[hH]{1,2}:m{1,2}:s{1,2}/;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimePickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项的配置函数 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 透传给输入框(Input)组件的参数 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间选择,示例:`{ '前一小时': '11:00:00' }` */\n presets: {\n type: Object as PropType,\n },\n /** 只读状态,优先级大于 `allowInput` */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimePickerProps['size'],\n validator(val: TdTimePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimePickerProps['status'],\n validator(val: TdTimePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n modelValue: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: String as PropType,\n default: '' as TdTimePickerProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 当输入框失去焦点时触发,value 表示组件当前有效值 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 点击清空按钮时触发 */\n onClear: Function as PropType,\n /** 面板关闭时触发 */\n onClose: Function as PropType,\n /** 点击确认按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发,value 表示组件当前有效值 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板打开时触发 */\n onOpen: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { isBoolean } from 'lodash-es';\nimport { PropType } from 'vue';\nimport dayjs from 'dayjs';\n\nimport * as Props from '../props';\nimport { EPickerCols } from '@tdesign/common-js/time-picker/const';\nimport { TdTimePickerProps, TdTimeRangePickerProps } from '../type';\n\n// 布尔类型\nconst BooleanType = {\n type: Boolean,\n default: true,\n validator(v: boolean): boolean {\n return isBoolean(v);\n },\n};\n\nexport const panelProps = () => ({\n disabled: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n isFocus: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n value: {\n type: String,\n default: '',\n },\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n isShowPanel: {\n ...BooleanType,\n ...{\n default: true,\n },\n },\n activeIndex: {\n type: Number,\n },\n presets: {\n type: Object as PropType,\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n isFooterDisplay: {\n ...BooleanType,\n },\n});\n\nexport const panelColProps = () => ({\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n cols: {\n type: Array as PropType>,\n default: () => [EPickerCols.hour, EPickerCols.minute, EPickerCols.second],\n },\n value: {\n type: String,\n default: '',\n },\n range: {\n type: Array as PropType>,\n default: () => [] as Array,\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n localeMeridiems: {\n type: Array as PropType>,\n },\n});\n","import dayjs from 'dayjs';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { EPickerCols, TIME_FORMAT } from './const';\n\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\n\n// 判断是否输入的值是合法的timepicker的值\nexport function validateInputValue(value: string, format: string) {\n return dayjs(value, format).format(format) === value;\n}\n\n// 转换输入值为标准格式的timepicker的值\nexport function formatInputValue(value: string, format: string) {\n return dayjs(value, format).format(format);\n}\n\n// 计算最接近的时间点\nexport function closestLookup(\n availableArr: Array,\n calcVal: number,\n step: number\n) {\n if (step <= 1) return calcVal;\n return availableArr.sort(\n (a, b) => Math.abs(calcVal + 1 - a) - Math.abs(calcVal + 1 - b)\n )[0];\n}\n\nexport function getPickerCols(format:string) {\n const renderCol: EPickerCols[] = [];\n const {\n meridiem, hour, minute, second, milliSecond,\n } = EPickerCols;\n const match = format.match(TIME_FORMAT);\n match.forEach((m) => {\n switch (m) {\n case 'H':\n case 'HH':\n case 'h':\n case 'hh':\n renderCol.push(hour);\n break;\n case 'a':\n case 'A':\n renderCol.push(meridiem);\n break;\n case 'm':\n case 'mm':\n renderCol.push(minute);\n break;\n case 's':\n case 'ss':\n renderCol.push(second);\n break;\n case 'SSS':\n renderCol.push(milliSecond);\n break;\n default:\n break;\n }\n });\n return renderCol;\n}\n","import { computed, defineComponent, ref, watch, toRefs, onMounted, reactive, nextTick } from 'vue';\nimport { range, debounce, padStart } from 'lodash-es';\n\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 '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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 { isNil } from 'lodash-es';\nimport { parseToDayjs } from '@tdesign/common-js/date-picker/format';\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\nexport function parseToDateTime(\n value: string | Date | number,\n format: string,\n times?: [number, number, number, number?],\n) {\n if (isNil(value)) {\n return null;\n }\n\n let dayjs = parseToDayjs(value, format);\n\n if (times) {\n const [hour = 0, minute = 0, second = 0, millisecond = 0] = times;\n dayjs = dayjs.hour(hour).minute(minute).second(second).millisecond(millisecond);\n }\n\n return dayjs.toDate();\n}\n","import { defineComponent, PropType } from 'vue';\nimport { isFunction, isArray } from 'lodash-es';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport type { TdDatePickerProps, TdDateRangePickerProps, DateRangePickerPartial } 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';\nimport type { DateValue } from '@tdesign/common-js/date-picker/utils';\nimport { parseToDateTime } from '../../utils';\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 internalYear: Array as PropType>,\n disableTime: Function as PropType,\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 disableTimeOptions = () => {\n if (!isFunction(props.disableTime)) {\n return {};\n }\n\n const startValue = isArray(props.value) ? props.value[0] : props.value;\n const endValue = isArray(props.value) ? props.value[1] : props.value;\n\n return props.disableTime(\n [parseToDateTime(startValue as DateValue, props.format), parseToDateTime(endValue as DateValue, props.format)],\n {\n partial: props.partial as DateRangePickerPartial,\n },\n );\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 '@tdesign/shared-hooks';\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: Boolean,\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: Boolean,\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.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, watch } from 'vue';\nimport { useVModel } from '@tdesign/shared-hooks';\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 // 用于处理预设值的场景,打开面板自动展示未来某个时间的场景\n watch(\n () => isFirstValueSelected.value,\n () => {\n if (year.value[1] < year.value[0]) {\n year.value[1] = year.value[0];\n }\n if (month.value[1] < month.value[0]) {\n month.value[1] = month.value[0];\n }\n },\n );\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 { useConfig, useTNodeJSX, useReadonly, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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: Boolean,\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 { useConfig, useTNodeJSX, useDisabled, useReadonly, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\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';\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 if (['week', 'quarter'].includes(props.mode)) {\n onChange?.(ctx.value, { trigger: 'tag-remove' });\n return;\n }\n\n const removeDate = dayjs(ctx.item).toDate();\n const newDate = processDate(removeDate);\n onChange?.(newDate, {\n dayjsValue: parseToDayjs(removeDate, formatRef.value.format),\n trigger: 'tag-remove',\n });\n }\n\n function onTagClearClick({ e }: { e: MouseEvent }) {\n e.stopPropagation();\n popupVisible.value = false;\n onChange?.([], { dayjsValue: dayjs(), trigger: 'clear' });\n }\n\n // 头部快速切换\n function onJumperClick({ trigger }: { trigger: string }) {\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n\n const current = new Date(year.value, month.value);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n const nextYear = next.getFullYear();\n const nextMonth = next.getMonth();\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // timePicker 点击\n function onTimePickerChange(val: string) {\n time.value = val;\n\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n const currentDate = !dayjs(inputValue.value as string, formatRef.value.format).isValid()\n ? dayjs()\n : dayjs(inputValue.value as string, formatRef.value.format);\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n inputValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n cacheValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n\n props.onPick?.(nextDate);\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = formatDate(inputValue.value, {\n format: formatRef.value.format,\n });\n if (nextValue) {\n props?.onConfirm?.({ date: dayjs(nextValue as string).toDate(), e });\n onChange?.(\n formatDate(inputValue.value, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(inputValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n } else {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n }\n popupVisible.value = false;\n }\n\n // 预设\n function onPresetClick(presetValue: DateValue | (() => DateValue)) {\n const presetVal = isFunction(presetValue) ? presetValue() : presetValue;\n onChange?.(\n formatDate(presetVal, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(presetVal, formatRef.value.format),\n trigger: 'preset',\n },\n );\n // 更新到 input,避免 needConfirm 导致值被覆盖\n inputValue.value = formatDate(presetVal, {\n format: formatRef.value.format,\n });\n popupVisible.value = false;\n }\n\n function onYearChange(nextYear: number) {\n year.value = nextYear;\n }\n\n function onMonthChange(nextMonth: number) {\n month.value = nextMonth;\n }\n\n const panelProps = computed(() => ({\n value: cacheValue.value as string,\n year: year.value,\n month: month.value,\n format: formatRef.value.format,\n mode: props.mode,\n presets: props.presets,\n multiple: props.multiple,\n time: props.multiple ? '' : time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: popupVisible.value,\n needConfirm: props.needConfirm,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n onPanelClick: () => inputRef.value?.focus?.(),\n }));\n\n return () => (\n
    \n renderTNodeJSX('label')}\n status={props.status}\n tips={props.tips}\n clearable={props.clearable}\n readonly={isReadOnly.value}\n multiple={props.multiple}\n popupProps={popupProps.value}\n inputProps={inputProps.value}\n placeholder={\n props.placeholder || (globalConfig.value.placeholder as { [key in typeof props.mode]: string })[props.mode]\n }\n popupVisible={!isReadOnly.value && popupVisible.value}\n valueDisplay={() => renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n needConfirm={props.needConfirm}\n {...(props.selectInputProps as TdDatePickerProps['selectInputProps'])}\n panel={() => }\n tagInputProps={{\n onRemove: onTagRemoveClick,\n }}\n onClear={onTagClearClick}\n prefixIcon={() => renderTNodeJSX('prefixIcon')}\n suffixIcon={() => renderTNodeJSX('suffixIcon') || }\n />\n
    \n );\n },\n});\n","import { ref, computed, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { omit } from 'lodash-es';\n\nimport { useDisabled, useReadonly, usePrefixClass } from '@tdesign/shared-hooks';\n\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';\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 /** 禁用时间项的配置函数,仅在日期区间选择器中开启时间展示时可用 */\n disableTime: {\n type: Function as PropType,\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 {\n useVModel,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 '@tdesign/shared-hooks';\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';\nimport { isFunction } from 'lodash-es';\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 disableTime: 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 needConfirm: Boolean,\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 const disableDate = isFunction(props.disableDate)\n ? props.disableDate({ partial: 'start', value: props.value[0] })\n : disableDateOptions.value.disableDate;\n return 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 disableDate,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n });\n });\n\n const endTableData = computed(() => {\n const disableDate = isFunction(props.disableDate)\n ? props.disableDate({ partial: 'end', value: props.value })\n : disableDateOptions.value.disableDate;\n\n return 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.mode === 'year' && props.year[1] - props.year[0] <= 9 ? props.year[1] + 9 : props.year[1],\n month: props.month[1],\n mode: props.mode,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n ...disableDateOptions.value,\n disableDate,\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 internalYear: props.year,\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 disableTime: props.disableTime,\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","import { defineComponent, computed, ref, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { useDisabled, useReadonly, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { isArray, isFunction } 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';\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 if (props.needConfirm) {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n } else {\n confirmValueChange();\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 const confirmValueChange = (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: e || null,\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 function onConfirmClick({ e }: { e: MouseEvent }) {\n confirmValueChange(e);\n\n const nextValue = [...(inputValue.value as string[])];\n\n const notValidIndex = nextValue.findIndex((v) => !v || !isValidDate(v, formatRef.value.format));\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 disableTime: props.disableTime,\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 needConfirm: props.needConfirm,\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 { isArray, isFunction } 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 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 props.onCellClick?.({\n e,\n partial: activeIndex.value ? 'end' : 'start',\n date: nextValue.map((v) => dayjs(v).toDate()),\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 '@tdesign/shared-utils';\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","/* 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 /** 表单原生的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 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","\"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 assertString(input) {\n if (input === undefined || input === null) throw new TypeError(\"Expected a string but received a \".concat(input));\n if (input.constructor.name !== 'String') throw new TypeError(\"Expected a string but received a \".concat(input.constructor.name));\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 }; }\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/**\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(ipAddress) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(ipAddress);\n\n // accessing 'arguments' for backwards compatibility: isIP(ipAddress [, version])\n // eslint-disable-next-line prefer-rest-params\n var version = (_typeof(options) === 'object' ? options.version : arguments[1]) || '';\n if (!version) {\n return isIP(ipAddress, {\n version: 4\n }) || isIP(ipAddress, {\n version: 6\n });\n }\n if (version.toString() === '4') {\n return IPv4AddressRegExp.test(ipAddress);\n }\n if (version.toString() === '6') {\n return IPv6AddressRegExp.test(ipAddress);\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;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar includes = function includes(str, val) {\n return str.indexOf(val) !== -1;\n};\nvar _default = exports.default = includes;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { isEmpty, isObject, isNumber, isBoolean } from 'lodash-es';\n\n// https://github.com/validatorjs/validator.js\n\nimport isDate from 'validator/lib/isDate';\nimport isEmail from 'validator/lib/isEmail';\n\nimport isURL from 'validator/lib/isURL';\n\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 _includesString = _interopRequireDefault(require(\"./util/includesString\"));\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\nprotocols - valid protocols can be modified with this option.\nrequire_tld - If set to false isURL will not check if the URL's host includes a top-level domain.\nrequire_protocol - if set to true isURL will return false if protocol is not present in the URL.\nrequire_host - if set to false isURL will not check if host is present in the URL.\nrequire_port - if set to true isURL will check if port is present in the URL.\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option.\nallow_underscores - if set to true, the validator will allow underscores in the URL.\nhost_whitelist - if set to an array of strings or regexp, and the domain matches none of the strings\n defined in it, the validation fails.\nhost_blacklist - if set to an array of strings or regexp, and the domain matches any of the strings\n defined in it, the validation fails.\nallow_trailing_dot - if set to true, the validator will allow the domain to end with\n a `.` character.\nallow_protocol_relative_urls - if set to true protocol relative URLs will be allowed.\nallow_fragments - if set to false isURL will return false if fragments are present.\nallow_query_components - if set to false isURL will return false if query components are present.\ndisallow_auth - if set to true, the validator will fail if the URL contains an authentication\n component, e.g. `http://username:password@example.com`\nvalidate_length - if set to false isURL will skip string length validation. `max_allowed_length`\n will be ignored if this is set as `false`.\nmax_allowed_length - if set, isURL will not allow URLs longer than the specified value (default is\n 2084 that IE maximum URL length).\n\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 && (0, _includesString.default)(url, '#')) {\n return false;\n }\n if (!options.allow_query_components && ((0, _includesString.default)(url, '?') || (0, _includesString.default)(url, '&'))) {\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;","export function getFormItemClassName(componentName: string, name?: string) {\n if (!name) return '';\n return `${componentName}__${name}`.replace(/(\\[|\\]|\\.)+/g, '_');\n}\n","import { computed, defineComponent, provide, reactive, ref, toRefs } from 'vue';\nimport { isEmpty, isArray, isBoolean, isFunction } from 'lodash-es';\n\nimport { requestSubmit } from '@tdesign/shared-utils';\nimport { FormItemValidateResult } 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';\nimport { getFormItemClassName } from './utils';\nimport { FormDisabledProvider, FormReadonlyProvider } from './hooks';\nimport { usePrefixClass, useTNodeJSX } from '@tdesign/shared-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)}\n onReset={(e) => onReset(e)}\n >\n {renderContent('default')}\n \n );\n },\n});\n","/* 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 {\n isNil,\n isArray,\n isNumber,\n isString,\n isBoolean,\n cloneDeep,\n get as lodashGet,\n set as lodashSet,\n} 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, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\nimport { getFormItemClassName } from './utils';\nimport { template } from '@tdesign/common-js/utils/stringTemplate';\n\nexport type FormItemValidateResult = { [key in keyof T]: boolean | AllValidateResult[] };\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 ?? globalConfig.value.requiredMarkPosition;\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 error: CloseCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n success: CheckCircleFilledIcon,\n }[type];\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","import _Form from './form';\nimport _FormItem from './form-item';\nimport { withInstall } from '@tdesign/shared-utils';\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 {\n useVModel,\n useContent,\n useDisabled,\n useReadonly,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\nimport { omit, isString } from 'lodash-es';\nimport props from './props';\nimport { RadioGroupInjectionKey, RadioButtonInjectionKey } from './consts';\n\n// hooks\n\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 '@tdesign/shared-hooks';\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 { isNil, isEqual, isString, isNumber, throttle, isFunction } from 'lodash-es';\n\nimport props from './radio-group-props';\nimport type { RadioOptionObj, RadioOption, TdRadioGroupProps } from './type';\nimport TRadio from './radio';\nimport TRadioButton from './radio-button';\nimport { RadioGroupInjectionKey } from './consts';\nimport {\n useVModel,\n usePrefixClass,\n useTNodeDefault,\n useResizeObserver,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { useKeyboard } from './hooks';\n\nimport { useMutationObserver } from '../watermark/hooks';\nimport type { UseMutationObserverReturn } from '../watermark/hooks';\n\nexport default defineComponent({\n name: 'TRadioGroup',\n props,\n setup(props) {\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n /** calculate bar style */\n const radioGroupRef = ref();\n const radioBtnName = usePrefixClass('radio-button');\n const { STATUS, SIZE } = useCommonClassName();\n\n const updateInnerValue: TdRadioGroupProps['onChange'] = (value, context) => {\n if (isEqual(value, innerValue.value)) return;\n setInnerValue(value, context);\n };\n\n // 键盘操作\n useKeyboard(radioGroupRef, updateInnerValue);\n\n const checkedClassName = computed(() => `.${radioBtnName.value}.${STATUS.value.checked}`);\n\n const barStyle = ref({ width: '0px', height: '0px', left: '0px', top: '0px', 'transition-property': 'none' });\n\n const calcDefaultBarStyle = () => {\n const div = document.createElement('div');\n div.setAttribute('style', 'position: absolute; visibility: hidden;');\n div.appendChild(radioGroupRef.value.cloneNode(true));\n document.body.appendChild(div);\n\n const defaultCheckedRadio: HTMLElement = div.querySelector(checkedClassName.value);\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = defaultCheckedRadio;\n barStyle.value = {\n ...barStyle.value,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n document.body.removeChild(div);\n };\n\n const calcBarStyle = (disableAnimation = false) => {\n if (props.variant === 'outline') return;\n\n const checkedRadio: HTMLElement = radioGroupRef.value.querySelector(checkedClassName.value);\n\n const transitionProperty = disableAnimation ? 'none' : 'all';\n if (!checkedRadio) {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: '0px',\n height: '9px',\n left: '0px',\n top: '0px',\n };\n return;\n }\n\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = checkedRadio;\n // current node is not rendered,fallback to default render\n if (!offsetWidth) {\n calcDefaultBarStyle();\n } else {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n }\n };\n\n let observerReturn: UseMutationObserverReturn;\n\n watch(innerValue, async () => {\n await nextTick();\n calcBarStyle();\n });\n\n onMounted(() => {\n calcBarStyle(true);\n useResizeObserver(\n radioGroupRef,\n throttle(async () => {\n await nextTick();\n calcBarStyle();\n }, 300),\n );\n\n const checkedRadioLabel: HTMLElement = radioGroupRef.value.querySelector(\n `${checkedClassName.value} .${radioBtnName.value}__label`,\n );\n if (checkedRadioLabel) {\n observerReturn = useMutationObserver(\n checkedRadioLabel,\n (mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'characterData') {\n calcBarStyle();\n }\n });\n },\n {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n },\n );\n }\n });\n onUnmounted(() => {\n observerReturn?.stop();\n });\n /** calculate bar style end */\n\n const { name, disabled, readonly } = toRefs(props);\n provide(\n RadioGroupInjectionKey,\n reactive({\n name,\n disabled,\n readonly,\n value: innerValue,\n allowUncheck: props.allowUncheck,\n setValue: updateInnerValue,\n }),\n );\n\n const radioGroupName = usePrefixClass('radio-group');\n const renderSlot = useTNodeDefault();\n const renderBlock = (): VNode => {\n if (props.variant.includes('filled') && !isNil(innerValue.value))\n return
    ;\n };\n const renderOptions = (): VNode[] => {\n return props.options?.map((option: RadioOption) => {\n let opt = option as RadioOptionObj;\n if (isNumber(option) || isString(option)) {\n opt = { value: option, label: option.toString() };\n }\n const RadioComponent = props.theme === 'button' ? TRadioButton : TRadio;\n return (\n \n {isFunction(opt.label) ? opt.label(h) : opt.label}\n \n );\n });\n };\n\n const groupClass = computed(() => [\n `${radioGroupName.value}`,\n SIZE.value[props.size],\n {\n [`${radioGroupName.value}__outline`]: props.variant === 'outline',\n [`${radioGroupName.value}--filled`]: props.variant.includes('filled'),\n [`${radioGroupName.value}--primary-filled`]: props.variant === 'primary-filled',\n },\n ]);\n\n return () => (\n
    \n {renderSlot('default') || renderOptions()}\n {renderBlock()}\n
    \n );\n },\n});\n","import { onBeforeMount, onMounted, Ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { off, on } from '@tdesign/shared-utils';\nimport { CHECKED_CODE_REG } from '@tdesign/common-js/common';\n\n/** 键盘操作 */\nexport function useKeyboard(\n radioGroupRef: Ref,\n setInnerValue: (value: any, context: { e: Event }) => void,\n) {\n const checkRadioInGroup = (e: KeyboardEvent) => {\n const inputNode = (e.target as HTMLElement).querySelector('input');\n if (!inputNode) return;\n\n const isCheckedCode = CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code);\n if (isCheckedCode) {\n e.preventDefault();\n\n const data = inputNode.dataset;\n if (inputNode.checked && data.allowUncheck) {\n setInnerValue(undefined, { e });\n } else {\n // Number\n let value: number | string | boolean = !isNaN(Number(data.value)) ? Number(data.value) : data.value;\n // Boolean\n value = (isString(value) && { true: true, false: false }[value]) || value;\n // String\n value = isString(value) && value[0] === \"'\" ? value.replace(/'/g, '') : value;\n setInnerValue(value, { e });\n }\n }\n };\n\n onMounted(() => {\n on(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n\n onBeforeMount(() => {\n off(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n}\n","import _Radio from './radio';\nimport _Group from './group';\nimport _RadioButton from './radio-button';\nimport { withInstall } from '@tdesign/shared-utils';\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 '@tdesign/shared-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 '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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, isBoolean } from 'lodash-es';\nimport { TdSliderProps } from '../type';\nimport InputNumber, { InputNumberProps, ChangeContext } from '../../input-number';\n\ninterface useSliderInputProps {\n inputNumberProps: boolean | TdSliderProps['inputNumberProps'];\n max: number;\n min: number;\n step: number;\n prefixName: string;\n vertical: boolean;\n disabled: boolean;\n}\n\n/**\n * 聚合管理inputNumber渲染逻辑\n */\nexport const useSliderInput = (config: Ref) => {\n const name = config.value.prefixName;\n\n /** 根据传入属性缓存计算inputNumber props */\n const sliderInputState = computed(() => {\n let initialState: InputNumberProps = {\n format: undefined,\n placeholder: '',\n theme: 'column',\n decimalPlaces: config.value.step.toString().split('.')[1]?.length || 0,\n };\n const inputProps = config.value;\n if (!isBoolean(inputProps.inputNumberProps)) {\n const inputTheme = inputProps.inputNumberProps?.theme;\n initialState = { ...initialState, ...omit(inputProps.inputNumberProps, 'onChange') };\n if (['column', 'row', 'normal'].includes(inputTheme)) {\n initialState.theme = inputTheme;\n }\n }\n return initialState;\n });\n\n const sliderNumberClass = computed(() => {\n return [\n `${name}__input`,\n {\n 'is-vertical': config.value.vertical,\n },\n ];\n });\n\n const renderInputNumber = (val: number, changeFn: (val: number) => void) => {\n // if exist min or max prop, onChange callback function will pass undefined value when decrease\n const normalizeChangeFn = (num: number | undefined, context: ChangeContext) => {\n if (num !== undefined && !isNaN(num)) {\n changeFn(num);\n }\n (config.value?.inputNumberProps as InputNumberProps)?.onChange?.(num, context);\n };\n return (\n \n );\n };\n\n return renderInputNumber;\n};\n","import { isNull } from 'lodash-es';\nimport { calculateNodeSize } from './helper';\n\ntype CalculateStyleType = {\n height?: string,\n minHeight?: string\n};\n\ntype LimitType = number | null;\n\nconst TEXTAREA_STYLE = `\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n`;\n\nlet hiddenTextarea: HTMLTextAreaElement;\n\nfunction calcTextareaHeight(\n targetElement: HTMLTextAreaElement,\n minRows: LimitType = 1,\n maxRows: LimitType = null,\n): CalculateStyleType {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.appendChild(hiddenTextarea);\n }\n\n const {\n paddingSize,\n borderSize,\n boxSizing,\n sizingStyle,\n } = calculateNodeSize(targetElement);\n\n hiddenTextarea.setAttribute('style', `${sizingStyle};${TEXTAREA_STYLE}`);\n hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';\n\n let height = hiddenTextarea.scrollHeight;\n const result: CalculateStyleType = {};\n const isBorderbox = boxSizing === 'border-box';\n const isContentbox = boxSizing === 'content-box';\n\n if (isBorderbox) {\n height += borderSize;\n } else if (isContentbox) {\n height -= paddingSize;\n }\n\n hiddenTextarea.value = '';\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n hiddenTextarea?.parentNode?.removeChild(hiddenTextarea);\n // @ts-ignore\n hiddenTextarea = null;\n\n const calcHeight = (rows: number) => {\n let rowsHeight = singleRowHeight * rows;\n if (isBorderbox) {\n rowsHeight = rowsHeight + paddingSize + borderSize;\n }\n return rowsHeight;\n };\n\n if (!isNull(minRows)) {\n const minHeight = calcHeight(minRows);\n height = Math.max(minHeight, height);\n result.minHeight = `${minHeight}px`;\n }\n if (!isNull(maxRows)) {\n height = Math.min(calcHeight(maxRows), height);\n }\n result.height = `${height}px`;\n return result;\n}\n\nexport default calcTextareaHeight;\n","import {\n defineComponent,\n VNode,\n ref,\n reactive,\n provide,\n computed,\n onBeforeUnmount,\n onMounted,\n watch,\n toRefs,\n} from 'vue';\nimport { isArray, isNumber } from 'lodash-es';\n\nimport props from './props';\nimport TSliderButton from './slider-button';\nimport { SliderValue } from './type';\n\n// hooks\nimport { useVModel, useDisabled, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\nimport { useSliderMark } from './hooks/useSliderMark';\nimport { useSliderInput } from './hooks/useSliderInput';\nimport { formatSliderValue, getStopStyle } from './utils';\nimport { sliderPropsInjectKey } from './consts';\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 { isArray, 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';\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 '@tdesign/shared-utils';\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 { useVModel, useDisabled, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\nimport TLoading from '../loading';\nimport props from './props';\nimport { TNodeReturnValue } from '../common';\n\n// hooks\n\nimport { isArray, isString, isFunction } 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 ${val} 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 '@tdesign/shared-utils';\nimport { TdSwitchProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SwitchProps = TdSwitchProps;\n\nexport const Switch = withInstall(_Switch);\nexport default Switch;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTextareaProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 超出maxlength或maxcharacter之后是否还允许输入 */\n allowInputOverMax: Boolean,\n /** 自动聚焦,拉起键盘 */\n autofocus: Boolean,\n /** 高度自动撑开。 autosize = true 表示组件高度自动撑开,同时,依旧允许手动拖高度。如果设置了 autosize.maxRows 或者 autosize.minRows 则不允许手动调整高度 */\n autosize: {\n type: [Boolean, Object] as PropType,\n default: false as TdTextareaProps['autosize'],\n },\n /** 是否禁用文本框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度 */\n maxcharacter: {\n type: Number,\n },\n /** 用户最多可以输入的字符个数 */\n maxlength: {\n type: [String, Number] as PropType,\n },\n /** 名称,HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 文本框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTextareaProps['status'],\n validator(val: TdTextareaProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 文本框值 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n /** 文本框值,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入内容变化时触发 */\n onChange: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 字数超出限制时触发 */\n onValidate: Function as PropType,\n};\n","import {\n defineComponent,\n computed,\n watch,\n ref,\n nextTick,\n onMounted,\n toRefs,\n inject,\n StyleValue,\n CSSProperties,\n} from 'vue';\nimport { isObject, merge, omit } from 'lodash-es';\n\nimport { FormItemInjectionKey } from '../form/consts';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\nimport { getCharacterLength, getValidAttrs } from '@tdesign/common-js/utils/helper';\n\n// hooks\nimport {\n useVModel,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { useLengthLimit } from '../input/hooks/useLengthLimit';\n\nimport props from './props';\nimport type { TextareaValue, TdTextareaProps } from './type';\n\nimport calcTextareaHeight from '@tdesign/common-js/utils/calcTextareaHeight';\n\nexport default defineComponent({\n name: 'TTextarea',\n inheritAttrs: false,\n props,\n setup(props: TdTextareaProps, { attrs, expose }) {\n const prefix = usePrefixClass();\n const name = usePrefixClass('textarea');\n const TEXTAREA_TIPS_CLASS = computed(() => `${name.value}__tips`);\n const TEXTAREA_LIMIT = computed(() => `${name.value}__limit`);\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const disabled = useDisabled();\n const isReadonly = useReadonly();\n const textareaStyle = ref({});\n\n const refTextareaElem = ref();\n const focused = ref(false);\n const isComposing = ref(false);\n\n const focus = () => refTextareaElem.value?.focus();\n const blur = () => refTextareaElem.value?.blur();\n\n // methods\n const adjustTextareaHeight = () => {\n if (props.autosize === true) {\n nextTick(() => {\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value);\n });\n } else if (props.autosize && typeof props.autosize === 'object') {\n const { minRows, maxRows } = props.autosize;\n nextTick(() => {\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value, minRows, maxRows);\n });\n } else if (attrs.rows) {\n textareaStyle.value = { height: 'auto', minHeight: 'auto' };\n } else if (attrs.style && refTextareaElem.value?.style?.height) {\n textareaStyle.value = { height: refTextareaElem.value.style.height };\n }\n };\n\n const setInputValue = (v: TextareaValue = '') => {\n const textareaElem = refTextareaElem.value;\n const sV = String(v);\n if (!textareaElem) {\n return;\n }\n\n if (textareaElem.value !== sV) {\n textareaElem.value = sV;\n innerValue.value = sV;\n }\n };\n const inputValueChangeHandle = (e: InputEvent) => {\n const { target } = e;\n let val = (target as HTMLInputElement).value;\n if (props.maxcharacter && props.maxcharacter >= 0) {\n const stringInfo = getCharacterLength(val, props.maxcharacter);\n if (!props.allowInputOverMax) {\n val = typeof stringInfo === 'object' && stringInfo.characters;\n }\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 ]);\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 '@tdesign/shared-utils';\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 { isArray, cloneDeep, isUndefined } from 'lodash-es';\n\nimport { TransferListOptionBase, TransferItemOption, TdTransferProps, TransferValue, DataOption } from '../types';\n\n// TODO:PAOPAO for what?\n// export { 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 { useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\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 { useConfig, usePrefixClass, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport { filter, isString, cloneDeep } from 'lodash-es';\n\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, VNode } from 'vue';\nimport { ChevronRightIcon as TdChevronRightIcon, ChevronLeftIcon as TdChevronLeftIcon } from 'tdesign-icons-vue-next';\n\nimport Button from '../../button';\nimport { SlotReturnArray, TNode } from '../../common';\nimport { useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport props from '../props';\nimport { isArray, isString, isFunction } 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\n if (isFunction(props.operation)) {\n const renderContent = props.operation;\n return renderContent(h as any, { direction });\n }\n\n let renderContent: string | TNode | VNode | SlotReturnArray | null;\n if (isArray(props.operation)) {\n const [left, right] = props.operation;\n const directionOp = direction === 'right' ? right : left;\n const content = isFunction(directionOp) ? directionOp(h as any) : directionOp;\n\n // 过滤掉 boolean\n renderContent = content === false || content === true ? '' : content;\n } else {\n renderContent = '';\n }\n return renderContent;\n };\n\n return () => (\n
    \n \n {renderButton(h, 'right')}\n \n \n {renderButton(h, 'left')}\n \n
    \n );\n },\n});\n","import { defineComponent, computed, toRefs } from 'vue';\nimport { pick, 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, useDisabled, usePrefixClass, useDefaultValue } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 {\n useVModel,\n useConfig,\n useTNodeJSX,\n useDisabled,\n useReadonly,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\nimport type { InputProps } from '../input';\n\nimport props from './props';\n\n// hooks\n\nimport { TdTimePickerProps } from './type';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimePicker',\n props,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker');\n const { STATUS } = useCommonClassName();\n const { TimeIcon } = useGlobalIcon({ TimeIcon: TdTimeIcon });\n\n const currentValue = ref('');\n const isShowPanel = ref(false);\n const isReadonly = useReadonly();\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const disabled = useDisabled();\n const { allowInput, format } = toRefs(props);\n\n const inputClasses = computed(() => [\n `${COMPONENT_NAME.value}__group`,\n {\n [STATUS.value.focused]: isShowPanel.value,\n },\n ]);\n\n const handleShowPopup = (visible: boolean, context: { e: MouseEvent }) => {\n isShowPanel.value = visible;\n visible ? props.onOpen?.(context) : props.onClose?.(context); // trigger on-open and on-close\n };\n\n const handleClear = (context: { e: MouseEvent }) => {\n const { e } = context;\n e.stopPropagation();\n currentValue.value = null;\n setInnerValue(null);\n props?.onClear?.(context);\n };\n\n const handleInputChange = (value: string) => {\n currentValue.value = value;\n };\n\n const handleInputBlur = (value: string, context: SelectInputBlurContext) => {\n if (allowInput.value) {\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) {\n setInnerValue(formatInputValue(currentValue.value, format.value));\n }\n }\n props.onBlur?.({ value, inputValue: context.inputValue, e: context.e });\n };\n\n const handleClickConfirm = (e: MouseEvent) => {\n props?.onConfirm?.({ e });\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) setInnerValue(currentValue.value);\n isShowPanel.value = false;\n };\n\n const handlePanelChange = (v: string, e: MouseEvent) => {\n currentValue.value = v;\n props.onPick?.(v, { e });\n };\n\n const valueDisplayParams = computed(() => {\n return {\n value: isShowPanel.value ? currentValue.value : innerValue.value ?? undefined,\n };\n });\n\n watch(\n () => isShowPanel.value,\n () => {\n currentValue.value = isShowPanel.value ? innerValue.value ?? '' : '';\n },\n );\n\n return () => (\n
    \n }\n popupVisible={!isReadonly.value && isShowPanel.value}\n onInputChange={handleInputChange}\n onBlur={handleInputBlur}\n onPopupVisibleChange={handleShowPopup}\n placeholder={!innerValue.value ? props.placeholder || globalConfig.value.placeholder : undefined}\n value={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputValue={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputProps={{ ...(props.inputProps as InputProps), size: props.size }}\n popupProps={{ overlayInnerStyle: { width: 'auto', padding: 0 }, ...(props.popupProps as object) }}\n status={props.status}\n tips={props.tips}\n valueDisplay={() => renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n {...(props.selectInputProps as TdTimePickerProps['selectInputProps'])}\n panel={() => (\n \n )}\n />\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimeRangePickerProps } from '../time-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 是否自动调换左右区间的顺序,默认为 true;若需要支持跨天的场景,可以设置为 false */\n autoSwap: {\n type: Boolean,\n default: true,\n },\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件,值为数组表示可分别控制开始日期和结束日期是否禁用 */\n disabled: {\n type: [Boolean, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['disabled'],\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符,值为数组表示可分别为开始日期和结束日期设置占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['placeholder'],\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间范围选择,示例:{ '下午': ['13:00:00', '18:00:00'] } */\n presets: {\n type: Object as PropType,\n },\n /** 透传给范围输入框 RangeInput 组件的参数 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态,优先级大于 `allowInput` */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimeRangePickerProps['size'],\n validator(val: TdTimeRangePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimeRangePickerProps['status'],\n validator(val: TdTimeRangePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimeRangePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 范围输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 input 表示输入内容,value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { defineComponent, ref, toRefs, watch, computed } from 'vue';\nimport dayjs from 'dayjs';\nimport { isArray } from 'lodash-es';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { TimeIcon as TdTimeIcon } from 'tdesign-icons-vue-next';\n\nimport { RangeInputPopup, RangeInputPosition } from '../range-input';\nimport TimePickerPanel from './panel/time-picker-panel';\n\nimport { TIME_PICKER_EMPTY } from '@tdesign/common-js/time-picker/const';\nimport { formatInputValue, validateInputValue } from '@tdesign/common-js/time-picker/utils';\n\n// interfaces\nimport props from './time-range-picker-props';\nimport { TimeRangeValue } from './types';\nimport { TimeRangePickerPartial } from './type';\n// hooks\nimport {\n useVModel,\n useConfig,\n useDisabled,\n useReadonly,\n useGlobalIcon,\n usePrefixClass,\n useCommonClassName,\n} from '@tdesign/shared-hooks';\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 } else {\n const previousValue = innerValue.value ?? TIME_PICKER_EMPTY;\n currentPanelIdx.value === 0\n ? (currentValue.value = [previousValue[0] ?? TIME_PICKER_EMPTY[0], currentValue.value[1]])\n : (currentValue.value = [currentValue.value[0], previousValue[1] ?? TIME_PICKER_EMPTY[1]]);\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 '@tdesign/shared-utils';\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","// 在这个文件,解决 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 {\n VirtualScrollConfig,\n useVModel as tdUseVModel,\n useDefaultValue as tdUseDefaultValue,\n} from '@tdesign/shared-hooks';\nimport { withInstall as tdWithInstall } from '@tdesign/shared-utils';\n\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 '@tdesign/shared-hooks';\nexport { useGlobalIcon } from '@tdesign/shared-hooks';\nexport { useLazyLoad } from '@tdesign/shared-hooks';\nexport { useVirtualScrollNew } from '@tdesign/shared-hooks';\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 '../utils/adapt';\nimport { TypeTreeItemState } from '../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 '../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 '../utils/adapt';\nimport {\n TreeNodeValue,\n TypeTreeState,\n TypeTargetNode,\n TypeExpandEventContext,\n TypeActiveEventContext,\n TypeChangeEventContext,\n} from '../types';\nimport { getNode, pathMatchClass } from '../utils';\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 '../utils/adapt';\nimport { TypeEventState, TypeTreeItemState } from '../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 '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport { getTNode } from '../utils';\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 '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport { getTNode } from '../utils';\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 '../utils/adapt';\nimport { TypeTreeItemState } from '../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.isDisabled() && 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.isDisabled() && 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 '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport { getTNode } from '../utils';\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 '../utils/adapt';\nimport { TypeTreeItemState } from '../types';\nimport { getTNode } from '../utils';\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 '@tdesign/shared-utils';\n\nexport type UseLazyLoadParams = UnwrapRef<{\n type: 'lazy' | 'virtual';\n rowHeight?: number;\n bufferSize?: number;\n}>;\n\nexport function useLazyLoad(containerRef: Ref, childRef: Ref, params: UseLazyLoadParams) {\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 './utils/adapt';\nimport { TypeTreeItemProps } from './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 '../utils/adapt';\nimport { TypeTreeItemProps, TypeTreeItemState } from '../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 '../utils/adapt';\nimport { TypeTreeRow, TypeTreeNode, TypeTreeState } from '../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 '../types';\nimport { getMark, emitEvent } from '../utils';\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 let isRightClick = false;\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 isRightClick = 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 if (isRightClick) return;\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, TypeScroll, TreeNode } from '../utils/adapt';\nimport { get } from 'lodash-es';\nimport { TypeTreeState, TypeTimer } from '../types';\nimport log from '@tdesign/common-js/log/index';\nimport { useVirtualScrollNew } from '@tdesign/shared-hooks';\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 = useVirtualScrollNew(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 '../utils/adapt';\nimport { TypeTreeState } from '../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, upperFirst } from 'lodash-es';\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 './utils/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 './types';\nimport { getNode } from './utils';\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\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 props,\n setup(props, context) {\n const { t, global } = useConfig('tree');\n const classPrefix = usePrefixClass();\n const componentName = usePrefixClass('tree');\n const renderTNodeJSX = useTNodeJSX();\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 renderTNodeJSX,\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) : this.renderTNodeJSX('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 '../utils/adapt';\nimport { TreeProps, TypeTreeStore, TypeTreeState } from '../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 '../utils/adapt';\nimport {\n TreeProps,\n TypeValueMode,\n TreeNodeValue,\n TypeEventState,\n TypeTreeNodeModel,\n TypeTreeNode,\n TypeTNodeValue,\n TypeTreeState,\n} from '../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 '../utils/adapt';\nimport { TreeProps, TypeDragEventState, TypeTreeState, TypeDragHandle } from '../types';\nimport { DragPosition } from './useDraggable';\nimport { emitEvent } from '../utils';\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 './utils/adapt';\n\nimport './style';\n\nexport const Tree = withInstall(_TdTree);\n\nexport * from './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 { isNil, isArray, isEmpty, isBoolean, isFunction } from 'lodash-es';\n\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 './types';\nimport { TreeSelectValue, TdTreeSelectProps, TreeSelectValueChangeTrigger } from './type';\nimport { TreeOptionData } from '../common';\nimport props from './props';\n\n// hooks\nimport {\n useConfig,\n useVModel,\n useDisabled,\n useReadonly,\n useTNodeJSX,\n usePrefixClass,\n useTNodeDefault,\n useDefaultValue,\n} from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TTreeSelect',\n props,\n setup(props: TdTreeSelectProps, { slots, expose }) {\n const renderTNodeJSX = useTNodeJSX();\n const renderDefaultTNode = useTNodeDefault();\n const classPrefix = usePrefixClass();\n const { globalConfig } = useConfig('treeSelect');\n const formDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // ref\n const treeRef = ref(null);\n\n // data\n const actived = ref([]);\n const expanded = ref([]);\n const nodeInfo = ref(null);\n const treeKey = ref(0);\n\n // model\n const { value, modelValue, popupVisible, inputValue } = toRefs(props);\n const [treeSelectValue, setTreeSelectValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [innerVisible, setInnerVisible] = useDefaultValue(\n popupVisible,\n false,\n props.onPopupVisibleChange,\n 'popupVisible',\n );\n const [innerInputValue, setInnerInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n\n /**\n * 设置树的所有父节点展开\n */\n const setTreeParentsExpanded = () => {\n const getParents = (value: TreeSelectValue) =>\n findParentValues(props.data, value, realValue.value, realChildren.value);\n\n let treeParents: TreeSelectValue[] = [];\n if (treeSelectValue.value) {\n if (Array.isArray(treeSelectValue.value) && props.multiple) {\n treeParents = treeSelectValue.value.flatMap(getParents);\n } else if (!Array.isArray(treeSelectValue.value) && !props.multiple) {\n treeParents = getParents(treeSelectValue.value);\n }\n }\n expanded.value = Array.from(new Set([...expanded.value, ...treeParents]));\n };\n\n // watch\n watch(treeSelectValue, async () => {\n await changeNodeInfo();\n if (!props.multiple) {\n actived.value = nodeInfo.value ? [nodeInfo.value.value] : [];\n }\n setTreeParentsExpanded();\n });\n watch(\n () => props.data,\n async () => {\n await changeNodeInfo();\n treeRerender();\n },\n {\n deep: true,\n },\n );\n\n // computed\n /** filterByText keep pace with innerInputValue */\n const filterByText = computed(() => {\n const value = innerInputValue.value || '';\n if (value === '') {\n return null;\n }\n return (node: TreeNodeModel) => {\n if (isFunction(props.filter)) {\n const filter: boolean | Promise = props.filter(String(value), node);\n if (isBoolean(filter)) {\n return filter;\n }\n }\n return node.data[realLabel.value].indexOf(value) >= 0;\n };\n });\n const tDisabled = computed(() => {\n return formDisabled.value || props.disabled;\n });\n\n const inputPlaceholder = computed(\n () => (innerVisible.value && nodeInfo.value?.label) || props.placeholder || globalConfig.value.placeholder,\n );\n\n const popupClass = computed(() => {\n return [`${classPrefix.value}-select__dropdown`, 'narrow-scrollbar'];\n });\n\n const dropdownInnerSize = computed(() => {\n return {\n small: 's',\n medium: 'm',\n large: 'l',\n }[props.size];\n });\n\n const isObjectValue = computed(() => props.valueType === 'object');\n\n const checked = computed((): Array => {\n if (props.multiple) {\n if (isObjectValue.value) {\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions).value)\n : [];\n }\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => item as TreeNodeValue)\n : [];\n }\n return [];\n });\n\n const multiLimitDisabled = computed(() => {\n return (\n props.multiple &&\n !!props.max &&\n isArray(treeSelectValue.value) &&\n props.max <= (treeSelectValue.value as Array).length\n );\n });\n\n const realLabel = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.label || 'label';\n }\n return props.keys?.label || 'label';\n });\n\n const realValue = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.value || 'value';\n }\n return props.keys?.value || 'value';\n });\n\n const realChildren = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.children || 'children';\n }\n return props.keys?.children || 'children';\n });\n\n onMounted(async () => {\n setTreeParentsExpanded();\n if (!treeSelectValue.value && props.defaultValue) {\n change(props.defaultValue, null, 'uncheck');\n }\n if (isObjectValue.value) {\n actived.value = isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions)?.value)\n : [(treeSelectValue.value as INodeOptions)?.value];\n } else {\n (actived.value as TreeSelectValue) = isArray(treeSelectValue.value)\n ? treeSelectValue.value\n : [treeSelectValue.value];\n }\n changeNodeInfo();\n });\n\n const change = (\n valueParam: TreeSelectValue,\n node: TreeNodeModel,\n trigger: TreeSelectValueChangeTrigger,\n ) => {\n setTreeSelectValue(valueParam, { node, trigger });\n changeNodeInfo();\n };\n\n const clear = (content: { e: MouseEvent }) => {\n const defaultValue: TreeSelectValue = props.multiple ? [] : '';\n actived.value = [];\n change(defaultValue, null, 'clear');\n props.onClear?.({ e: content.e });\n };\n\n const treeNodeChange = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n current = valueParam.map(getNodeItem);\n }\n change(current, context.node, 'check');\n };\n\n const treeNodeActive = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n if (!props.multiple) {\n setInnerVisible(false, context);\n }\n // 多选模式屏蔽 Active 事件和取消选中状态改变\n if (props.multiple || !context.node.actived) {\n return;\n }\n // 单选模式重复选择不清空\n if (treeSelectValue.value === context.node.data[realValue.value]) {\n return;\n }\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n const nodeValue = isEmpty(valueParam) ? '' : valueParam[0];\n current = getNodeItem(nodeValue);\n } else {\n current = isEmpty(valueParam) ? '' : valueParam[0];\n }\n change(current, context.node, 'check');\n actived.value = valueParam;\n };\n\n const treeNodeExpand = (valueParam: Array) => {\n expanded.value = valueParam;\n };\n\n const treeNodeLoad = () => {\n changeNodeInfo();\n };\n\n const inputChange = (value: string): boolean => {\n // 未打开状态不处理输入框输入\n if (!innerVisible.value) {\n props.onSearch?.(String(value));\n return;\n }\n setInnerInputValue(value);\n props.onSearch?.(String(value));\n };\n\n const tagChange: TdSelectInputProps['onTagChange'] = (value, context) => {\n const { trigger, index } = context;\n if (['tag-remove', 'backspace'].includes(trigger)) {\n isArray(treeSelectValue.value) && (treeSelectValue.value as Array).splice(index, 1);\n }\n props.onRemove?.({ value, data: null, e: context && (context.e as MouseEvent) });\n change(treeSelectValue.value, null, trigger as 'tag-remove' | 'backspace');\n };\n\n const handlePopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n setInnerVisible(visible, context);\n // 在通过点击选择器打开弹窗时 清空此前的输入内容 避免在关闭时就清空引起的闪烁问题\n if (visible && context.trigger === 'trigger-element-click') setInnerInputValue('');\n };\n const changeNodeInfo = async () => {\n if (!props.multiple) {\n if (treeSelectValue.value || treeSelectValue.value === 0) {\n nodeInfo.value = getSingleNodeInfo();\n } else {\n nodeInfo.value = '';\n }\n } else if (props.multiple) {\n if (isArray(treeSelectValue.value)) {\n nodeInfo.value = getMultipleNodeInfo();\n } else {\n nodeInfo.value = [];\n }\n } else {\n nodeInfo.value = null;\n }\n };\n\n const getSingleNodeInfo = () => {\n const nodeValue = isObjectValue.value ? (treeSelectValue.value as INodeOptions).value : treeSelectValue.value;\n return getNodeItem(nodeValue);\n };\n\n const getMultipleNodeInfo = () => {\n return (treeSelectValue.value as Array).map((value) => {\n const nodeValue = isObjectValue.value ? (value as INodeOptions).value : value;\n return getNodeItem(nodeValue);\n });\n };\n\n const getNodeItem = (targetValue: TreeSelectValue) => {\n if (treeRef.value) {\n const node = treeRef.value.getItem(targetValue);\n if (node) {\n return {\n ...node.data,\n label: node.data[realLabel.value],\n value: node.data[realValue.value],\n };\n }\n }\n const node = getTreeNode(props.data, targetValue);\n if (node) {\n return node;\n }\n return {\n label: targetValue,\n value: targetValue,\n };\n };\n\n const getTreeNode = (data: Array, targetValue: TreeSelectValue): TreeSelectValue | null => {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n if (item[realValue.value] === targetValue) {\n return {\n ...item,\n label: item[realLabel.value],\n value: item[realValue.value],\n };\n }\n if (item?.[realChildren.value]) {\n const result = getTreeNode(item?.[realChildren.value], targetValue);\n if (!isNil(result)) {\n return result;\n }\n }\n }\n return null;\n };\n\n const treeRerender = () => {\n treeKey.value += 1;\n };\n\n const renderTree = () => (\n \n renderDefaultTNode('empty', {\n defaultNode:
    {globalConfig.value.empty}
    ,\n }),\n }}\n {...(props.treeProps as TdTreeSelectProps['treeProps'])}\n />\n );\n\n const renderSuffixIcon = () => (\n \n );\n\n expose({\n treeRef,\n });\n\n return () => (\n renderTNodeJSX('prefixIcon')}\n suffix={props.suffix}\n suffixIcon={() => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n return renderSuffixIcon();\n }}\n onClear={clear}\n onBlur={(_: any, context) => {\n props.onBlur?.({ value: treeSelectValue.value, e: context.e as FocusEvent });\n }}\n onFocus={(_: any, context: { e: FocusEvent }) => {\n props.onFocus?.({ value: treeSelectValue.value, e: context.e });\n }}\n valueDisplay={() =>\n renderTNodeJSX('valueDisplay', {\n params: props.multiple\n ? {\n value: nodeInfo.value,\n onClose: (index: number) => {\n const value = nodeInfo.value.map((node: TreeOptionData) => node.value);\n tagChange(value, {\n trigger: 'tag-remove',\n index,\n item: value[index],\n });\n },\n }\n : {\n value: nodeInfo.value || { [realLabel.value]: '', [realValue.value]: undefined },\n },\n })\n }\n v-slots={{\n suffix: slots.suffix,\n panel: () => (\n \n {renderTNodeJSX('panelTopContent')}\n \n {renderDefaultTNode('loadingText', {\n defaultNode:
    {globalConfig.value.loadingText}
    ,\n })}\n

    \n {renderTree()}\n {renderTNodeJSX('panelBottomContent')}\n
    \n ),\n collapsedItems: slots.collapsedItems,\n }}\n onInputChange={inputChange}\n onTagChange={tagChange}\n onPopupVisibleChange={handlePopupVisibleChange}\n {...(props.selectInputProps as TdTreeSelectProps['selectInputProps'])}\n />\n );\n },\n});\n","import { isString, isNull } from 'lodash-es';\n/* eslint-disable no-param-reassign */\n/**\n * 用于反解析渐变字符串为对象\n * https://stackoverflow.com/questions/20215440/parse-css-gradient-rule-with-javascript-regex\n */\nimport tinyColor from 'tinycolor2';\n\n/**\n * Utility combine multiple regular expressions.\n *\n * @param {RegExp[]|string[]} regexpList List of regular expressions or strings.\n * @param {string} flags Normal RegExp flags.\n */\nconst combineRegExp = (regexpList: (string | RegExp)[], flags: string): RegExp => {\n let source = '';\n for (let i = 0; i < regexpList.length; i++) {\n if (isString(regexpList[i])) {\n source += regexpList[i];\n } else {\n source += (regexpList[i] as RegExp).source;\n }\n }\n return new RegExp(source, flags);\n};\n\ninterface RegExpLib {\n gradientSearch: RegExp;\n colorStopSearch: RegExp;\n}\n\ninterface ColorStop {\n color: string;\n position?: string;\n}\n\ninterface ParseGradientResult {\n original: string;\n colorStopList?: ColorStop[];\n line?: string;\n angle?: string;\n sideCorner?: string;\n}\n\n/**\n * Generate the required regular expressions once.\n *\n * Regular Expressions are easier to manage this way and can be well described.\n *\n * @result {object} Object containing regular expressions.\n */\nconst generateRegExp = (): RegExpLib => {\n // Note any variables with \"Capture\" in name include capturing bracket set(s).\n const searchFlags = 'gi'; // ignore case for angles, \"rgb\" etc\n const rAngle = /(?:[+-]?\\d*\\.?\\d+)(?:deg|grad|rad|turn)/; // Angle +ive, -ive and angle types\n // optional 2nd part\n const rSideCornerCapture = /to\\s+((?:(?:left|right|top|bottom)(?:\\s+(?:top|bottom|left|right))?))/;\n const rComma = /\\s*,\\s*/; // Allow space around comma.\n const rColorHex = /#(?:[a-f0-9]{6}|[a-f0-9]{3})/; // 3 or 6 character form\n const rDigits3 = /\\(\\s*(?:\\d{1,3}\\s*,\\s*){2}\\d{1,3}\\s*\\)/;\n const // \"(1, 2, 3)\"\n rDigits4 = /\\(\\s*(?:\\d{1,3}\\s*,\\s*){2}\\d{1,3}\\s*,\\s*\\d*\\.?\\d+\\)/;\n const // \"(1, 2, 3, 4)\"\n rValue = /(?:[+-]?\\d*\\.?\\d+)(?:%|[a-z]+)?/;\n const // \".9\", \"-5px\", \"100%\".\n rKeyword = /[_a-z-][_a-z0-9-]*/;\n const // \"red\", \"transparent\".\n rColor = combineRegExp(\n ['(?:', rColorHex, '|', '(?:rgb|hsl)', rDigits3, '|', '(?:rgba|hsla)', rDigits4, '|', rKeyword, ')'],\n '',\n );\n const rColorStop = combineRegExp([rColor, '(?:\\\\s+', rValue, '(?:\\\\s+', rValue, ')?)?'], '');\n const // Single Color Stop, optional %, optional length.\n rColorStopList = combineRegExp(['(?:', rColorStop, rComma, ')*', rColorStop], '');\n const // List of color stops min 1.\n rLineCapture = combineRegExp(['(?:(', rAngle, ')|', rSideCornerCapture, ')'], '');\n const // Angle or SideCorner\n rGradientSearch = combineRegExp(['(?:(', rLineCapture, ')', rComma, ')?(', rColorStopList, ')'], searchFlags);\n const // Capture 1:\"line\", 2:\"angle\" (optional), 3:\"side corner\" (optional) and 4:\"stop list\".\n rColorStopSearch = combineRegExp(\n ['\\\\s*(', rColor, ')', '(?:\\\\s+', '(', rValue, '))?', '(?:', rComma, '\\\\s*)?'],\n searchFlags,\n ); // Capture 1:\"color\" and 2:\"position\" (optional).\n\n return {\n gradientSearch: rGradientSearch,\n colorStopSearch: rColorStopSearch,\n };\n};\n\n/**\n * Actually parse the input gradient parameters string into an object for reusability.\n *\n *\n * @note Really this only supports the standard syntax not historical versions, see MDN for details\n * https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient\n *\n * @param regExpLib\n * @param {string} input\n * @returns {object|undefined}\n */\nconst parseGradient = (regExpLib: RegExpLib, input: string) => {\n let result: ParseGradientResult;\n let matchColorStop: any;\n let stopResult: ColorStop;\n\n // reset search position, because we reuse regex.\n regExpLib.gradientSearch.lastIndex = 0;\n\n const matchGradient = regExpLib.gradientSearch.exec(input);\n if (!isNull(matchGradient)) {\n result = {\n original: matchGradient[0],\n colorStopList: [],\n };\n\n // Line (Angle or Side-Corner).\n if (matchGradient[1]) {\n // eslint-disable-next-line prefer-destructuring\n result.line = matchGradient[1];\n }\n // Angle or undefined if side-corner.\n if (matchGradient[2]) {\n // eslint-disable-next-line prefer-destructuring\n result.angle = matchGradient[2];\n }\n // Side-corner or undefined if angle.\n if (matchGradient[3]) {\n // eslint-disable-next-line prefer-destructuring\n result.sideCorner = matchGradient[3];\n }\n\n // reset search position, because we reuse regex.\n regExpLib.colorStopSearch.lastIndex = 0;\n\n // Loop though all the color-stops.\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);\n while (!isNull(matchColorStop)) {\n stopResult = {\n color: matchColorStop[1],\n };\n\n // Position (optional).\n if (matchColorStop[2]) {\n // eslint-disable-next-line prefer-destructuring\n stopResult.position = matchColorStop[2];\n }\n result.colorStopList.push(stopResult);\n\n // Continue searching from previous position.\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);\n }\n }\n\n // Can be undefined if match not found.\n return result;\n};\n\nexport interface GradientColorPoint {\n id?: string;\n color?: string;\n left?: number;\n}\n\nexport interface GradientColors {\n points: GradientColorPoint[];\n degree: number;\n}\n\nconst REGEXP_LIB = generateRegExp();\nconst REG_GRADIENT = /.*gradient\\s*\\(((?:\\([^)]*\\)|[^)(]*)*)\\)/gim;\n\n/**\n * 验证是否是渐变字符串\n * @param input\n * @returns\n */\nexport const isGradientColor = (input: string): null | RegExpExecArray => {\n REG_GRADIENT.lastIndex = 0;\n return REG_GRADIENT.exec(input);\n};\n\n// 边界字符串和角度关系\nconst sideCornerDegreeMap = {\n top: 0,\n right: 90,\n bottom: 180,\n left: 270,\n 'top left': 315,\n 'left top': 315,\n 'top right': 45,\n 'right top': 45,\n 'bottom left': 225,\n 'left bottom': 225,\n 'bottom right': 135,\n 'right bottom': 135,\n};\n\n/**\n * 解析渐变字符串为 GradientColors 对象\n * @param input\n * @returns\n */\nexport const parseGradientString = (input: string): GradientColors | false => {\n const match = isGradientColor(input);\n if (!match) return false;\n\n const gradientColors: GradientColors = {\n points: [],\n degree: 0,\n };\n\n const result: ParseGradientResult = parseGradient(REGEXP_LIB, match[1]);\n if (result.original.trim() !== match[1].trim()) return false;\n\n const points: GradientColorPoint[] = result.colorStopList.map(\n ({ color, position }, index, array) => {\n const point = Object.create(null);\n point.color = tinyColor(color).toRgbString();\n\n let left = parseFloat(position);\n if (Number.isNaN(left)) {\n left = (index / (array.length - 1)) * 100;\n }\n\n point.left = left;\n return point;\n }\n );\n gradientColors.points = points;\n\n let degree = parseInt(result.angle, 10);\n if (Number.isNaN(degree)) {\n /* 如果角度不存在,使用 CSS 渐变的默认逻辑(180 deg)\n https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_images/Using_CSS_gradients */\n degree = sideCornerDegreeMap[result.sideCorner as keyof typeof sideCornerDegreeMap] || 180;\n }\n gradientColors.degree = degree;\n\n return gradientColors;\n};\n\nexport default parseGradientString;\n","import { TreeOptionData } from '../common';\n\ntype TargetValue = string | number | object;\n\n/**\n * 递归查找指定节点的所有父节点的 value\n * @param options 树形数据\n * @param targetValue 目标节点的 value\n * @param realChildren 子节点的 key (别名)\n * @param realValue 节点的 value 的 key (别名)\n */\nexport function findParentValues(\n options: TreeOptionData[],\n targetValue: TargetValue,\n realValue: string,\n realChildren: string,\n): (TargetValue)[] {\n let currentTargetValue = targetValue;\n if (currentTargetValue != null && typeof currentTargetValue === 'object') {\n currentTargetValue = (currentTargetValue as { [key: string]: string | number })?.[realValue];\n }\n if (currentTargetValue == null) return [];\n\n function findPath(nodes: TreeOptionData[], parentPath: (TargetValue)[]): (TargetValue)[] | null {\n let result: (TargetValue)[] | null = null;\n nodes.some((node) => {\n const newPath = [...parentPath, node[realValue]];\n if (node[realValue] === currentTargetValue) {\n result = parentPath;\n return true;\n }\n if (Array.isArray(node[realChildren]) && node[realChildren].length) {\n result = findPath(node[realChildren], newPath);\n if (result !== null) {\n return true;\n }\n }\n return false;\n });\n return result;\n }\n\n return findPath(options, []) || [];\n}\n","import _TreeSelect from './tree-select';\nimport { withInstall } from '@tdesign/shared-utils';\n\nimport './style';\n\nexport * from './types';\nexport const TreeSelect = withInstall(_TreeSelect);\nexport default TreeSelect;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdColorPickerPanelProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 颜色模式选择。同时支持单色和渐变两种模式,可仅使用单色或者渐变其中一种模式,也可以同时使用。`monochrome` 表示单色,`linear-gradient` 表示渐变色 */\n colorModes: {\n type: Array as PropType,\n default: (): TdColorPickerPanelProps['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` 为真时,`HEX8/RGBA/HSLA/HSVA` 有效 */\n format: {\n type: String as PropType,\n default: 'RGB' as TdColorPickerPanelProps['format'],\n validator(val: TdColorPickerPanelProps['format']): boolean {\n if (!val) return true;\n return ['HEX', 'HEX8', 'RGB', 'RGBA', 'HSL', 'HSLA', 'HSV', 'HSVA', 'CMYK', 'CSS'].includes(val);\n },\n },\n /** 最近使用的颜色。值为 [] 表示以组件内部的“最近使用颜色”为准,值长度大于 0 则以该值为准显示“最近使用颜色”。值为 false 或 null 则完全不显示“最近使用颜色” */\n recentColors: {\n type: Array as PropType,\n default: undefined as TdColorPickerPanelProps['recentColors'],\n },\n /** 最近使用的颜色。值为 [] 表示以组件内部的“最近使用颜色”为准,值长度大于 0 则以该值为准显示“最近使用颜色”。值为 false 或 null 则完全不显示“最近使用颜色”,非受控属性 */\n defaultRecentColors: {\n type: Array as PropType,\n default: (): TdColorPickerPanelProps['defaultRecentColors'] => [],\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 是否展示颜色选择条右侧的颜色预览区域 */\n showPrimaryColorPreview: {\n type: Boolean,\n default: true,\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 * rgb 转 cmyk\n * @param red\n * @param green\n * @param blue\n * @returns\n */\nexport const rgb2cmyk = (red: number, green: number, blue: number) => {\n let computedC = 0;\n let computedM = 0;\n let computedY = 0;\n let computedK = 0;\n\n const r = parseInt(`${red}`.replace(/\\s/g, ''), 10);\n const g = parseInt(`${green}`.replace(/\\s/g, ''), 10);\n const b = parseInt(`${blue}`.replace(/\\s/g, ''), 10);\n\n if (r === 0 && g === 0 && b === 0) {\n computedK = 1;\n return [0, 0, 0, 1];\n }\n\n computedC = 1 - r / 255;\n computedM = 1 - g / 255;\n computedY = 1 - b / 255;\n\n const minCMY = Math.min(computedC, Math.min(computedM, computedY));\n computedC = (computedC - minCMY) / (1 - minCMY);\n computedM = (computedM - minCMY) / (1 - minCMY);\n computedY = (computedY - minCMY) / (1 - minCMY);\n computedK = minCMY;\n\n return [computedC, computedM, computedY, computedK];\n};\n\n/**\n * cmyk 转 rgb\n * @param cyan\n * @param magenta\n * @param yellow\n * @param black\n * @returns\n */\nexport const cmyk2rgb = (cyan: number, magenta: number, yellow: number, black: number) => {\n let c = cyan / 100;\n let m = magenta / 100;\n let y = yellow / 100;\n const k = black / 100;\n\n c = c * (1 - k) + k;\n m = m * (1 - k) + k;\n y = y * (1 - k) + k;\n\n let r = 1 - c;\n let g = 1 - m;\n let b = 1 - y;\n\n r = Math.round(255 * r);\n g = Math.round(255 * g);\n b = Math.round(255 * b);\n return {\n r,\n g,\n b,\n };\n};\n\nconst REG_CMYK_STRING = /cmyk\\((\\d+%?),(\\d+%?),(\\d+%?),(\\d+%?)\\)/;\n\nconst toNumber = (str: string) => Math.max(0, Math.min(255, parseInt(str, 10)));\n\n/**\n * 输入色转rgb\n * @param input\n * @returns\n */\nexport const cmykInputToColor = (input: string) => {\n if (/cmyk/i.test(input)) {\n const str = input.replace(/\\s/g, '');\n const match = str.match(REG_CMYK_STRING);\n const c = toNumber(match[1]);\n const m = toNumber(match[2]);\n const y = toNumber(match[3]);\n const k = toNumber(match[4]);\n const { r, g, b } = cmyk2rgb(c, m, y, k);\n return `rgb(${r}, ${g}, ${b})`;\n }\n return input;\n};\n","import type {\n BasicColorFormat,\n ColorInputProp,\n} from './types';\n\n// 最近使用颜色最大个数\nexport const TD_COLOR_USED_COLORS_MAX_SIZE = 100; // 每行10个\n\n// 颜色模式options配置\nexport const COLOR_MODES = {\n monochrome: 'singleColor',\n 'linear-gradient': 'gradientColor',\n};\n\n// 默认颜色\nexport const DEFAULT_COLOR = '#001F97';\n\n// 默认渐变色\nexport const DEFAULT_LINEAR_GRADIENT = 'linear-gradient(90deg, rgba(241,29,0,1) 0%, rgba(73,106,220,1) 100%);';\n\n// 默认系统色彩\nexport const DEFAULT_SYSTEM_SWATCH_COLORS = [\n '#ECF2FE',\n '#D4E3FC',\n '#BBD3FB',\n '#96BBF8',\n '#699EF5',\n '#4787F0',\n '#266FE8',\n '#0052D9',\n '#0034B5',\n '#001F97',\n '#FDECEE',\n '#F9D7D9',\n '#F8B9BE',\n '#F78D94',\n '#F36D78',\n '#E34D59',\n '#C9353F',\n '#B11F26',\n '#951114',\n '#680506',\n '#FEF3E6',\n '#F9E0C7',\n '#F7C797',\n '#F2995F',\n '#ED7B2F',\n '#D35A21',\n '#BA431B',\n '#9E3610',\n '#842B0B',\n '#5A1907',\n '#E8F8F2',\n '#BCEBDC',\n '#85DBBE',\n '#48C79C',\n '#00A870',\n '#078D5C',\n '#067945',\n '#056334',\n '#044F2A',\n '#033017',\n];\n\n/**\n * 非透明色格式化类型\n */\nexport const FORMATS = [\n 'HEX',\n 'RGB',\n 'HSL',\n 'HSV',\n 'CMYK',\n 'CSS',\n] as const;\n\n/**\n * 透明色格式化类型映射\n */\nexport const ALPHA_FORMAT_MAP = {\n HEX: 'HEX8',\n RGB: 'RGBA',\n HSL: 'HSLA',\n HSV: 'HSVA',\n} as const;\n\n/**\n * 不同格式对应的输入框\n */\nexport const COLOR_FORMAT_INPUTS: Record = {\n RGB: [\n {\n key: 'r',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'g',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'b',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n ],\n HSV: [\n {\n key: 'h',\n min: 0,\n max: 360,\n type: 'inputNumber',\n },\n {\n key: 's',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n {\n key: 'v',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n ],\n HSL: [\n {\n key: 'h',\n min: 0,\n max: 360,\n type: 'inputNumber',\n },\n {\n key: 's',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n {\n key: 'l',\n min: 0,\n max: 100,\n type: 'inputNumber',\n },\n ],\n CMYK: [\n {\n key: 'c',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'm',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'y',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n {\n key: 'k',\n min: 0,\n max: 255,\n type: 'inputNumber',\n },\n ],\n CSS: [\n {\n key: 'css',\n type: 'input',\n flex: 3,\n },\n ],\n HEX: [\n {\n key: 'hex',\n type: 'input',\n flex: 3,\n },\n ],\n};\n\n// 色板尺寸\nexport const SATURATION_PANEL_DEFAULT_WIDTH = 230;\nexport const SATURATION_PANEL_DEFAULT_HEIGHT = 168;\nexport const SLIDER_DEFAULT_WIDTH = 186;\nexport const GRADIENT_SLIDER_DEFAULT_WIDTH = 176;\n","import tinyColor from 'tinycolor2';\nimport { cmykInputToColor, rgb2cmyk } from './cmyk';\nimport { ALPHA_FORMAT_MAP } from './constants';\nimport {\n GradientColorPoint,\n GradientColors,\n isGradientColor,\n parseGradientString\n} from './gradient';\nimport type { AlphaConvertibleFormat, ColorFormat } from './types';\n\nexport interface ColorObject {\n alpha: number;\n css: string;\n hex: string;\n hex8: string;\n hsl: string;\n hsla: string;\n hsv: string;\n hsva: string;\n rgb: string;\n rgba: string;\n saturation: number;\n value: number;\n isGradient: boolean;\n linearGradient?: string;\n}\n\ninterface ColorStates {\n s: number;\n v: number;\n h: number;\n a: number;\n}\n\ninterface GradientStates {\n colors: GradientColorPoint[];\n degree: number;\n selectedId: string;\n css?: string;\n}\n\nconst mathRound = Math.round;\nconst hsv2rgba = (states: ColorStates): tinyColor.ColorFormats.RGBA => tinyColor(states).toRgb();\nconst hsv2hsva = (states: ColorStates): tinyColor.ColorFormats.HSVA => tinyColor(states).toHsv();\nconst hsv2hsla = (states: ColorStates): tinyColor.ColorFormats.HSLA => tinyColor(states).toHsl();\n\n/**\n * 将渐变对象转换成字符串\n */\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 */\nexport const getColorWithoutAlpha = (color: string) => tinyColor(color).setAlpha(1).toHexString();\n\n// 生成一个随机ID\nexport const genId = () => (1 + Math.random() * 4294967295).toString(16);\n\n/**\n * 生成一个渐变颜色\n * @param left\n * @param color\n * @returns\n */\nexport const genGradientPoint = (left: number, color: string, id?: string): GradientColorPoint => ({\n id: id || genId(),\n left,\n color,\n});\n\nexport class Color {\n states: ColorStates = {\n s: 100,\n v: 100,\n h: 100,\n a: 1,\n };\n\n originColor: string;\n\n isGradient: boolean;\n\n gradientStates: GradientStates = {\n colors: [],\n degree: 0,\n selectedId: null,\n css: '',\n };\n\n constructor(input: string) {\n this.update(input);\n }\n\n update(input: string) {\n if (input === this.originColor) return;\n const gradientColors = parseGradientString(input);\n\n if (this.isGradient && !gradientColors) {\n /* case 1: 渐变模式单独修改某个位置点的色值 */\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\n /* case 2: 修改整个渐变,生成一套新的颜色点 */\n if (gradientColors) {\n this.isGradient = true;\n const object = gradientColors as GradientColors;\n const points = object.points.map((c, index) => genGradientPoint(c.left, c.color, this.gradientStates.colors[index]?.id));\n this.gradientStates = {\n colors: points,\n degree: object.degree,\n selectedId: this.gradientStates.selectedId || points[0]?.id || null,\n };\n this.gradientStates.css = this.linearGradient;\n colorInput = this.gradientSelectedPoint?.color;\n }\n\n this.updateStates(colorInput);\n }\n\n get saturation() {\n return this.states.s;\n }\n\n set saturation(value) {\n this.states.s = Math.max(0, Math.min(100, value));\n this.updateCurrentGradientColor();\n }\n\n get value() {\n return this.states.v;\n }\n\n set value(value) {\n this.states.v = Math.max(0, Math.min(100, value));\n this.updateCurrentGradientColor();\n }\n\n get hue() {\n return this.states.h;\n }\n\n set hue(value) {\n this.states.h = Math.max(0, Math.min(360, value));\n this.updateCurrentGradientColor();\n }\n\n get alpha() {\n return this.states.a;\n }\n\n set alpha(value) {\n this.states.a = Math.max(0, Math.min(1, Math.round(value * 100) / 100));\n this.updateCurrentGradientColor();\n }\n\n get rgb() {\n const { r, g, b } = hsv2rgba(this.states);\n return `rgb(${mathRound(r)}, ${mathRound(g)}, ${mathRound(b)})`;\n }\n\n get rgba() {\n const {\n r, g, b, a\n } = hsv2rgba(this.states);\n return `rgba(${mathRound(r)}, ${mathRound(g)}, ${mathRound(b)}, ${a})`;\n }\n\n get hsv() {\n const { h, s, v } = this.getHsva();\n return `hsv(${h}, ${s}%, ${v}%)`;\n }\n\n get hsva() {\n const {\n h, s, v, a\n } = this.getHsva();\n return `hsva(${h}, ${s}%, ${v}%, ${a})`;\n }\n\n get hsl() {\n const { h, s, l } = this.getHsla();\n return `hsl(${h}, ${s}%, ${l}%)`;\n }\n\n get hsla() {\n const {\n h, s, l, a\n } = this.getHsla();\n return `hsla(${h}, ${s}%, ${l}%, ${a})`;\n }\n\n get hex() {\n return tinyColor(this.states).toHexString();\n }\n\n get hex8() {\n return tinyColor(this.states).toHex8String();\n }\n\n get cmyk() {\n const {\n c, m, y, k\n } = this.getCmyk();\n return `cmyk(${c}, ${m}, ${y}, ${k})`;\n }\n\n get css() {\n if (this.isGradient) {\n return this.linearGradient;\n }\n return this.rgba;\n }\n\n get linearGradient() {\n const { gradientColors, gradientDegree } = this;\n return gradientColors2string({\n points: gradientColors,\n degree: gradientDegree,\n });\n }\n\n get gradientColors() {\n return this.gradientStates.colors;\n }\n\n set gradientColors(colors: GradientColorPoint[]) {\n this.gradientStates.colors = colors;\n this.gradientStates.css = this.linearGradient;\n }\n\n get gradientSelectedId() {\n return this.gradientStates.selectedId;\n }\n\n set gradientSelectedId(id: string) {\n if (id === this.gradientSelectedId) {\n return;\n }\n this.gradientStates.selectedId = id;\n this.updateStates(this.gradientSelectedPoint?.color);\n }\n\n get gradientDegree() {\n return this.gradientStates.degree;\n }\n\n set gradientDegree(degree: number) {\n this.gradientStates.degree = Math.max(0, Math.min(360, degree));\n this.gradientStates.css = this.linearGradient;\n }\n\n get gradientSelectedPoint() {\n const { gradientColors, gradientSelectedId } = this;\n return gradientColors.find((color) => color.id === gradientSelectedId);\n }\n\n getFormatsColorMap() {\n return {\n HEX: this.hex,\n CMYK: this.cmyk,\n RGB: this.rgb,\n RGBA: this.rgba,\n HSL: this.hsl,\n HSLA: this.hsla,\n HSV: this.hsv,\n HSVA: this.hsva,\n CSS: this.css,\n HEX8: this.hex8,\n };\n }\n\n getFormattedColor(format: ColorFormat, enableAlpha: boolean) {\n if (this.isGradient) return this.linearGradient;\n const finalFormat = (\n enableAlpha && format in ALPHA_FORMAT_MAP\n ? ALPHA_FORMAT_MAP[format as AlphaConvertibleFormat]\n : format\n ) as keyof ReturnType;\n return this.getFormatsColorMap()[finalFormat];\n }\n\n updateCurrentGradientColor() {\n const { isGradient, gradientColors, gradientSelectedId } = this;\n const { length } = gradientColors;\n const current = this.gradientSelectedPoint;\n if (!isGradient || length === 0 || !current) {\n return false;\n }\n const index = gradientColors.findIndex((color) => color.id === gradientSelectedId);\n const newColor = {\n ...current,\n color: this.rgba,\n };\n gradientColors.splice(index, 1, newColor);\n this.gradientColors = gradientColors.slice();\n return this;\n }\n\n updateStates(input: string) {\n const color = tinyColor(cmykInputToColor(input));\n const hsva = color.toHsv();\n this.states = hsva;\n }\n\n getRgba() {\n const {\n r, g, b, a\n } = hsv2rgba(this.states);\n return {\n r: mathRound(r),\n g: mathRound(g),\n b: mathRound(b),\n a,\n };\n }\n\n getCmyk() {\n const { r, g, b } = this.getRgba();\n const [c, m, y, k] = rgb2cmyk(r, g, b);\n return {\n c: mathRound(c * 100),\n m: mathRound(m * 100),\n y: mathRound(y * 100),\n k: mathRound(k * 100),\n };\n }\n\n getHsva(): tinyColor.ColorFormats.HSVA {\n let {\n h, s, v, a\n } = hsv2hsva(this.states);\n h = mathRound(h);\n s = mathRound(s * 100);\n v = mathRound(v * 100);\n a *= 1;\n return {\n h,\n s,\n v,\n a,\n };\n }\n\n getHsla(): tinyColor.ColorFormats.HSLA {\n let {\n h, s, l, a\n } = hsv2hsla(this.states);\n h = mathRound(h);\n s = mathRound(s * 100);\n l = mathRound(l * 100);\n a *= 1;\n return {\n h,\n s,\n l,\n a,\n };\n }\n\n /**\n * 判断输入色是否与当前色相同\n */\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 /**\n * 对象转颜色字符串\n */\n static object2color(object: any, format: ColorFormat) {\n if (format === 'CMYK') {\n const { c, m, y, k } = object;\n return `cmyk(${c}, ${m}, ${y}, ${k})`;\n }\n\n if (format === 'RGB' || format === 'RGBA') {\n return tinyColor(object).toRgbString();\n }\n\n if (format === 'HSL' || format === 'HSLA') {\n return tinyColor(object).toHslString();\n }\n\n if (format === 'HSV' || format === 'HSVA') {\n return tinyColor(object).toHsvString();\n }\n\n return tinyColor(object).toHexString();\n }\n\n /**\n * 是否是渐变色\n * @param input\n * @returns\n */\n static isGradientColor = (input: string) => !!isGradientColor(input);\n\n /**\n * 比较两个颜色是否相同\n * @param color1\n * @param color2\n * @returns\n */\n static compare = (color1: string, color2: string): boolean => {\n const isGradientColor1 = Color.isGradientColor(color1);\n const isGradientColor2 = Color.isGradientColor(color2);\n if (isGradientColor1 && isGradientColor2) {\n const gradientStr1 = parseGradientString(color1);\n const gradientStr2 = parseGradientString(color2);\n if (!gradientStr1 || !gradientStr2) return false;\n\n const gradientColor1 = gradientColors2string(gradientStr1);\n const gradientColor2 = gradientColors2string(gradientStr2);\n return gradientColor1 === gradientColor2;\n }\n if (!isGradientColor1 && !isGradientColor2) {\n return tinyColor.equals(color1, color2);\n }\n return false;\n };\n}\n\nconst COLOR_OBJECT_OUTPUT_KEYS = [\n 'alpha',\n 'css',\n 'hex',\n 'hex8',\n 'hsl',\n 'hsla',\n 'hsv',\n 'hsva',\n 'rgb',\n 'rgba',\n 'saturation',\n 'value',\n 'isGradient',\n];\n\n/**\n * 获取对外输出的color对象\n * @param color\n * @returns\n */\nexport const getColorObject = (color: Color): ColorObject | null => {\n if (!color) {\n return null;\n }\n const colorObject = Object.create(null);\n COLOR_OBJECT_OUTPUT_KEYS.forEach((key) => {\n colorObject[key] = (color as { [key: string]: any })[key];\n });\n if (color.isGradient) {\n colorObject.linearGradient = color.linearGradient;\n }\n return colorObject;\n};\n\nexport default Color;\n","/* eslint-disable no-use-before-define */\nexport interface Coordinate {\n x: number;\n y: number;\n}\n\nexport type DraggableEvent = MouseEvent;\n\ninterface DraggableCallback {\n (coordinate: Coordinate, event?: DraggableEvent): void;\n}\n\nexport interface DraggableProps {\n start?: DraggableCallback;\n drag?: DraggableCallback;\n end?: DraggableCallback;\n}\n\ninterface DraggableHandles {\n start: (event: DraggableEvent) => void;\n drag: (event: DraggableEvent) => void;\n end: (event: DraggableEvent) => void;\n}\n\n// 配置项\nconst defaultsOptions: DraggableProps = {\n start: (coordinate: Coordinate, event: DraggableEvent) => {},\n drag: (coordinate: Coordinate, event: DraggableEvent) => {},\n end: (coordinate: Coordinate, event: DraggableEvent) => {},\n};\n\nexport class Draggable {\n private dragging = false;\n\n private $el: HTMLElement;\n\n private props: DraggableProps;\n\n private handles: DraggableHandles;\n\n constructor(el: HTMLElement, options?: DraggableProps) {\n this.$el = el;\n this.props = { ...defaultsOptions, ...options };\n this.handles = {\n start: this.#dragStart.bind(this),\n drag: this.#drag.bind(this),\n end: this.#dragEnd.bind(this),\n };\n this.$el.addEventListener('mousedown', this.handles.start, false);\n }\n\n #dragStart(event: DraggableEvent) {\n if (this.dragging) {\n return;\n }\n // event.preventDefault();\n window.addEventListener('mousemove', this.handles.drag, false);\n window.addEventListener('mouseup', this.handles.end, false);\n window.addEventListener('contextmenu', this.handles.end, false);\n this.dragging = true;\n this.props.start(this.#getCoordinate(event), event);\n }\n\n #drag(event: DraggableEvent) {\n if (!this.dragging) {\n return;\n }\n this.props.drag(this.#getCoordinate(event), event);\n }\n\n #dragEnd(event: DraggableEvent) {\n setTimeout(() => {\n this.dragging = false;\n this.props.end(this.#getCoordinate(event), event);\n }, 0);\n window.removeEventListener('mousemove', this.handles.drag, false);\n window.removeEventListener('mouseup', this.handles.end, false);\n window.removeEventListener('contextmenu', this.handles.end, false);\n }\n\n #getCoordinate(event: DraggableEvent) {\n const rect = this.$el.getBoundingClientRect();\n const mouseEvent = event;\n const left = mouseEvent.clientX - rect.left;\n const top = mouseEvent.clientY - rect.top;\n return {\n y: Math.min(Math.max(0, top), rect.height),\n x: Math.min(Math.max(0, left), rect.width),\n };\n }\n\n destroy() {\n this.$el.removeEventListener('mousedown', this.handles.start, false);\n window.removeEventListener('mousemove', this.handles.drag, false);\n window.removeEventListener('mouseup', this.handles.end, false);\n window.removeEventListener('contextmenu', this.handles.end, false);\n }\n}\n\nexport default Draggable;\n","import Color from './color';\nimport { ALPHA_FORMAT_MAP, COLOR_FORMAT_INPUTS, FORMATS } from './constants';\nimport type { AlphaConvertibleFormat, BasicColorFormat, ColorFormat } from './types';\n\n/**\n * 兜底处理用户传入的格式,例如:\n * - 传入 `RGB`, 但 `enableAlpha` ,则返回 `RGBA`\n */\nexport const initColorFormat = (format: ColorFormat, enableAlpha: boolean) => {\n if (enableAlpha && format in ALPHA_FORMAT_MAP) {\n return format in ALPHA_FORMAT_MAP ? ALPHA_FORMAT_MAP[format as AlphaConvertibleFormat] : format;\n }\n return format as BasicColorFormat;\n};\n\n/**\n * 获取不同格式的输入输出值\n * - encode:将字符串转换为单独的颜色值,例如 `{r: 255, g: 255, b: 255}`\n * - decode:获取完整的颜色字符串,例如 `rgb(255, 255, 255)`\n */\nexport const getColorFormatMap = (color: Color, type: 'encode' | 'decode') => {\n if (type === 'encode') {\n return {\n HSV: color.getHsva(),\n HSVA: color.getHsva(),\n HSL: color.getHsla(),\n HSLA: color.getHsla(),\n RGB: color.getRgba(),\n RGBA: color.getRgba(),\n CMYK: color.getCmyk(),\n CSS: {\n css: color.css,\n },\n HEX: {\n hex: color.hex,\n },\n HEX8: {\n hex: color.hex8, // 为了减少转换 hex8 的 key 也对应 hex\n },\n };\n }\n\n // decode\n return color.getFormatsColorMap();\n};\n\n/**\n * 获取下拉框的格式选项\n */\nexport const getColorFormatOptions = (enableAlpha: boolean) => (\n enableAlpha\n ? FORMATS.map((item) => (item in ALPHA_FORMAT_MAP ? ALPHA_FORMAT_MAP[item as AlphaConvertibleFormat] : item))\n : FORMATS\n);\n\n/**\n * 获取当前格式的输入框配置\n */\nexport const getColorFormatInputs = (\n format: ColorFormat = 'RGB',\n enableAlpha: boolean\n) => {\n let finalFormat;\n\n /* 为了减少 `ALPHA_FORMAT_MAP` 中的重复代码\n `RGBA/HEX8/HSLA/HSVA` 会被转换为 `RGB/HEX/HSL/HSV` 后再匹配\n 但在下一步会 push 一个代表透明度的输入框 */\n if (enableAlpha) {\n finalFormat = Object.keys(ALPHA_FORMAT_MAP).find(\n (key) => key in ALPHA_FORMAT_MAP && ALPHA_FORMAT_MAP[key as AlphaConvertibleFormat] === format\n ) || format;\n } else {\n finalFormat = format;\n }\n\n if (!COLOR_FORMAT_INPUTS[finalFormat as BasicColorFormat]) return [];\n\n const configs = [\n ...(COLOR_FORMAT_INPUTS[finalFormat as BasicColorFormat]),\n ];\n\n // CMYK 格式不支持透明度\n if (enableAlpha && format !== 'CMYK') {\n configs.push({\n type: 'inputNumber',\n key: 'a',\n min: 0,\n max: 100,\n format: (value: number) => `${value}%`,\n flex: 1.15,\n });\n }\n\n return configs;\n};\n","import { computed } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\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","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdColorPickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 颜色模式选择。同时支持单色和渐变两种模式,可仅使用单色或者渐变其中一种模式,也可以同时使用。`monochrome` 表示单色,`linear-gradient` 表示渐变色 */\n colorModes: {\n type: Array as PropType,\n default: (): TdColorPickerProps['colorModes'] => ['monochrome', 'linear-gradient'],\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否开启透明通道 */\n enableAlpha: Boolean,\n /** 是否允许开启通过点击渐变轴增加渐变梯度,默认开启,关闭时只会存在起始和结束两个颜色 */\n enableMultipleGradient: {\n type: Boolean,\n default: true,\n },\n /** 格式化色值。`enableAlpha` 为真时,`HEX8/RGBA/HSLA/HSVA` 有效 */\n format: {\n type: String as PropType,\n default: 'RGB' as TdColorPickerProps['format'],\n validator(val: TdColorPickerProps['format']): boolean {\n if (!val) return true;\n return ['HEX', 'HEX8', 'RGB', 'RGBA', 'HSL', 'HSLA', 'HSV', 'HSVA', 'CMYK', 'CSS'].includes(val);\n },\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 透传 Popup 组件全部属性,如 `placement` `overlayStyle` `overlayClassName` `trigger`等 */\n popupProps: {\n type: Object as PropType,\n },\n /** 最近使用的颜色。值为 [] 表示以组件内部的“最近使用颜色”为准,值长度大于 0 则以该值为准显示“最近使用颜色”。值为 false 或 null 则完全不显示“最近使用颜色” */\n recentColors: {\n type: Array as PropType,\n default: undefined as TdColorPickerProps['recentColors'],\n },\n /** 最近使用的颜色。值为 [] 表示以组件内部的“最近使用颜色”为准,值长度大于 0 则以该值为准显示“最近使用颜色”。值为 false 或 null 则完全不显示“最近使用颜色”,非受控属性 */\n defaultRecentColors: {\n type: Array as PropType,\n default: (): TdColorPickerProps['defaultRecentColors'] => [],\n },\n /** 透传 SelectInputProps 筛选器输入框组件全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 是否展示颜色选择条右侧的颜色预览区域 */\n showPrimaryColorPreview: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdColorPickerProps['size'],\n validator(val: TdColorPickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 系统预设的颜色样例,值为 `null` 或 `[]` 则不显示系统色,值为 `undefined` 会显示组件内置的系统默认色 */\n swatchColors: {\n type: Array as PropType,\n default: undefined as TdColorPickerProps['swatchColors'],\n },\n /** 色值 */\n value: {\n type: String,\n default: undefined,\n },\n modelValue: {\n type: String,\n default: undefined,\n },\n /** 色值,非受控属性 */\n defaultValue: {\n type: String,\n default: '',\n },\n /** 选中的色值发生变化时触发,第一个参数 `value` 表示新色值,`context.color` 表示当前调色板控制器的色值,`context.trigger` 表示触发颜色变化的来源 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 调色板控制器的值变化时触发,`context.color` 指调色板控制器的值 */\n onPaletteBarChange: Function as PropType,\n /** 最近使用颜色发生变化时触发 */\n onRecentColorsChange: Function as PropType,\n};\n","import { defineComponent, PropType, reactive, watch } from 'vue';\nimport { throttle } from 'lodash-es';\nimport { Color, getColorFormatInputs, getColorFormatMap } from '@tdesign/common-js/color-picker/index';\nimport props from '../../props';\nimport TInput from '../../../input';\nimport TInputNumber from '../../../input-number';\n\nexport default defineComponent({\n name: 'FormatInputs',\n inheritAttrs: false,\n props: {\n ...props,\n color: {\n type: Object as PropType,\n },\n onInputChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const modelValue = reactive({});\n const lastModelValue = reactive({});\n\n // 更新 modelValue\n const updateModelValue = () => {\n const { format, color } = props;\n if (!color) return;\n const values = getColorFormatMap(color, 'encode')[format];\n // @ts-ignore\n values.a = Math.round(color.alpha * 100);\n Object.keys(values).forEach((key) => {\n // @ts-ignore\n modelValue[key] = values[key];\n // @ts-ignore\n lastModelValue[key] = values[key];\n });\n };\n\n updateModelValue();\n const throttleUpdate = throttle(updateModelValue, 100);\n\n watch(() => {\n const { saturation, hue, value, alpha } = props.color;\n return [saturation, hue, value, alpha, props.format];\n }, throttleUpdate);\n\n const handleChange = (key: string, v: number | string) => {\n if (v === lastModelValue[key]) return;\n\n if (key === 'a') {\n // 透明通道\n // eslint-disable-next-line vue/no-mutating-props, no-param-reassign\n props.color.alpha = (v as number) / 100;\n } else if (key === 'hex' || key === 'css') {\n // 纯字符串类型的格式\n props.color.update(v as string);\n } else {\n // 需要进一步转换的格式\n props.color.update(Color.object2color(modelValue, props.format));\n }\n\n const value = getColorFormatMap(props.color, 'decode')[props.format];\n props.onInputChange(value, props.color.alpha, key, v);\n };\n\n return () => {\n const inputProps = {\n ...((props.inputProps as any) || {}),\n };\n return (\n
    \n {getColorFormatInputs(props.format, props.enableAlpha).map((config) => {\n return (\n \n {config.type === 'input' ? (\n handleChange(config.key, v)}\n onEnter={(v: string) => handleChange(config.key, v)}\n />\n ) : (\n handleChange(config.key, v)}\n onEnter={(v: number) => handleChange(config.key, v)}\n />\n )}\n
    \n );\n })}\n
    \n );\n };\n },\n});\n","import { defineComponent, PropType, ref, watch } from 'vue';\nimport { Color, getColorFormatOptions } from '@tdesign/common-js/color-picker/index';\nimport type { TdColorPickerProps } from '../../type';\nimport props from '../../props';\nimport { Select as TSelect, Option as TOption } from '../../../select';\nimport FormatInputs from './inputs';\nimport { useBaseClassName } from '../../hooks';\nimport type { TdSelectInputProps } from '../../../select-input/type';\n\nexport default defineComponent({\n name: 'FormatPanel',\n inheritAttrs: false,\n props: {\n ...props,\n color: {\n type: Object as PropType,\n },\n onInputChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const formatModel = ref(props.format);\n\n watch(\n () => [props.format],\n () => (formatModel.value = props.format),\n );\n\n /**\n * 格式化类型改变触发\n * @param v\n */\n const handleModeChange = (v: TdColorPickerProps['format']) => {\n formatModel.value = v;\n };\n\n return () => {\n const newProps = {\n ...props,\n format: formatModel.value,\n };\n const selectInputProps = {\n ...((props.selectInputProps as Object) || {}),\n };\n return (\n
    \n
    \n \n {getColorFormatOptions(props.enableAlpha).map((item) => (\n \n ))}\n \n
    \n
    \n \n
    \n
    \n );\n };\n },\n});\n","import { 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 { 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 const color = props.type === 'hue' ? `hsl(${props.color.hue}, 100%, 50%)` : props.color.rgba;\n return {\n left: `${left}%`,\n color,\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 { computed, defineComponent, PropType } from 'vue';\nimport ColorSlider from './slider';\nimport { Color } from '../../utils';\nimport { useBaseClassName } from '../../hooks';\n\nexport default defineComponent({\n name: 'AlphaSlider',\n inheritAttrs: false,\n props: {\n color: {\n type: Object as PropType,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n onChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const handleChange = (v: number, isDragEnd?: boolean) => {\n props.onChange(v / 100, isDragEnd);\n };\n const railStyle = computed(() => {\n return {\n background: `linear-gradient(to right, rgba(0, 0, 0, 0), ${props.color.rgb})`,\n };\n });\n\n return () => {\n return (\n \n );\n };\n },\n});\n","import { defineComponent, PropType, ref, watch } from 'vue';\n\nimport { COLOR_MODES } from '@tdesign/common-js/color-picker/constants';\nimport { useConfig } from '@tdesign/shared-hooks';\nimport { RadioButton as TRadioButton, RadioGroup as TRadioGroup } from '../../../radio';\nimport props from '../../color-picker-panel-props';\nimport { useBaseClassName } from '../../hooks';\nimport type { TdColorModes } from '../../types';\n\nexport default defineComponent({\n name: 'PanelHeader',\n props: {\n ...props,\n mode: {\n type: String as PropType,\n default: 'color',\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 { 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 { 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 '@tdesign/shared-hooks';\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 const left = e.offsetX;\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, 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 { useGlobalIcon, useCommonClassName } from '@tdesign/shared-hooks';\n\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 { computed, defineComponent, ref, toRefs, watch } from 'vue';\nimport { cloneDeep, isNull, isUndefined } from 'lodash-es';\nimport {\n Color,\n DEFAULT_COLOR,\n DEFAULT_LINEAR_GRADIENT,\n DEFAULT_SYSTEM_SWATCH_COLORS,\n getColorObject,\n GradientColorPoint,\n initColorFormat,\n TD_COLOR_USED_COLORS_MAX_SIZE,\n} from '@tdesign/common-js/color-picker/index';\nimport { useCommonClassName, useConfig, useDefaultValue, useVModel } from '@tdesign/shared-hooks';\nimport props from '../../color-picker-panel-props';\nimport { useBaseClassName } from '../../hooks';\nimport type { ColorPickerChangeTrigger, TdColorPickerProps } from '../../type';\nimport type { TdColorModes } from '../../types';\nimport FormatPanel from '../format';\nimport AlphaSlider from './alpha';\nimport PanelHeader from './header';\nimport HueSlider from './hue';\nimport LinearGradient from './linear-gradient';\nimport SaturationPanel from './saturation';\nimport SwatchesPanel from './swatches';\n\nexport default defineComponent({\n name: 'ColorPanel',\n props: {\n ...props,\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const { STATUS } = useCommonClassName();\n const { t, globalConfig } = useConfig('colorPicker');\n const statusClassNames = STATUS.value;\n const { value: inputValue, modelValue, recentColors } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n const [innerRecentColors, setInnerRecentColors] = useDefaultValue(\n recentColors,\n props.defaultRecentColors,\n props.onRecentColorsChange,\n 'recentColors',\n );\n\n const getModeByColor = (input: string) => {\n if (props.colorModes.length === 1) return props.colorModes[0];\n return props.colorModes.includes('linear-gradient') && Color.isGradientColor(input)\n ? 'linear-gradient'\n : 'monochrome';\n };\n const mode = ref(getModeByColor(innerValue.value));\n\n const isGradient = computed(() => mode.value === 'linear-gradient');\n const defaultEmptyColor = computed(() => (isGradient.value ? DEFAULT_LINEAR_GRADIENT : DEFAULT_COLOR));\n\n const color = ref(new Color(innerValue.value || defaultEmptyColor.value));\n\n const formatModel = ref(initColorFormat(props.format, props.enableAlpha));\n\n /**\n * 添加最近使用颜色\n * @returns void\n */\n const addRecentlyUsedColor = () => {\n if (innerRecentColors.value === null || innerRecentColors.value === false) {\n return;\n }\n const colors = cloneDeep(innerRecentColors.value as string[]) || [];\n const currentColor = color.value.isGradient ? color.value.linearGradient : color.value.rgba;\n const index = colors.indexOf(currentColor);\n if (index > -1) {\n colors.splice(index, 1);\n }\n colors.unshift(currentColor);\n if (colors.length > TD_COLOR_USED_COLORS_MAX_SIZE) {\n colors.length = TD_COLOR_USED_COLORS_MAX_SIZE;\n }\n handleRecentlyUsedColorsChange(colors);\n };\n\n /**\n * 最近使用颜色变更时触发\n * @param colors\n */\n const handleRecentlyUsedColorsChange = (colors: string[]) => {\n setInnerRecentColors(colors);\n };\n\n /**\n * onChange\n * @param trigger\n */\n const emitColorChange = (trigger?: ColorPickerChangeTrigger) => {\n const value = color.value.getFormattedColor(props.format, props.enableAlpha);\n setInnerValue(value, {\n color: getColorObject(color.value),\n trigger: trigger || 'palette-saturation-brightness',\n });\n };\n\n watch(\n () => innerValue.value,\n (newColor) => {\n const newMode = getModeByColor(newColor);\n mode.value = newMode;\n color.value.isGradient = newMode === 'linear-gradient';\n const currentColor = color.value.getFormattedColor(props.format, props.enableAlpha);\n if (currentColor !== newColor) {\n color.value.update(newColor);\n }\n },\n );\n\n /**\n * mode change\n * @param newMode\n * @returns\n */\n const handleModeChange = (newMode: TdColorModes) => {\n mode.value = newMode;\n\n const isGradientMode = newMode === 'linear-gradient';\n color.value.isGradient = isGradientMode;\n\n if (isGradientMode) {\n color.value.update(\n color.value.gradientColors.length > 0 ? color.value.linearGradient : DEFAULT_LINEAR_GRADIENT,\n );\n } else {\n color.value.update(color.value.rgba);\n }\n\n emitColorChange();\n };\n\n /**\n * 饱和度亮度变化\n * @param param0\n */\n const handleSatAndValueChange = ({ saturation, value }: { saturation: number; value: number }) => {\n const { saturation: sat, value: val } = color.value;\n let changeTrigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n if (value !== val && saturation !== sat) {\n color.value.saturation = saturation;\n color.value.value = value;\n changeTrigger = 'palette-saturation-brightness';\n } else if (saturation !== sat) {\n color.value.saturation = saturation;\n changeTrigger = 'palette-saturation';\n } else if (value !== val) {\n color.value.value = value;\n changeTrigger = 'palette-brightness';\n } else {\n return;\n }\n\n emitColorChange(changeTrigger);\n };\n\n /**\n * 色相变化\n * @param hue\n */\n const handleHueChange = (hue: number) => {\n color.value.hue = hue;\n emitColorChange('palette-hue-bar');\n props.onPaletteBarChange?.({\n color: getColorObject(color.value),\n });\n };\n\n /**\n * 透明度变化\n * @param alpha\n */\n const handleAlphaChange = (alpha: number) => {\n color.value.alpha = alpha;\n emitColorChange('palette-alpha-bar');\n };\n\n /**\n * 输入框触发改变\n * @param input\n * @param alpha\n */\n const handleInputChange = (input: string, alpha?: number) => {\n color.value.update(input);\n color.value.alpha = alpha;\n emitColorChange('input');\n };\n\n /**\n * 渐变改变\n * @param param0\n */\n const handleGradientChange = ({\n key,\n payload,\n }: {\n key: 'degree' | 'selectedId' | 'colors';\n payload: number | string | GradientColorPoint[];\n }) => {\n let trigger: ColorPickerChangeTrigger = 'palette-saturation-brightness';\n switch (key) {\n case 'degree':\n color.value.gradientDegree = payload as number;\n trigger = 'input';\n break;\n case 'selectedId':\n color.value.gradientSelectedId = payload as string;\n break;\n case 'colors':\n color.value.gradientColors = payload as GradientColorPoint[];\n break;\n }\n emitColorChange(trigger);\n };\n\n /**\n * 色块点击\n * @param type\n * @param value\n */\n const handleSetColor = (value: string, trigger: ColorPickerChangeTrigger) => {\n const newMode = getModeByColor(value);\n mode.value = newMode;\n color.value.isGradient = newMode === 'linear-gradient';\n color.value.update(value);\n emitColorChange(trigger);\n };\n\n return () => {\n const baseProps = {\n color: color.value,\n disabled: props.disabled,\n };\n\n // 只支持渐变模式\n const onlySupportGradient = props.colorModes.length === 1 && props.colorModes.includes('linear-gradient');\n\n // 最近使用颜色\n let recentColors = innerRecentColors.value;\n if (onlySupportGradient && Array.isArray(recentColors)) {\n recentColors = recentColors.filter((color) => Color.isGradientColor(color));\n }\n const showUsedColors = !!Array.isArray(recentColors);\n\n // 系统预设颜色\n let systemColors = props.swatchColors;\n if (isUndefined(systemColors)) {\n systemColors = [...DEFAULT_SYSTEM_SWATCH_COLORS];\n }\n if (isNull(systemColors)) {\n systemColors = [];\n }\n if (onlySupportGradient) {\n systemColors = systemColors.filter((color) => Color.isGradientColor(color));\n }\n const showSystemColors = Array.isArray(systemColors) && systemColors.length;\n\n const renderSwatches = () => {\n if (!showSystemColors && !showUsedColors) return null;\n return (\n <>\n
    \n {showUsedColors ? (\n handleSetColor(color, 'recent')}\n onChange={handleRecentlyUsedColorsChange}\n />\n ) : null}\n {showSystemColors ? (\n handleSetColor(color, 'preset')}\n />\n ) : null}\n
    \n \n );\n };\n\n return (\n
    \n \n
    \n {isGradient.value ? (\n \n ) : null}\n\n \n\n
    \n
    \n \n {props.enableAlpha ? : null}\n
    \n\n {props.showPrimaryColorPreview ? (\n
    \n \n
    \n ) : null}\n
    \n\n \n {renderSwatches()}\n
    \n
    \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport props from './color-picker-panel-props';\nimport ColorPanel from './components/panel';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport { pickBy } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TColorPickerPanel',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const newProps = computed(() => pickBy({ ...props, ...attrs }, (v) => v !== undefined));\n const prefix = usePrefixClass();\n return () => ;\n },\n});\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n","import { defineComponent, PropType, ref, watch } from 'vue';\nimport TInput from '../../../input';\nimport { Color, getColorObject } from '../../utils';\nimport { TdColorPickerProps } from '../../type';\nimport { useBaseClassName } from '../../hooks';\nimport { useCommonClassName } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'DefaultTrigger',\n inheritAttrs: false,\n props: {\n color: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n borderless: {\n type: Boolean,\n default: false,\n },\n clearable: {\n type: Boolean,\n default: false,\n },\n inputProps: {\n type: Object as PropType,\n default: () => {\n return {\n autoWidth: true,\n };\n },\n },\n onTriggerChange: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n onTriggerClear: {\n type: Function,\n default: () => {\n return () => {};\n },\n },\n size: {\n type: String as PropType,\n default: 'medium',\n },\n },\n setup(props) {\n const baseClassName = useBaseClassName();\n const value = ref(props.color);\n const { SIZE: sizeClassNames } = useCommonClassName();\n watch(\n () => [props.color],\n () => (value.value = props.color),\n );\n\n const handleChange = (input: string) => {\n if (input !== props.color) {\n props.onTriggerChange(value.value, {\n color: getColorObject(new Color(input)),\n trigger: 'input',\n });\n }\n };\n\n const handleClear = (context: { e: MouseEvent }) => props.onTriggerClear?.(context);\n\n return () => {\n const inputSlots = {\n label: () => {\n return (\n
    \n \n
    \n );\n },\n };\n return (\n \n );\n };\n },\n});\n","import { defineComponent, ref, toRefs } from 'vue';\nimport { useDefaultValue, useTNodeDefault, useVModel } from '@tdesign/shared-hooks';\n\nimport { type PopupProps, Popup as TPopup } from '../popup';\nimport ColorPanel from './components/panel';\nimport DefaultTrigger from './components/trigger';\nimport { useBaseClassName } from './hooks';\nimport props from './props';\n\nexport default defineComponent({\n name: 'TColorPicker',\n props,\n setup(props) {\n const baseClassName = useBaseClassName();\n const renderTNodeJSXDefault = useTNodeDefault();\n\n const { value: inputValue, modelValue, recentColors } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(inputValue, modelValue, props.defaultValue, props.onChange);\n const [innerRecentColors, setInnerRecentColors] = useDefaultValue(\n recentColors,\n props.defaultRecentColors,\n props.onRecentColorsChange,\n 'recentColors',\n );\n\n const refTrigger = ref();\n\n const handleClear = (context: { e: MouseEvent }) => props.onClear?.(context);\n\n const renderPopupContent = () => {\n if (props.disabled) {\n return null;\n }\n\n return (\n \n );\n };\n\n return () => {\n const popProps = {\n placement: 'bottom-left' as const,\n trigger: 'click' as const,\n overlayClassName: [baseClassName.value],\n ...((props.popupProps as PopupProps) || {}),\n };\n return (\n \n
    \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 '@tdesign/shared-utils';\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, isString, isFunction } from 'lodash-es';\n\nimport { ImageErrorIcon, ImageIcon } from 'tdesign-icons-vue-next';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { useTNodeJSX, useTNodeDefault, useImagePreviewUrl } from '@tdesign/shared-hooks';\nimport props from './props';\nimport Space from '../space';\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 '@tdesign/shared-utils';\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 { useContent, useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\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 * 【开发中】头像右上角提示信息\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, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { getChildren } from '@tdesign/shared-utils';\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 '@tdesign/shared-utils';\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, usePrefixClass } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 '@tdesign/shared-hooks';\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 { isBoolean, isFunction } from 'lodash-es';\n\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 '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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 { useContent, useCommonClassName } from '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\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, isArray, isFunction } from 'lodash-es';\n\nimport props from './props';\nimport * as utils from './utils';\nimport { useConfig, useContent } from '@tdesign/shared-hooks';\n\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 // @ts-ignore @types/lodash 4.17.18\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 '@tdesign/shared-utils';\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 bodyClassName: {\n type: String as PropType,\n },\n /** body区域自定义样式 */\n bodyStyle: {\n type: Object as PropType,\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 footerClassName: {\n type: String as PropType,\n },\n /** 卡片底部区域自定义样式 */\n footerStyle: {\n type: Object as PropType,\n },\n /** 卡片顶部内容,优先级高于其他所有元素 */\n header: {\n type: [String, Function] as PropType,\n },\n /** 卡片顶部区域自定义类名 */\n headerClassName: {\n type: String as PropType,\n },\n /** 卡片顶部区域自定义样式 */\n headerStyle: {\n type: Object 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 { useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\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 `${COMPONENT_NAME.value}__header`,\n props.headerBordered && `${COMPONENT_NAME.value}__title--bordered`,\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)\n return (\n
    \n {renderTNodeJSX('header')}\n
    \n );\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
    \n {renderTNodeJSX('default') || renderTNodeJSX('content')}\n
    \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 '@tdesign/shared-utils';\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 { useTNodeJSX, usePrefixClass, useFlatChildrenSlots } from '@tdesign/shared-hooks';\n\nimport Button from '../button';\nimport { isString } 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 const getFlatChildren = useFlatChildrenSlots();\n\n return () => {\n const reply = renderTNodeJSX('reply');\n const author = renderTNodeJSX('author');\n const datetime = renderTNodeJSX('datetime');\n const quote = renderTNodeJSX('quote');\n const actions = renderTNodeJSX('actions');\n const content = renderTNodeJSX('content');\n const avatar = renderTNodeJSX('avatar');\n const showAuthorDatetime = computed(() => author || datetime);\n\n const replyDom = reply ?
    {reply}
    : null;\n\n const quoteDom = quote ?
    {quote}
    : null;\n\n const avatarDom = avatar ? (\n
    \n {isString(avatar) ? \"\" : avatar}\n
    \n ) : null;\n\n const authorDatetimeDom = showAuthorDatetime.value && (\n
    \n {author && {author}}\n {datetime && {datetime}}\n
    \n );\n\n const renderActions = () => {\n if (!actions || !actions.length) return null;\n const flatChildren = getFlatChildren(actions);\n return (\n
    \n {flatChildren.map((action, index) => (\n \n ))}\n
    \n );\n };\n\n const contentDom = (\n
    \n {authorDatetimeDom}\n
    {content}
    \n {quoteDom}\n {renderActions()}\n
    \n );\n\n return (\n
    \n
    \n {avatarDom}\n {contentDom}\n
    \n {replyDom}\n
    \n );\n };\n },\n});\n","import _Comment from './comment';\nimport { withInstall } from '@tdesign/shared-utils';\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, isPlainObject } from 'lodash-es';\n\nimport { useConfig, useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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","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, useImagePreviewUrl } from '@tdesign/shared-hooks';\n\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 { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\nimport { TNode } from '../../common';\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 /** 是否启用对话框懒加载,启用时对话框内的内容不渲染 */\n lazy: Boolean,\n /** 对话框类型,有 4 种:模态对话框、非模态对话框、普通对话框、全屏对话框。弹出「模态对话框」时,只能操作对话框里面的内容,不能操作其他内容。弹出「非模态对话框」时,则可以操作页面内所有内容。「普通对话框」是指没有脱离文档流的对话框,可以在这个基础上开发更多的插件 */\n mode: {\n type: String as PropType,\n default: 'modal' as TdDialogProps['mode'],\n validator(val: TdDialogProps['mode']): boolean {\n if (!val) return true;\n return ['modal', 'modeless', 'normal', 'full-screen'].includes(val);\n },\n },\n /** 对话框位置,内置两种:垂直水平居中显示 和 靠近顶部(top:20%)显示。默认情况,为避免贴顶或贴底,顶部和底部距离最小为 `48px`,可通过调整 `top` 覆盖默认大小 */\n placement: {\n type: String as PropType,\n default: 'top' as TdDialogProps['placement'],\n validator(val: TdDialogProps['placement']): boolean {\n if (!val) return true;\n return ['top', 'center'].includes(val);\n },\n },\n /** 防止滚动穿透 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative */\n showInAttachedElement: Boolean,\n /** 是否显示遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 对话框风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdDialogProps['theme'],\n validator(val: TdDialogProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'info', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 用于弹框具体窗口顶部的距离,优先级大于 placement */\n top: {\n type: [String, Number] as PropType,\n },\n /** 控制对话框是否显示 */\n visible: Boolean,\n /** 对话框宽度,示例:320, '500px', '80%' */\n width: {\n type: [String, Number] as PropType,\n },\n /** 对话框层级,Web 侧样式默认为 2500,移动端和小程序样式默认为 1500 */\n zIndex: {\n type: Number,\n },\n /** 对话框执行消失动画效果前触发 */\n onBeforeClose: Function as PropType,\n /** 对话框执行弹出动画效果前触发 */\n onBeforeOpen: Function as PropType,\n /** 如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 关闭事件,点击取消按钮、点击关闭按钮、点击蒙层、按下 ESC 等场景下触发 */\n onClose: Function as PropType,\n /** 点击右上角关闭按钮时触发 */\n onCloseBtnClick: Function as PropType,\n /** 对话框消失动画效果结束后触发 */\n onClosed: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发,或者键盘按下回车键时触发 */\n onConfirm: Function as PropType,\n /** 按下 ESC 时触发事件 */\n onEscKeydown: Function as PropType,\n /** 对话框弹出动画效果结束后触发 */\n onOpened: Function as PropType,\n /** 如果蒙层存在,点击蒙层时触发 */\n onOverlayClick: Function as PropType,\n};\n","import { getCurrentInstance } from 'vue';\nimport { omit, isString, isObject } from 'lodash-es';\n\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\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 { useConfig, useContent, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { useAction } from './hooks';\n\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, useTeleport, usePrefixClass, usePopupManager, useDestroyOnClose } from '@tdesign/shared-hooks';\nimport { useSameTarget } from './hooks';\n\nimport { getScrollbarWidth } from '@tdesign/common-js/utils/getScrollbarWidth';\n\nimport { getCSSValue } from './utils';\nimport TDialogCard from './dialog-card';\n\nlet mousePosition: { x: number; y: number } | null;\nconst getClickPosition = (e: MouseEvent) => {\n mousePosition = {\n x: e.clientX,\n y: e.clientY,\n };\n setTimeout(() => {\n mousePosition = null;\n }, 100);\n};\n\nif (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n document.documentElement.addEventListener('click', getClickPosition, true);\n}\n\nlet key = 1;\n\nexport default defineComponent({\n name: 'TDialog',\n inheritAttrs: false,\n props,\n emits: ['update:visible'],\n setup(props, context) {\n const COMPONENT_NAME = usePrefixClass('dialog');\n const classPrefix = usePrefixClass();\n const dialogCardRef = ref void }>>(null);\n const { globalConfig } = useConfig('dialog');\n const confirmBtnAction = (context: { e: MouseEvent }) => {\n props.onConfirm?.(context);\n };\n const cancelBtnAction = (context: { e: MouseEvent }) => {\n props.onCancel?.(context);\n emitCloseEvent({ e: context.e, trigger: 'cancel' });\n };\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n useDestroyOnClose();\n const timer = ref();\n const styleEl = ref();\n // 是否模态形式的对话框\n const isModal = computed(() => props.mode === 'modal');\n // 是否非模态对话框\n const isModeLess = computed(() => props.mode === 'modeless');\n // 是否全屏对话框\n const isFullScreen = computed(() => props.mode === 'full-screen');\n const computedVisible = computed(() => props.visible);\n const maskClass = computed(() => [\n `${COMPONENT_NAME.value}__mask`,\n !props.showOverlay && `${classPrefix.value}-is-hidden`,\n ]);\n const positionClass = computed(() => {\n if (isFullScreen.value) return [`${COMPONENT_NAME.value}__position_fullscreen`];\n if (isModal.value || isModeLess.value) {\n return [\n `${COMPONENT_NAME.value}__position`,\n !!props.top && `${COMPONENT_NAME.value}--top`,\n `${props.placement && !props.top ? `${COMPONENT_NAME.value}--${props.placement}` : ''}`,\n ];\n }\n return [];\n });\n const wrapClass = computed(() =>\n isFullScreen.value || isModal.value || isModeLess.value ? [`${COMPONENT_NAME.value}__wrap`] : null,\n );\n const positionStyle = computed(() => {\n if (isFullScreen.value) return {}; // 全屏模式,top属性不生效\n\n // 此处获取定位方式 top 优先级较高 存在时 默认使用top定位\n const { top } = props;\n let topStyle = {};\n if (top !== undefined) {\n const topValue = getCSSValue(top);\n topStyle = { paddingTop: topValue };\n }\n return topStyle;\n });\n\n const { isTopInteractivePopup } = usePopupManager('dialog', {\n visible: computedVisible,\n });\n /**是否已经第一次渲染,懒加载判断 */\n const isMounted = ref(false);\n\n watch(\n () => props.visible,\n (value) => {\n if (value) {\n isMounted.value = true;\n if ((isModal.value && !props.showInAttachedElement) || isFullScreen.value) {\n if (props.preventScrollThrough) {\n document.body.appendChild(styleEl.value);\n }\n\n nextTick(() => {\n if (mousePosition && dialogCardRef.value?.$el) {\n const el = dialogCardRef.value.$el as HTMLElement;\n el.style.transformOrigin = `${mousePosition.x - el.offsetLeft}px ${mousePosition.y - el.offsetTop}px`;\n }\n });\n }\n // 清除鼠标焦点 避免entry事件多次触发(按钮弹出弹窗 不移除焦点 立即按Entry按键 会造成弹窗关闭再弹出)\n (document.activeElement as HTMLElement)?.blur();\n } else {\n clearStyleFunc();\n }\n addKeyboardEvent(value);\n },\n );\n\n function destroySelf() {\n styleEl.value.parentNode?.removeChild?.(styleEl.value);\n }\n\n function clearStyleFunc() {\n clearTimeout(timer.value);\n timer.value = setTimeout(() => {\n destroySelf();\n }, 150);\n }\n\n const addKeyboardEvent = (status: boolean) => {\n if (status) {\n document.addEventListener('keydown', keyboardEvent);\n props.confirmOnEnter && document.addEventListener('keydown', keyboardEnterEvent);\n } else {\n document.removeEventListener('keydown', keyboardEvent);\n props.confirmOnEnter && document.removeEventListener('keydown', keyboardEnterEvent);\n }\n };\n // 回车触发确认事件\n const keyboardEnterEvent = (e: KeyboardEvent) => {\n const eventSrc = e.target as HTMLElement;\n if (eventSrc.tagName.toLowerCase() === 'input') return; // 若是input触发 则不执行\n const { code } = e;\n if ((code === 'Enter' || code === 'NumpadEnter') && isTopInteractivePopup()) {\n props.onConfirm?.({ e });\n }\n };\n const keyboardEvent = (e: KeyboardEvent) => {\n if (e.code === 'Escape' && isTopInteractivePopup()) {\n props.onEscKeydown?.({ e });\n // 根据closeOnEscKeydown判断按下ESC时是否触发close事件\n if (props.closeOnEscKeydown ?? globalConfig.value.closeOnEscKeydown) {\n emitCloseEvent({ e, trigger: 'esc' });\n // 阻止事件冒泡\n e.stopImmediatePropagation();\n }\n }\n };\n const overlayAction = (e: MouseEvent) => {\n if (props.showOverlay && (props.closeOnOverlayClick ?? globalConfig.value.closeOnOverlayClick)) {\n props.onOverlayClick?.({ e });\n emitCloseEvent({ e, trigger: 'overlay' });\n }\n };\n const { onClick, onMousedown, onMouseup } = useSameTarget(overlayAction);\n const closeBtnAction = (context: { e: MouseEvent }) => {\n props.onCloseBtnClick?.(context);\n emitCloseEvent({\n trigger: 'close-btn',\n e: context.e,\n });\n };\n\n // 打开弹窗动画开始时事件\n const beforeEnter = () => {\n props.onBeforeOpen?.();\n };\n\n // 打开弹窗动画结束时事件\n const afterEnter = () => {\n props.onOpened?.();\n };\n\n // 关闭弹窗动画开始时事件\n const beforeLeave = () => {\n props.onBeforeClose?.();\n };\n\n // 关闭弹窗动画结束时事件\n const afterLeave = () => {\n dialogCardRef.value?.resetPosition?.();\n props.onClosed?.();\n };\n\n const emitCloseEvent = (ctx: DialogCloseContext) => {\n props.onClose?.(ctx);\n // 默认关闭弹窗\n context.emit('update:visible', false);\n };\n\n // Vue在引入阶段对事件的处理还做了哪些初始化操作。Vue在实例上用一个_events属性存贮管理事件的派发和更新,\n // 暴露出$on, $once, $off, $emit方法给外部管理事件和派发执行事件\n // 所以通过判断_events某个事件下监听函数数组是否超过一个,可以判断出组件是否监听了当前事件\n // const hasEventOn = (name: string) => {\n // // _events 因没有被暴露在vue实例接口中,只能把这个规则注释掉\n // // eslint-disable-next-line dot-notation\n // // @ts-ignore\n // const eventFuncs = this['_events']?.[name];\n // return !!eventFuncs?.length;\n // };\n\n const renderDialog = () => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { theme, onConfirm, onCancel, onCloseBtnClick, ...otherProps } = props;\n return (\n /** 非模态形态下draggable为true才允许拖拽 */\n
    \n \n \n
    \n \n );\n };\n\n onMounted(() => {\n const hasScrollBar = document.documentElement.scrollHeight > document.documentElement.clientHeight;\n const scrollWidth = hasScrollBar ? getScrollbarWidth() : 0;\n styleEl.value = document.createElement('style');\n styleEl.value.dataset.id = `td_dialog_${+new Date()}_${(key += 1)}`;\n styleEl.value.innerHTML = `\n html body {\n overflow-y: hidden;\n width: calc(100% - ${scrollWidth}px);\n }\n `;\n });\n\n onBeforeUnmount(() => {\n addKeyboardEvent(false);\n destroySelf();\n });\n\n const shouldRender = computed(() => {\n const { destroyOnClose, visible, lazy } = props;\n if (!isMounted.value) {\n return !lazy;\n } else {\n return visible || !destroyOnClose;\n }\n });\n\n return () => {\n const maskView = (isModal.value || isFullScreen.value) &&
    ;\n const dialogView = renderDialog();\n const view = [maskView, dialogView];\n const ctxStyle = { zIndex: props.zIndex };\n // dialog__ctx--fixed 绝对定位\n // dialog__ctx--absolute 挂载在attach元素上 相对定位\n // __ctx--modeless modeless 点击穿透\n const ctxClass = [\n `${COMPONENT_NAME.value}__ctx`,\n {\n [`${COMPONENT_NAME.value}__ctx--fixed`]: isModal.value || isFullScreen.value,\n [`${COMPONENT_NAME.value}__ctx--absolute`]: isModal.value && props.showInAttachedElement,\n [`${COMPONENT_NAME.value}__ctx--modeless`]: isModeLess.value,\n },\n ];\n\n return (\n \n \n {shouldRender.value && (\n
    \n {view}\n
    \n )}\n \n
    \n );\n };\n },\n});\n","export function useSameTarget(handleClick?: (e: MouseEvent) => void) {\n // 判断 click 事件的起点和落点所在元素是否一致\n let MOUSEDOWN_TARGET = false;\n let MOUSEUP_TARGET = false;\n\n const onClick = (e: MouseEvent) => {\n if (MOUSEDOWN_TARGET && MOUSEUP_TARGET) {\n handleClick?.(e);\n }\n MOUSEDOWN_TARGET = false;\n MOUSEUP_TARGET = false;\n };\n\n const onMousedown = (e: MouseEvent) => {\n MOUSEDOWN_TARGET = e.target === e.currentTarget;\n };\n const onMouseup = (e: MouseEvent) => {\n MOUSEUP_TARGET = e.target === e.currentTarget;\n };\n\n return { onClick, onMousedown, onMouseup };\n}\n","import { App, ref, Plugin, defineComponent, h, onMounted, nextTick, AppContext, createVNode, render } from 'vue';\nimport DialogComponent from './dialog';\nimport { getAttach } from '@tdesign/shared-utils';\nimport { DialogOptions, DialogMethod, DialogConfirmMethod, DialogAlertMethod, DialogInstance } from './type';\nimport { omit } from 'lodash-es';\n\nconst createDialog: DialogMethod = (props, context) => {\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 function destroySelf() {\n render(null, wrapper);\n wrapper.remove();\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 if (options.destroyOnClose) {\n setTimeout(() => {\n destroySelf();\n }, 300);\n }\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 dialog = createVNode(component);\n // eslint-disable-next-line no-underscore-dangle\n if (context ?? DialogPlugin._context) {\n // eslint-disable-next-line no-underscore-dangle\n dialog.appContext = context ?? DialogPlugin._context;\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 render(dialog, wrapper);\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.component.exposed.update(omit(newOptions, ['className', 'style']));\n updateClassNameStyle(newOptions.className, newOptions.style);\n },\n destroy: () => {\n visible.value = false;\n setTimeout(() => {\n destroySelf();\n }, 300);\n },\n setConfirmLoading: (val: boolean) => {\n dialog.component.exposed.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, context?: AppContext) => createDialog(props, context);\n\nconst alert: DialogAlertMethod = (props: Omit, context?: AppContext) => {\n const options = { ...props };\n options.cancelBtn = null;\n return createDialog(options, context);\n};\n\nconst extraApi: ExtraApi = {\n confirm,\n alert,\n};\n\nexport type DialogPluginType = Plugin &\n ExtraApi &\n DialogMethod & {\n _context?: AppContext;\n };\n\nexport const DialogPlugin = createDialog as DialogPluginType;\n\nDialogPlugin.install = (app: App): void => {\n app.config.globalProperties.$dialog = createDialog;\n // 如果使用 use 方法,自动绑定当前 App 的 context\n // eslint-disable-next-line no-underscore-dangle\n DialogPlugin._context = app._context;\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 '@tdesign/shared-utils';\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 { useConfig, usePrefixClass, useImagePreviewUrl } from '@tdesign/shared-hooks';\n\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, usePrefixClass } from '@tdesign/shared-hooks';\n\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 { isArray, isString } 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 {\n useVModel,\n useTNodeJSX,\n useTeleport,\n usePrefixClass,\n useDefaultValue,\n usePopupManager,\n} from '@tdesign/shared-hooks';\n\nimport Image from '../image';\nimport TImageItem from './base/ImageItem';\nimport TImageViewerIcon from './base/ImageModalIcon';\nimport TImageViewerModal from './base/ImageViewerModal';\nimport TImageViewerUtils from './base/ImageViewerUtils';\nimport { EVENT_CODE } from './consts';\nimport { useMirror, useRotate, useScale } from './hooks';\nimport props from './props';\nimport { TdImageViewerProps } from './type';\nimport { downloadFile, formatImages, getOverlay } from './utils';\n\nexport default defineComponent({\n name: 'TImageViewer',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('image-viewer');\n const renderTNodeJSX = useTNodeJSX();\n const isExpand = ref(true);\n const showOverlayValue = computed(() => getOverlay(props));\n\n const { index, visible, modelValue, imageReferrerpolicy } = toRefs(props);\n const [indexValue, setIndexValue] = useDefaultValue(index, props.defaultIndex ?? 0, props.onIndexChange, 'index');\n const [visibleValue, setVisibleValue] = useVModel(visible, modelValue, props.defaultVisible, () => {}, 'visible');\n const animationEnd = ref(true);\n const animationTimer = ref();\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n\n const wrapClass = computed(() => [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}-preview-image`,\n {\n [`${classPrefix.value}-is-hide`]: !visibleValue.value,\n },\n ]);\n const headerClass = computed(() => [\n `${classPrefix.value}-image-viewer__modal-header`,\n {\n [`${classPrefix.value}-is-show`]: isExpand.value,\n },\n ]);\n const zIndexValue = computed(() => props.zIndex ?? 2600);\n const toggleExpand = () => {\n isExpand.value = !isExpand.value;\n };\n\n const { mirror, onMirror, resetMirror } = useMirror();\n const { scale, onZoomIn, onZoomOut, resetScale } = useScale(props.imageScale);\n const { rotate, onRotate, resetRotate } = useRotate();\n const onRest = () => {\n resetMirror();\n resetScale();\n resetRotate();\n };\n\n const images = computed(() => formatImages(props.images));\n const currentImage = computed(() => images.value[indexValue.value] ?? { mainImage: '' });\n\n const { isTopInteractivePopup } = usePopupManager('dialog', {\n visible: visibleValue,\n });\n\n const prevImage = () => {\n const newIndex = indexValue.value - 1;\n onRest();\n setIndexValue(newIndex < 0 ? 0 : newIndex, { trigger: 'prev' });\n };\n\n const nextImage = () => {\n const newIndex = indexValue.value + 1;\n onRest();\n setIndexValue(newIndex >= images.value.length ? indexValue.value : newIndex, { trigger: 'next' });\n };\n\n const onImgClick = (i: number) => {\n setIndexValue(i, { trigger: 'current' });\n };\n\n const onDownloadClick = (url: string) => {\n props.onDownload ? props.onDownload(url) : downloadFile(url);\n };\n\n const openHandler = () => {\n setVisibleValue(true);\n };\n const onClose: TdImageViewerProps['onClose'] = (ctx) => {\n setVisibleValue(false);\n props.onClose?.(ctx);\n };\n const closeBtnAction = (e: MouseEvent) => {\n onClose({ e, trigger: 'close-btn' });\n };\n const clickOverlayHandler = (e: MouseEvent) => {\n if (props.closeOnOverlay) {\n onClose({ e, trigger: 'overlay' });\n }\n };\n\n const keydownHandler = (e: KeyboardEvent) => {\n e.stopPropagation();\n\n switch (e.code) {\n case EVENT_CODE.left:\n prevImage();\n break;\n case EVENT_CODE.right:\n nextImage();\n break;\n case EVENT_CODE.up:\n onZoomIn();\n break;\n case EVENT_CODE.down:\n onZoomOut();\n break;\n case EVENT_CODE.esc:\n if (props.closeOnEscKeydown && isTopInteractivePopup()) {\n onClose({ e, trigger: 'esc' });\n }\n break;\n default:\n break;\n }\n };\n\n const divRef = ref();\n watch(\n () => visibleValue.value,\n (val) => {\n clearTimeout(animationTimer.value);\n if (val) {\n animationEnd.value = false;\n nextTick().then(() => {\n divRef.value?.focus?.();\n });\n\n onRest();\n } else {\n animationTimer.value = setTimeout(() => {\n animationEnd.value = true;\n }, 200);\n }\n },\n );\n\n const onWheel = (e: WheelEvent) => {\n e.preventDefault();\n const { deltaY } = e;\n deltaY > 0 ? onZoomOut() : onZoomIn();\n };\n\n const transStyle = computed(() => ({\n transform: `translateX(calc(-${indexValue.value} * (40px / 9 * 16 + 4px)))`,\n }));\n\n const renderHeader = () => (\n
    \n }\n class={`${COMPONENT_NAME.value}__header-pre-bt`}\n onClick={toggleExpand}\n />\n
    \n
    \n {images.value.map((image, index) => (\n \n onImgClick(index)}\n />\n
    \n ))}\n
    \n
    \n \n );\n const renderNavigationArrow = (type: 'prev' | 'next') => {\n const rotateDeg = type === 'prev' ? 0 : 180;\n const icon = renderTNodeJSX(\n 'navigationArrow',\n ,\n );\n\n return (\n icon}\n />\n );\n };\n\n const renderCloseBtn = () => {\n if (props.closeBtn === false) {\n return;\n }\n return (\n \n {renderTNodeJSX('closeBtn', )}\n \n );\n };\n\n return () => {\n if (props.mode === 'modeless') {\n return (\n <>\n {renderTNodeJSX('trigger', { params: { open: openHandler } })}\n \n \n );\n }\n\n return (\n <>\n {renderTNodeJSX('trigger', { params: { open: openHandler } })}\n \n \n {(visibleValue.value || !animationEnd.value) && (\n \n {!!showOverlayValue.value && (\n
    \n )}\n {images.value.length > 1 && (\n <>\n {renderHeader()}\n
    \n {props.title && renderTNodeJSX('title')}\n {`${indexValue.value + 1}/${images.value.length}`}\n
    \n {renderNavigationArrow('prev')}\n {renderNavigationArrow('next')}\n \n )}\n {renderCloseBtn()}\n \n \n
    \n )}\n
    \n
    \n \n );\n };\n },\n});\n","import _ImageViewer from './image-viewer';\nimport { withInstall } from '@tdesign/shared-utils';\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 { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\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 { useVirtualScrollNew } from '@tdesign/shared-hooks';\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 = useVirtualScrollNew(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 { omit, isString } from 'lodash-es';\n\nimport { useConfig, useTNodeJSX, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\nimport TLoading from '../loading';\nimport TListItem from './list-item';\nimport props from './props';\nimport { LOAD_MORE, LOADING } from './consts';\n\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 '@tdesign/shared-hooks';\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 { useContent, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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, ref, nextTick } 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';\n\nimport { useTNodeJSX, useGlobalIcon, usePrefixClass, useResizeObserver } from '@tdesign/shared-hooks';\n\nimport { isObject, 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 CIRCLE_ICONS_MAP = {\n success: CheckIcon,\n warning: ErrorIcon,\n error: CloseIcon,\n };\n const NORMAL_ICONS_MAP = {\n success: CheckCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n error: CloseCircleFilledIcon,\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 diameterValue = CIRCLE_SIZE_PX.MEDIUM;\n if (!props.size) {\n return diameterValue;\n }\n const { SMALL, LARGE, MEDIUM } = CIRCLE_SIZE;\n switch (props.size) {\n case SMALL:\n diameterValue = CIRCLE_SIZE_PX.SMALL;\n break;\n case MEDIUM:\n diameterValue = CIRCLE_SIZE_PX.MEDIUM;\n break;\n case LARGE:\n diameterValue = CIRCLE_SIZE_PX.LARGE;\n break;\n default:\n const customSize = Number(props.size);\n diameterValue = !isNaN(customSize) && customSize > 0 ? customSize : CIRCLE_SIZE_PX.MEDIUM;\n break;\n }\n return diameterValue;\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 = computed(() => {\n return props.theme === PRO_THEME.CIRCLE ? CIRCLE_ICONS_MAP : NORMAL_ICONS_MAP;\n });\n\n const getLabelContent = () => {\n let labelContentRender: string | VNode = `${props.percentage}%`;\n const status = props.status || '';\n if (STATUS_ICON.includes(status) && props.theme !== PRO_THEME.PLUMP) {\n const component = getIconMap.value[status as keyof typeof CIRCLE_ICONS_MAP];\n if (component) {\n labelContentRender = ;\n }\n }\n return labelContentRender;\n };\n\n // 当文字小于进度条宽度时,文字在进度条外部,否则在内部\n const infoIsOut = ref(true);\n const infoRef = ref(null);\n\n const separateClasses = computed(() => {\n return infoIsOut.value ? `${COMPONENT_NAME.value}--over-ten` : `${COMPONENT_NAME.value}--under-ten`;\n });\n\n async function updateInfoIsOut() {\n if (props.theme === PRO_THEME.PLUMP) {\n if (!infoRef.value || props.label === false) return;\n await nextTick();\n const infoEl =\n infoRef.value.querySelector(`.${COMPONENT_NAME.value}__info`) || infoRef.value.nextElementSibling;\n infoIsOut.value = infoRef.value.clientWidth > infoEl?.clientWidth + 10;\n }\n }\n\n useResizeObserver(infoRef, updateInfoIsOut);\n\n return () => {\n const labelContent = (\n
    {renderTNodeJSX('label', getLabelContent())}
    \n );\n\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 {infoIsOut.value && labelContent}\n
    \n {!infoIsOut.value && 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 '@tdesign/shared-utils';\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 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 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 default: 'text' as TdSkeletonProps['theme'],\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 { isArray, isNumber, isFunction } from 'lodash-es';\n\nimport props from './props';\nimport { SkeletonRowCol, SkeletonRowColObj, TdSkeletonProps } from './type';\nimport { useContent, usePrefixClass } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 颜色风格:黑色(black)、蓝色(blue)、红色(red)、橙色(orange)、绿色(green)支持深浅色模式切换。也可以自定义任何 [CSS color](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value) 支持颜色值,深浅色模式切换需自行适配 */\n color: {\n type: String,\n default: '',\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, isFunction } from 'lodash-es';\n\nimport props from './props';\nimport { useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\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 return {\n color: COLOR_MAP[props.color as keyof typeof COLOR_MAP] || props.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, contentStyle });\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 '@tdesign/shared-utils';\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 '@tdesign/shared-hooks';\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 { useTNodeJSX, useGlobalIcon, usePrefixClass, useChildComponentSlots } from '@tdesign/shared-hooks';\n\nimport props from './props';\nimport { SwiperNavigation, SwiperChangeSource } from './type';\nimport TSwiperItem from './swiper-item';\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 (swiperItemLength.value >= 2 && index === swiperItemLength.value - 1) {\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 '@tdesign/shared-utils';\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 '../types';\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 '@tdesign/shared-hooks';\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 type { AttachNode, TNode } from '../../common';\nimport { useContent } from '@tdesign/shared-hooks';\nimport { isTextEllipsis } from '@tdesign/shared-utils';\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 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 const renderContent = useContent();\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 const cellNode = renderContent('default', 'content');\n\n const ellipsisContent = (\n \n {cellNode}\n \n );\n let content = null;\n const tooltipProps = props.tooltipProps as EllipsisProps['tooltipProps'];\n if (isOverflow.value && flag.value) {\n const rProps = {\n content: (props.tooltipContent as string) || (() => cellNode),\n destroyOnClose: true,\n zIndex: props.zIndex,\n attach: props.attach,\n placement: props.placement,\n overlayClassName: tooltipProps?.overlayClassName\n ? innerEllipsisClassName.value.concat(tooltipProps.overlayClassName)\n : innerEllipsisClassName.value,\n onVisibleChange: handleVisibleChange,\n ...tooltipProps,\n };\n content = {ellipsisContent};\n } else {\n content = ellipsisContent;\n }\n return content;\n };\n },\n});\n","import { SetupContext, computed, h } from 'vue';\nimport { isString, isFunction } from 'lodash-es';\n\nimport { BaseTableCol, PrimaryTableCol, TableRowData, TdBaseTableProps } from '../type';\nimport { getThRowspanAndColspan, getThList } from './useMultiHeader';\nimport useClassName from './useClassName';\nimport { TNodeReturnValue } from '../../common';\nimport { BaseTableColumns } from '../types';\nimport TEllipsis from '../components/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 '@tdesign/shared-utils';\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, pick, xorWith, debounce } from 'lodash-es';\n\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 '@tdesign/shared-utils';\nimport { FixedColumnInfo, TableRowFixedClasses, RowAndColFixedPosition, TableColFixedClasses } from '../types';\nimport { getIEVersion } from '@tdesign/common-js/utils/helper';\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, 0);\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, ref, SetupContext, toRefs, watch } from 'vue';\nimport { useConfig } from '@tdesign/shared-hooks';\nimport Pagination, { PageInfo, PaginationProps } from '../../pagination';\nimport { TdBaseTableProps, TableRowData } from '../type';\n\n// 分页功能包含:远程数据排序受控、远程数据排序非受控、本地数据排序受控、本地数据排序非受控 等 4 类功能\nexport default function usePagination(\n props: TdBaseTableProps,\n context: SetupContext,\n tableContentRef: Ref,\n) {\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 // 当切换分页时,内容区域滚动到顶部\n const ref = tableContentRef.value;\n if (ref.scrollTo) {\n ref.scrollTo({ top: 0, left: 0 });\n } else {\n // 兼容测试环境或旧浏览器\n ref.scrollTop = 0;\n ref.scrollLeft = 0;\n }\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 { debounce, isBoolean } from 'lodash-es';\nimport { computed, ref, watch, onBeforeUnmount } from 'vue';\nimport { TdBaseTableProps } from '../type';\nimport { on, off } from '@tdesign/shared-utils';\nimport { AffixProps } from '../../affix';\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 if (!pos) return;\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, get, 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 { get, pick, isString, isFunction, upperFirst } from 'lodash-es';\n\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 '../types';\nimport { getCellKey, SkipSpansValue } from '../hooks/useRowspanAndColspan';\nimport { TooltipProps } from '../../tooltip';\nimport { PaginationProps } from '../../pagination';\nimport type { VirtualScrollConfig } from '@tdesign/shared-hooks';\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 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 emits: ['row-mounted'],\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 columnVNodeList = 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 '@tdesign/shared-utils';\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, get, pick } from 'lodash-es';\nimport TrElement, { ROW_LISTENERS, TABLE_PROPS } from './tr';\n\nimport { useConfig, useTNodeJSX } from '@tdesign/shared-hooks';\n\nimport useClassName from '../hooks/useClassName';\nimport baseTableProps from '../base-table-props';\nimport { TNodeReturnValue } from '../../common';\nimport useRowspanAndColspan from '../hooks/useRowspanAndColspan';\nimport { BaseTableProps, RowAndColFixedPosition } from '../types';\nimport { TdBaseTableProps } from '../type';\nimport type { VirtualScrollConfig } from '@tdesign/shared-hooks';\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 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 setup(props, { slots }) {\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 const renderEmpty = (columns: TableBodyProps['columns']) => {\n const tableWidth = props.bordered ? props.tableWidth - 2 : props.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 = renderTNode(tType);\n if (['', null, undefined, false].includes(fullRowNode)) return null;\n const isFixedToLeft = props.isWidthOverflow && columns.value.find((col) => col.fixed === 'left');\n const classes = [tableFullRowClasses.base, tableFullRowClasses[tType]];\n const tableWidth = props.bordered ? props.tableWidth - 2 : props.tableWidth;\n /** innerFullRow 和 innerFullElement 同时存在,是为了保证 固定列时,当前行不随内容进行横向滚动 */\n return (\n \n \n \n );\n };\n\n const columnLength = columns.value.length;\n const dataLength = data.value?.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 = props.virtualConfig.isVirtualScroll.value ? props.virtualConfig.visibleData.value : data.value;\n\n renderData?.forEach((row, rowIndex) => {\n const rowKey = props.rowKey || 'id';\n const rowValue = get(row, rowKey);\n const trProps = {\n ...pick(props, TABLE_PROPS),\n rowKey,\n row,\n columns: columns.value,\n rowIndex: row.VIRTUAL_SCROLL_INDEX || rowIndex,\n dataLength,\n skipSpansMap: skipSpansMap.value,\n virtualConfig: props.virtualConfig,\n active: props.activeRow?.includes(rowValue),\n isHover: props.hoverRow === rowValue,\n ...pick(props, properties),\n // 遍历的同时,计算后面的节点,是否会因为合并单元格跳过渲染\n };\n if (props.onCellClick) {\n trProps.onCellClick = props.onCellClick;\n }\n\n const trNode = (\n \n );\n trNodeList.push(trNode);\n\n // 执行展开行渲染\n if (props.renderExpandedRow) {\n const p = {\n row,\n index: rowIndex,\n columns: columns.value,\n tableWidth: props.tableWidth,\n isWidthOverflow: props.isWidthOverflow,\n };\n const expandedContent = props.renderExpandedRow(p);\n expandedContent && trNodeList.push(expandedContent);\n }\n });\n\n const list = [\n getFullRow(columnLength, 'first-full-row'),\n ...trNodeList,\n getFullRow(columnLength, 'last-full-row'),\n ];\n\n const isEmpty = !data.value?.length && !props.loading && !props.firstFullRow && !props.lastFullRow;\n\n // 垫上隐藏的 tr 元素高度\n const translate = `translateY(${props.virtualConfig?.translateY.value}px)`;\n const posStyle = props.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(columns.value) : list}\n \n );\n };\n },\n});\n","import { computed, toRefs } from 'vue';\nimport { TdBaseTableProps } from '../type';\nimport useClassName from './useClassName';\nimport { useConfig, useCommonClassName } from '@tdesign/shared-hooks';\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 { SIZE } = 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 [SIZE.value[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: SIZE.value,\n tableElementStyles,\n tableContentStyles,\n };\n}\n","import { defineComponent, computed, 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 '../types';\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 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 setup(props, { slots }) {\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 const renderThNodeList = (\n rowAndColFixedPosition: RowAndColFixedPosition,\n thWidthList: TheadProps['thWidthList'],\n ) => {\n // thBorderMap: rowspan 会影响 tr > th 是否为第一列表头,从而影响边框\n const thBorderMap = new Map();\n const thRowspanAndColspan = props.spansAndLeafNodes.rowspanAndColspanMap;\n return props.thList.map((row, rowIndex) => {\n const thRow = row.map((col: BaseTableColumns[0], index: number) => {\n // 因合并单行表头,跳过\n if (colspanSkipMap.value[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(props.thList[j][0], true);\n }\n }\n const thStyles = getColumnFixedStyles(\n col,\n index,\n props.rowAndColFixedPosition,\n classnames.tableColFixedClasses,\n );\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 = props.showColumnShadow.left && col.fixed === 'left';\n const isRightFixedActive = props.showColumnShadow.right && col.fixed === 'right';\n const canDragSort = props.thDraggable && !(isLeftFixedActive || isRightFixedActive);\n const thClasses = [\n thStyles.classes,\n customClasses,\n thCustomClasses,\n {\n // 受 rowspan 影响,部分 tr > th:first-child 需要补足左边框\n [tableHeaderClasses.thBordered]: thBorderMap.get(col),\n [`${props.classPrefix}-table__th-${col.colKey}`]: col.colKey,\n [classnames.tdAlignClasses[col.align]]: col.align && col.align !== 'left',\n // 允许拖拽的列类名\n [classnames.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(slots, col, index);\n const resizeColumnListener =\n props.resizable || !canDragSort\n ? {\n onMousedown: (e: MouseEvent) => {\n if (props.resizable) {\n props.columnResizeParams?.onColumnMousedown?.(e, col, index);\n }\n if (!canDragSort) {\n const timer = setTimeout(() => {\n const thList = theadRef.value.querySelectorAll('th');\n thList[index]?.removeAttribute('draggable');\n clearTimeout(timer);\n }, 10);\n }\n },\n onMousemove: (e: MouseEvent) => {\n props.resizable && props.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 getTableNode(theadRef.value) : undefined)}\n tooltipContent={content && (() => content)}\n tooltipProps={typeof col.ellipsisTitle === 'object' ? col.ellipsisTitle : undefined}\n overlayClassName={props.ellipsisOverlayClassName}\n classPrefix={props.classPrefix}\n >\n {innerTh}\n \n ) : (\n innerTh\n )}\n
    \n \n );\n });\n return
    {thRow};\n });\n };\n\n return (\n \n {renderThNodeList(props.rowAndColFixedPosition, props.thWidthList)}\n \n );\n };\n },\n});\n","import { SetupContext, h, defineComponent, PropType, toRefs } from 'vue';\nimport { get, isString, isFunction } from 'lodash-es';\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\n\nimport { BaseTableCellParams, RowspanColspan, TableRowData, TdBaseTableProps } from '../type';\nimport { formatRowAttributes, formatRowClassNames } from '../utils';\nimport { getColumnFixedStyles } from '../hooks/useFixed';\nimport useRowspanAndColspan, { getCellKey } from '../hooks/useRowspanAndColspan';\nimport { RowAndColFixedPosition } from '../types';\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 if (!columns.value) return null;\n // 虚拟滚动情况下,不使用 sticky 定位,外部通过 affix 实现 footer\n const theadClasses = [\n classnames.tableFooterClasses.footer,\n { [classnames.tableFooterClasses.fixed]: props.isFixedHeader },\n ];\n const footerDomList = props.footData?.map((row, rowIndex) => {\n const trAttributes = formatRowAttributes(props.rowAttributes, { row, rowIndex, type: 'foot' });\n // 自定义行类名\n const customClasses = formatRowClassNames(\n props.rowClassName,\n { row, rowIndex, type: 'foot' },\n rowKey.value || 'id',\n );\n return (\n \n {columns.value.map((col, colIndex) => {\n // 合并单元格过滤\n const cellSpans: RowspanColspan = {};\n let spanState = null;\n if (skipSpansMap.value.size) {\n const cellKey = getCellKey(row, rowKey.value, col.colKey, colIndex);\n spanState = skipSpansMap.value.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 props.rowAndColFixedPosition,\n classnames.tableColFixedClasses,\n );\n const style: Styles = { ...tdStyles.style };\n if (props.thWidthList?.[col.colKey]) {\n style.width = `${props.thWidthList[col.colKey]}px`;\n }\n return (\n \n );\n })}\n \n );\n });\n const footerSummary = renderTNode('footerSummary');\n // 都不存在,则不需要渲染 footer\n if (!footerSummary && (!props.footData || !props.footData.length)) return null;\n return (\n // 虚拟滚动下,不显示 footer,但预留元素,用于高度计算\n \n {footerSummary && (\n \n \n \n )}\n {footerDomList}\n \n );\n };\n },\n});\n","import { ref, Ref, toRefs } from 'vue';\nimport { get } from 'lodash-es';\nimport { useDefaultValue } from '@tdesign/shared-hooks';\nimport { BaseTableProps } from '../types';\nimport { RowEventContext, TableRowData } from '../type';\nimport { on, off } from '@tdesign/shared-utils';\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 if (activeRowType.value === 'multiple') {\n setAllActive();\n }\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, get, isFunction, throttle } 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 { useConfig, useTNodeJSX, useVirtualScrollNew, useElementLazyRender } from '@tdesign/shared-hooks';\nimport useAffix from './hooks/useAffix';\nimport Loading from '../loading';\nimport TBody, { extendTableProps } from './components/tbody';\nimport { BaseTableProps } from './types';\n\nimport useStyle, { formatCSSUnit } from './hooks/useStyle';\nimport useClassName from './hooks/useClassName';\n\nimport { Affix } from '../affix';\nimport { ROW_LISTENERS } from './components/tr';\nimport THead from './components/thead';\nimport TFoot from './components/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';\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 props: {\n ...props,\n /**\n * 渲染展开行,非公开属性,请勿在业务中使用\n */\n renderExpandedRow: Function as PropType,\n onLeafColumnsChange: Function as PropType,\n thDraggable: Boolean,\n },\n emits: ['show-element-change'],\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 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(\n props,\n context,\n tableContentRef,\n );\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 if (tableContentRef.value.scrollTo) {\n tableContentRef.value.scrollTo({ left: distance, behavior: 'smooth' });\n } else {\n tableContentRef.value.scrollLeft = distance;\n }\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 context.expose({\n refreshTable,\n scrollColumnIntoView,\n scrollToElement,\n });\n\n return () => {\n if (!showElement.value) {\n return
    ;\n }\n\n const data = isPaginateData.value ? dataSource.value : props.data;\n const columns = spansAndLeafNodes?.value.leafColumns || props.columns;\n\n const columnResizable = props.allowResizeColumnWidth ?? props.resizable;\n if (columnResizable && props.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 = props.tableLayout === 'fixed' && isWidthOverflow.value ? '100px' : undefined;\n\n const renderColGroup = (isAffixHeader = true) => (\n
    \n {columns.map((col) => {\n const style: Styles = {\n width:\n formatCSSUnit(\n (isAffixHeader || columnResizable ? thWidthList.value[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 && props.tableLayout === 'fixed') {\n style.minWidth = '80px';\n }\n return ;\n })}\n \n );\n\n const renderAffixedHeader = () => {\n if (props.showHeader === false) return null;\n return (\n !!(virtualConfig.isVirtualScroll.value || props.headerAffixedTop) &&\n (props.headerAffixedTop ? (\n \n {affixHeaderWithWrap}\n \n ) : (\n isFixedHeader.value && affixHeaderWithWrap\n ))\n );\n };\n\n const renderAffixedHorizontalScrollbar = () => (\n \n \n
    \n \n \n );\n\n const headProps = {\n isFixedHeader: isFixedHeader.value,\n rowAndColFixedPosition: rowAndColFixedPosition.value,\n isMultipleHeader: isMultipleHeader.value,\n bordered: props.bordered,\n maxHeight: props.maxHeight,\n height: props.height,\n spansAndLeafNodes: spansAndLeafNodes.value,\n thList: thList.value,\n thWidthList: thWidthList.value,\n resizable: props.resizable,\n columnResizeParams,\n classPrefix: classPrefix,\n ellipsisOverlayClassName: tableSize.value !== 'medium' ? sizeClassNames[tableSize.value] : '',\n attach: props.attach,\n showColumnShadow: showColumnShadow,\n thDraggable: props.thDraggable,\n };\n\n /**\n * Affixed Header\n */\n // IE 浏览器需要遮挡 header 吸顶滚动条,要减去 getBoundingClientRect.height 的滚动条高度 4 像素\n const IEHeaderWrap = getIEVersion() <= 11 ? 4 : 0;\n const barWidth = isWidthOverflow.value ? scrollbarWidth.value : 0;\n const affixHeaderHeight = ref((affixHeaderRef.value?.getBoundingClientRect().height || 0) - IEHeaderWrap);\n // 等待表头渲染完成后再更新高度,有可能列变动带来多级表头的高度变化,错误高度会导致滚动条显示\n const timer = setTimeout(() => {\n affixHeaderHeight.value = (affixHeaderRef.value?.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(showAffixHeader.value) : 1;\n const affixHeaderWrapHeightStyle = computed(() => {\n return {\n width: `${tableWidth.value}px`,\n height: `${affixHeaderWrapHeight.value}px`,\n opacity: headerOpacity,\n };\n });\n // 多级表头左边线缺失\n const affixedLeftBorder = props.bordered ? 1 : 0;\n const affixedHeader = Boolean(\n (props.headerAffixedTop || virtualConfig.isVirtualScroll.value) && tableWidth.value,\n ) && (\n \n \n {renderColGroup(true)}\n
    \n
    \n {col.ellipsis ? renderEllipsisCell(params, { cellNode }) : cellNode}\n ]\n : columnVNodeList}\n
    \n \n {renderTNode('empty') || t(globalConfig.value.empty)}\n \n
    \n \n
    {fullRowNode}
    \n \n
    \n {renderTFootCell({\n row,\n rowIndex,\n col,\n colIndex,\n })}\n
    \n
    {footerSummary}
    \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 = isWidthOverflow.value ? scrollbarWidth.value : 0;\n if (props.bordered) {\n marginScrollbarWidth += 1;\n }\n // Hack: Affix 组件,marginTop 临时使用 负 margin 定位位置\n const showFooter = Boolean(virtualConfig.isVirtualScroll.value || props.footerAffixedBottom);\n const hasFooter = props.footData?.length || props.footerSummary || context.slots['footerSummary'];\n const affixedFooter = Boolean(showFooter && hasFooter && tableWidth.value) && (\n \n \n \n {/* 此处和 Vue2 不同,Vue3 里面必须每一处单独写 */}\n {renderColGroup(true)}\n \n \n \n \n );\n\n // 通过 translate 撑开虚拟滚动的高度,应该是内容高度加上表头和表尾的高度\n const translate = `translate(0, ${\n virtualConfig.scrollHeight.value + (tableFootHeight.value ?? 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,\n ellipsisOverlayClassName: tableSize.value !== 'medium' ? sizeClassNames[tableSize.value] : '',\n rowAndColFixedPosition: rowAndColFixedPosition.value,\n showColumnShadow,\n data: data,\n virtualConfig,\n columns: spansAndLeafNodes.value.leafColumns,\n tableElm: tableRef.value,\n tableWidth: tableWidth.value,\n isWidthOverflow: isWidthOverflow.value,\n scroll: props.scroll,\n cellEmptyContent: props.cellEmptyContent,\n tableContentElm: tableContentRef.value,\n handleRowMounted: virtualConfig.handleRowMounted,\n renderExpandedRow: props.renderExpandedRow,\n ...pick(props, extendTableProps),\n // 内部使用分页信息必须取 innerPagination\n pagination: innerPagination.value,\n attach: props.attach,\n hoverRow: hoverRow.value,\n activeRow: tActiveRow.value,\n onRowClick: onInnerRowClick,\n };\n const tableContent = (\n \n {virtualConfig.isVirtualScroll.value &&
    }\n\n \n {renderColGroup(false)}\n {props.showHeader && (\n \n )}\n \n \n \n
    \n );\n\n const getCustomLoadingText = isFunction(props.loading) ? props.loading : context.slots.loading;\n const loadingContent = props.loading !== undefined && (\n tableRef.value : undefined}\n showOverlay\n size=\"small\"\n {...props.loadingProps}\n >\n );\n\n const topContent = renderTNode('topContent');\n const bottomContent = renderTNode('bottomContent');\n const pagination = (\n \n {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 {showRightDivider.value && (\n \n )}\n\n {/* 吸底的滚动条 */}\n {props.horizontalScrollAffixedBottom && renderAffixedHorizontalScrollbar()}\n\n {/* 吸底的分页器 */}\n {props.paginationAffixedBottom ? (\n \n {pagination}\n \n ) : (\n pagination\n )}\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 '../types';\nimport { on, off } from '@tdesign/shared-utils';\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 '@tdesign/shared-hooks';\n\nexport type ColumnCheckboxGroupProps = Pick & {\n checkboxProps: CheckboxGroupProps;\n label?: string;\n uniqueKey?: string;\n};\n\nexport default defineComponent({\n name: 'ColumnCheckboxGroup',\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';\nimport { isFunction } 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, useTNodeJSX, useGlobalIcon, useDefaultValue } from '@tdesign/shared-hooks';\n\nimport { getCurrentRowByKey } from '../utils';\nimport { DialogInstance } from '../../dialog';\nimport TButton from '../../button';\nimport ColumnCheckboxGroup from '../components/column-checkbox-group';\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 columnCheckboxKeys.value = tDisplayColumns.value;\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 { get, isFunction, intersection } from 'lodash-es';\n\nimport { useDefaultValue } from '@tdesign/shared-hooks';\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, useGlobalIcon, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport type { TNode } from '../../common';\nimport type { TableConfig } from '../../config-provider';\n\ntype SortTypeEnum = 'desc' | 'asc';\ntype SortTypeEnums = Array;\n\nexport default defineComponent({\n name: 'TSorterButton',\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 emits: ['sort-icon-click'],\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 const classes = [tableSortClasses.trigger, { [tableSortClasses.doubleIcon]: allowSortTypes.value.length > 1 }];\n const tooltips = {\n asc: globalConfig.value.sortAscendingOperationText,\n desc: globalConfig.value.sortDescendingOperationText,\n };\n const sortButton = allowSortTypes.value.map((direction: SortTypeEnum) => {\n const activeClass = direction === props.sortOrder ? tableSortClasses.iconActive : tableSortClasses.iconDefault;\n const cancelTips = globalConfig.value.sortCancelOperationText;\n const tips = direction === props.sortOrder ? cancelTips : tooltips[direction];\n if (props.hideSortTips ?? globalConfig.value.hideSortTips) return getSortIcon(direction, activeClass);\n return (\n \n {getSortIcon(direction, activeClass)}\n \n );\n });\n return
    {sortButton}
    ;\n };\n },\n});\n","import { SetupContext, computed, toRefs, ref, watch } from 'vue';\nimport { isArray, isFunction } from 'lodash-es';\nimport { SortInfo, TdPrimaryTableProps, PrimaryTableCol, TableRowData } from '../type';\nimport SorterButton from '../components/sorter-button';\nimport { useDefaultValue } from '@tdesign/shared-hooks';\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, isFunction } 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 { useConfig, useGlobalIcon, useTNodeDefault } from '@tdesign/shared-hooks';\nimport { PrimaryTableCol, FilterValue, TdPrimaryTableProps } from '../type';\n\nimport type { AttachNode } from '../../common';\n\nimport type { 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 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 emits: ['inner-filter-change', 'reset', 'confirm'],\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 if (!props.column.filter || (props.column.filter && !Object.keys(props.column.filter).length)) return null;\n const defaultFilterIcon = t(globalConfig.value.filterIcon) || ;\n const filterValue = (props.tFilterValue as TableFilterControllerProps['tFilterValue'])?.[props.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 props.primaryTableElement as HTMLElement : undefined)\n }\n visible={filterPopupVisible.value}\n destroyOnClose\n trigger=\"click\"\n placement=\"bottom-right\"\n showArrow\n overlayClassName={props.tableFilterClasses.popup}\n onVisibleChange={(val: boolean) => onFilterPopupVisibleChange(val)}\n class={[\n props.tableFilterClasses.icon,\n {\n [props.isFocusClass]: isObjectTrue || isValueExist,\n },\n ]}\n content={getContent}\n {...props.popupProps}\n >\n
    \n {renderTNode('filterIcon', {\n defaultNode: defaultFilterIcon,\n params: { col: props.column, colIndex: props.colIndex },\n })}\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 { useConfig, useDefaultValue, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport TableFilterController from '../components/filter-controller';\n\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 '@tdesign/shared-utils';\nimport swapDragArrayElement from '@tdesign/common-js/utils/swapDragArrayElement';\nimport { BaseTableColumns, SimplePageInfo } from '../types';\nimport { getColumnDataByKey, getColumnIndexByKey } from '@tdesign/common-js/table/utils';\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, set, isFunction, cloneDeep, isObject } 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, usePrefixClass } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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, set, cloneDeep, isFunction } from 'lodash-es';\n\nimport { PrimaryTableProps } from '../types';\nimport { getEditableKeysMap } from '@tdesign/common-js/table/utils';\nimport { validate } from '../../form/utils/form-model';\n\nimport {\n PrimaryTableRowEditContext,\n TableRowData,\n TableErrorListMap,\n PrimaryTableInstanceFunctions,\n ErrorListObjectType,\n PrimaryTableCellParams,\n} from '../type';\nimport { getCellKey, getRowKeyFromCell } from './useRowspanAndColspan';\nimport { OnEditableChangeContext } from '../components/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, omit } from 'lodash-es';\nimport baseTableProps from './base-table-props';\nimport primaryTableProps from './primary-table-props';\nimport BaseTable from './base-table';\nimport { useConfig, useTNodeJSX, ScrollToElementParams } from '@tdesign/shared-hooks';\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 './components/editable-cell';\nimport { PageInfo } from '../pagination';\nimport useClassName from './hooks/useClassName';\n\nimport useEditableRow from './hooks/useEditableRow';\nimport useStyle from './hooks/useStyle';\n\nimport type { BaseTableProps } from './types';\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 props: {\n ...baseTableProps,\n ...primaryTableProps,\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 { useConfig, useTNodeJSX, useGlobalIcon, useDefaultValue } from '@tdesign/shared-hooks';\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 { useConfig, useTNodeJSX } from '@tdesign/shared-hooks';\nimport { TdPrimaryTableProps } from '../type';\nimport Loading from '../../loading';\nimport useClassName from './useClassName';\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 '@tdesign/shared-hooks';\nimport TableTreeStore, { diffExpandedTreeNode, getUniqueRowValue } from '@tdesign/common-js/table/tree-store';\nimport { TableTreeExpandType } from '../types';\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 '../components/tr';\nimport { useConfig, useGlobalIcon, useTNodeDefault } from '@tdesign/shared-hooks';\n\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, intersection } from 'lodash-es';\n\nimport { TdEnhancedTableProps, TdPrimaryTableProps, TableRowData, PrimaryTableCol } from '../type';\nimport { KeysType, TableTreeDataMap, TreeDataMapType } from '@tdesign/common-js/table/tree-store';\nimport { useDefaultValue } from '@tdesign/shared-hooks';\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 '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'TEnhancedTable',\n props: {\n ...baseTableProps,\n ...primaryTableProps,\n ...enhancedTableProps,\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 '@tdesign/shared-utils';\nimport { InfinityScroll } from '../common';\nimport { BaseTableInstanceFunctions, EnhancedTableInstanceFunctions, PrimaryTableInstanceFunctions } from './type';\n\nimport './style';\n\nexport * from './type';\nexport * from './types';\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 { useContent, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\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, useChildComponentSlots } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\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 { useContent, useTNodeJSX, usePrefixClass, useCollapseAnimation } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\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 { useContent, usePrefixClass, useVariables } from '@tdesign/shared-hooks';\nimport { useMutationObserver } from './hooks';\n\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 const { fontColor } = useVariables({\n fontColor: '--td-text-color-watermark',\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 fontColor: fontColor.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, fontColor.value], 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 fontColor = 'rgba(0,0,0,0.1)'\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 fontColor?:string\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 fontSize = 16,\n fontFamily = undefined,\n fontWeight = 'normal',\n } = item;\n const fillStyle = item?.fontColor || fontColor;\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 = fillStyle;\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 '@tdesign/shared-utils';\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, useConfig, useTNodeJSX } from '@tdesign/shared-hooks';\nimport props from './props';\n\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 '@tdesign/shared-utils';\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, useConfig } from '@tdesign/shared-hooks';\nimport props from '../paragraph-props';\nimport TTooltip from '../../tooltip/index';\n\nimport type { TypographyEllipsis } from '../type';\n\nexport default defineComponent({\n name: 'TEllipsis',\n components: { TTooltip },\n props,\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 { useContent, usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './text-props';\nimport copy from './utils/copy-to-clipboard';\nimport { CopyIcon, CheckIcon } from 'tdesign-icons-vue-next';\nimport Ellipsis from './components/ellipsis';\nimport TTooltip from '../tooltip';\nimport TButton from '../button';\nimport { useConfig } from '../config-provider/hooks/useConfig';\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 '@tdesign/shared-hooks';\n\nimport Text from './text';\n\nexport default defineComponent({\n name: 'TTypography',\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 { useContent, usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './title-props';\nimport Ellipsis from './components/ellipsis';\n\nexport default defineComponent({\n name: 'TTypographyTitle',\n props,\n setup(props, { attrs }) {\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, { ...attrs, class: [COMPONENT_NAME.value, attrs.class] }, ...content)}\n );\n };\n },\n});\n","import { defineComponent, computed, PropType } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './paragraph-props';\nimport Ellipsis from './components/ellipsis';\n\nexport default defineComponent({\n name: 'TTypographyParagraph',\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 '@tdesign/shared-utils';\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 * */\n\nimport { TdQRCodeProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 二维码背景颜色 */\n bgColor: {\n type: String,\n default: '',\n },\n /** 是否有边框 */\n borderless: Boolean,\n /** 二维码颜色 */\n color: {\n type: String,\n default: '',\n },\n /** 二维码中图片的地址 */\n icon: {\n type: String,\n default: '',\n },\n /** 二维码中图片的大小 */\n iconSize: {\n type: [Number, Object] as PropType,\n default: 40 as TdQRCodeProps['iconSize'],\n },\n /** 二维码纠错等级 */\n level: {\n type: String as PropType,\n default: 'M' as TdQRCodeProps['level'],\n validator(val: TdQRCodeProps['level']): boolean {\n if (!val) return true;\n return ['L', 'M', 'Q', 'H'].includes(val);\n },\n },\n /** 二维码大小 */\n size: {\n type: Number,\n default: 160,\n },\n /** 二维码状态 */\n status: {\n type: String as PropType,\n default: 'active' as TdQRCodeProps['status'],\n validator(val: TdQRCodeProps['status']): boolean {\n if (!val) return true;\n return ['active', 'expired', 'loading', 'scanned'].includes(val);\n },\n },\n /** 自定义状态渲染器 */\n statusRender: {\n type: Function as PropType,\n },\n /** 渲染类型 */\n type: {\n type: String as PropType,\n default: 'canvas' as TdQRCodeProps['type'],\n validator(val: TdQRCodeProps['type']): boolean {\n if (!val) return true;\n return ['canvas', 'svg'].includes(val);\n },\n },\n /** 扫描后的文本 */\n value: {\n type: String,\n default: '',\n },\n /** 点击\"点击刷新\"的回调 */\n onRefresh: Function as PropType,\n};\n","/* eslint-disable */\n// Copyright (c) Project Nayuki. (MIT License)\n// https://www.nayuki.io/page/qr-code-generator-library\n\n// Modification with code reorder and prettier\n\n// --------------------------------------------\n\n// Appends the given number of low-order bits of the given value\n// to the given buffer. Requires 0 <= len <= 31 and 0 <= val < 2^len.\nfunction appendBits(val: number, len: number, bb: number[]): void {\n if (len < 0 || len > 31 || val >>> len !== 0) {\n throw new RangeError(\"Value out of range\");\n }\n for (\n let i = len - 1;\n i >= 0;\n i-- // Append bit by bit\n ) {\n bb.push((val >>> i) & 1);\n }\n}\n\n// Returns true iff the i'th bit of x is set to 1.\nfunction getBit(x: number, i: number): boolean {\n return ((x >>> i) & 1) !== 0;\n}\n\n// Throws an exception if the given condition is false.\nfunction assert(cond: boolean): void {\n if (!cond) {\n throw new Error(\"Assertion error\");\n }\n}\n\n/* ---- Public helper enumeration ----*/\n/*\n * Describes how a segment's data bits are numbererpreted. Immutable.\n */\nexport class Mode {\n /* -- Constants --*/\n\n public static readonly NUMERIC = new Mode(0x1, [10, 12, 14]);\n\n public static readonly ALPHANUMERIC = new Mode(0x2, [9, 11, 13]);\n\n public static readonly BYTE = new Mode(0x4, [8, 16, 16]);\n\n public static readonly KANJI = new Mode(0x8, [8, 10, 12]);\n\n public static readonly ECI = new Mode(0x7, [0, 0, 0]);\n\n /* -- Constructor and fields --*/\n\n // The mode indicator bits, which is a unumber4 value (range 0 to 15).\n public modeBits: number;\n\n // Number of character count bits for three different version ranges.\n private numBitsCharCount: [number, number, number];\n\n private constructor(\n modeBits: number,\n numBitsCharCount: [number, number, number]\n ) {\n this.modeBits = modeBits;\n this.numBitsCharCount = numBitsCharCount;\n }\n\n /* -- Method --*/\n\n // (Package-private) Returns the bit width of the character count field for a segment in\n // this mode in a QR Code at the given version number. The result is in the range [0, 16].\n public numCharCountBits(ver: number): number {\n return this.numBitsCharCount[Math.floor((ver + 7) / 17)];\n }\n}\n\n/* ---- Public helper enumeration ----*/\n\n/*\n * The error correction level in a QR Code symbol. Immutable.\n */\nexport class Ecc {\n /* -- Constants --*/\n\n public static readonly LOW = new Ecc(0, 1); // The QR Code can tolerate about 7% erroneous codewords\n\n public static readonly MEDIUM = new Ecc(1, 0); // The QR Code can tolerate about 15% erroneous codewords\n\n public static readonly QUARTILE = new Ecc(2, 3); // The QR Code can tolerate about 25% erroneous codewords\n\n public static readonly HIGH = new Ecc(3, 2); // The QR Code can tolerate about 30% erroneous codewords\n\n /* -- Constructor and fields --*/\n // In the range 0 to 3 (unsigned 2-bit numbereger).\n public ordinal: number;\n\n // (Package-private) In the range 0 to 3 (unsigned 2-bit numbereger).\n public formatBits: number;\n\n private constructor(ordinal: number, formatBits: number) {\n this.ordinal = ordinal;\n this.formatBits = formatBits;\n }\n}\n\n/*\n * A segment of character/binary/control data in a QR Code symbol.\n * Instances of this class are immutable.\n * The mid-level way to create a segment is to take the payload data\n * and call a static factory function such as QrSegment.makeNumeric().\n * The low-level way to create a segment is to custom-make the bit buffer\n * and call the QrSegment() constructor with appropriate values.\n * This segment class imposes no length restrictions, but QR Codes have restrictions.\n * Even in the most favorable conditions, a QR Code can only hold 7089 characters of data.\n * Any segment longer than this is meaningless for the purpose of generating QR Codes.\n */\nexport class QrSegment {\n /* -- Static factory functions (mid level) --*/\n\n // Returns a segment representing the given binary data encoded in\n // byte mode. All input byte arrays are acceptable. Any text string\n // can be converted to UTF-8 bytes and encoded as a byte mode segment.\n public static makeBytes(data: Readonly): QrSegment {\n const bb: number[] = [];\n for (const b of data) {\n appendBits(b, 8, bb);\n }\n return new QrSegment(Mode.BYTE, data.length, bb);\n }\n\n // Returns a segment representing the given string of decimal digits encoded in numeric mode.\n public static makeNumeric(digits: string): QrSegment {\n if (!QrSegment.isNumeric(digits)) {\n throw new RangeError(\"String contains non-numeric characters\");\n }\n const bb: number[] = [];\n for (let i = 0; i < digits.length; ) {\n // Consume up to 3 digits per iteration\n const n: number = Math.min(digits.length - i, 3);\n appendBits(parseInt(digits.substring(i, i + n), 10), n * 3 + 1, bb);\n i += n;\n }\n return new QrSegment(Mode.NUMERIC, digits.length, bb);\n }\n\n // Returns a segment representing the given text string encoded in alphanumeric mode.\n // The characters allowed are: 0 to 9, A to Z (uppercase only), space,\n // dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n public static makeAlphanumeric(text: string): QrSegment {\n if (!QrSegment.isAlphanumeric(text)) {\n throw new RangeError(\n \"String contains unencodable characters in alphanumeric mode\"\n );\n }\n const bb: number[] = [];\n let i: number;\n for (i = 0; i + 2 <= text.length; i += 2) {\n // Process groups of 2\n let temp: number =\n QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45;\n temp += QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1));\n appendBits(temp, 11, bb);\n }\n if (i < text.length) {\n // 1 character remaining\n appendBits(QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)), 6, bb);\n }\n return new QrSegment(Mode.ALPHANUMERIC, text.length, bb);\n }\n\n // Returns a new mutable list of zero or more segments to represent the given Unicode text string.\n // The result may use various segment modes and switch modes to optimize the length of the bit stream.\n public static makeSegments(text: string): QrSegment[] {\n // Select the most efficient segment encoding automatically\n if (text === \"\") {\n return [];\n }\n if (QrSegment.isNumeric(text)) {\n return [QrSegment.makeNumeric(text)];\n }\n if (QrSegment.isAlphanumeric(text)) {\n return [QrSegment.makeAlphanumeric(text)];\n }\n return [QrSegment.makeBytes(QrSegment.toUtf8ByteArray(text))];\n }\n\n // Returns a segment representing an Extended Channel Interpretation\n // (ECI) designator with the given assignment value.\n public static makeEci(assignVal: number): QrSegment {\n const bb: number[] = [];\n if (assignVal < 0) {\n throw new RangeError(\"ECI assignment value out of range\");\n } else if (assignVal < 1 << 7) {\n appendBits(assignVal, 8, bb);\n } else if (assignVal < 1 << 14) {\n appendBits(0b10, 2, bb);\n appendBits(assignVal, 14, bb);\n } else if (assignVal < 1000000) {\n appendBits(0b110, 3, bb);\n appendBits(assignVal, 21, bb);\n } else {\n throw new RangeError(\"ECI assignment value out of range\");\n }\n return new QrSegment(Mode.ECI, 0, bb);\n }\n\n // Tests whether the given string can be encoded as a segment in numeric mode.\n // A string is encodable iff each character is in the range 0 to 9.\n public static isNumeric(text: string): boolean {\n return QrSegment.NUMERIC_REGEX.test(text);\n }\n\n // Tests whether the given string can be encoded as a segment in alphanumeric mode.\n // A string is encodable iff each character is in the following set: 0 to 9, A to Z\n // (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n public static isAlphanumeric(text: string): boolean {\n return QrSegment.ALPHANUMERIC_REGEX.test(text);\n }\n\n /* -- Constructor (low level) and fields --*/\n // The mode indicator of this segment.\n public mode: Mode;\n\n // The length of this segment's unencoded data. Measured in characters for\n // numeric/alphanumeric/kanji mode, bytes for byte mode, and 0 for ECI mode.\n // Always zero or positive. Not the same as the data's bit length.\n public numChars: number;\n\n // The data bits of this segment. Accessed through getData().\n private bitData: number[];\n\n // Creates a new QR Code segment with the given attributes and data.\n // The character count (numChars) must agree with the mode and the bit buffer length,\n // but the constranumber isn't checked. The given bit buffer is cloned and stored.\n public constructor(mode: Mode, numChars: number, bitData: number[]) {\n this.mode = mode;\n this.numChars = numChars;\n this.bitData = bitData;\n if (numChars < 0) {\n throw new RangeError(\"Invalid argument\");\n }\n this.bitData = bitData.slice(); // Make defensive copy\n }\n\n /* -- Methods --*/\n\n // Returns a new copy of the data bits of this segment.\n public getData(): number[] {\n return this.bitData.slice(); // Make defensive copy\n }\n\n // (Package-private) Calculates and returns the number of bits needed to encode the given segments at\n // the given version. The result is infinity if a segment has too many characters to fit its length field.\n public static getTotalBits(\n segs: Readonly,\n version: number\n ): number {\n let result: number = 0;\n for (const seg of segs) {\n const ccbits: number = seg.mode.numCharCountBits(version);\n if (seg.numChars >= 1 << ccbits) {\n return Infinity; // The segment's length doesn't fit the field's bit width\n }\n result += 4 + ccbits + seg.bitData.length;\n }\n return result;\n }\n\n // Returns a new array of bytes representing the given string encoded in UTF-8.\n private static toUtf8ByteArray(input: string): number[] {\n const str = encodeURI(input);\n const result: number[] = [];\n for (let i = 0; i < str.length; i++) {\n if (str.charAt(i) !== \"%\") {\n result.push(str.charCodeAt(i));\n } else {\n result.push(parseInt(str.substring(i + 1, i + 3), 16));\n i += 2;\n }\n }\n return result;\n }\n\n /* -- Constants --*/\n\n // Describes precisely all strings that are encodable in numeric mode.\n private static readonly NUMERIC_REGEX: RegExp = /^[0-9]*$/;\n\n // Describes precisely all strings that are encodable in alphanumeric mode.\n private static readonly ALPHANUMERIC_REGEX: RegExp = /^[A-Z0-9 $%*+.\\/:-]*$/;\n\n // The set of all legal characters in alphanumeric mode,\n // where each character value maps to the index in the string.\n private static readonly ALPHANUMERIC_CHARSET: string =\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\";\n}\n\n/*\n * A QR Code symbol, which is a type of two-dimension barcode.\n * Invented by Denso Wave and described in the ISO/IEC 18004 standard.\n * Instances of this class represent an immutable square grid of dark and light cells.\n * The class provides static factory functions to create a QR Code from text or binary data.\n * The class covers the QR Code Model 2 specification, supporting all versions (sizes)\n * from 1 to 40, all 4 error correction levels, and 4 character encoding modes.\n *\n * Ways to create a QR Code object:\n * - High level: Take the payload data and call QrCode.encodeText() or QrCode.encodeBinary().\n * - Mid level: Custom-make the list of segments and call QrCode.encodeSegments().\n * - Low level: Custom-make the array of data codeword bytes (including\n * segment headers and final padding, excluding error correction codewords),\n * supply the appropriate version number, and call the QrCode() constructor.\n * (Note that all ways require supplying the desired error correction level.)\n */\nexport class QrCode {\n /* -- Static factory functions (high level) --*/\n\n // Returns a QR Code representing the given Unicode text string at the given error correction level.\n // As a conservative upper bound, this function is guaranteed to succeed for strings that have 738 or fewer\n // Unicode code ponumbers (not UTF-16 code units) if the low error correction level is used. The smallest possible\n // QR Code version is automatically chosen for the output. The ECC level of the result may be higher than the\n // ecl argument if it can be done without increasing the version.\n public static encodeText(text: string, ecl: Ecc): QrCode {\n const segs: QrSegment[] = QrSegment.makeSegments(text);\n return QrCode.encodeSegments(segs, ecl);\n }\n\n // Returns a QR Code representing the given binary data at the given error correction level.\n // This function always encodes using the binary segment mode, not any text mode. The maximum number of\n // bytes allowed is 2953. The smallest possible QR Code version is automatically chosen for the output.\n // The ECC level of the result may be higher than the ecl argument if it can be done without increasing the version.\n public static encodeBinary(data: Readonly, ecl: Ecc): QrCode {\n const seg = QrSegment.makeBytes(data);\n return QrCode.encodeSegments([seg], ecl);\n }\n\n /* -- Static factory functions (mid level) --*/\n\n // Returns a QR Code representing the given segments with the given encoding parameters.\n // The smallest possible QR Code version within the given range is automatically\n // chosen for the output. Iff boostEcl is true, then the ECC level of the result\n // may be higher than the ecl argument if it can be done without increasing the\n // version. The mask number is either between 0 to 7 (inclusive) to force that\n // mask, or -1 to automatically choose an appropriate mask (which may be slow).\n // This function allows the user to create a custom sequence of segments that switches\n // between modes (such as alphanumeric and byte) to encode text in less space.\n // This is a mid-level API; the high-level API is encodeText() and encodeBinary().\n public static encodeSegments(\n segs: Readonly,\n oriEcl: Ecc,\n minVersion: number = 1,\n maxVersion: number = 40,\n mask: number = -1,\n boostEcl: boolean = true\n ): QrCode {\n if (\n !(\n QrCode.MIN_VERSION <= minVersion &&\n minVersion <= maxVersion &&\n maxVersion <= QrCode.MAX_VERSION\n ) ||\n mask < -1 ||\n mask > 7\n ) {\n throw new RangeError(\"Invalid value\");\n }\n\n // Find the minimal version number to use\n let version: number;\n let dataUsedBits: number;\n for (version = minVersion; ; version++) {\n const dataCapacityBits = QrCode.getNumDataCodewords(version, oriEcl) * 8; // Number of data bits available\n const usedBits: number = QrSegment.getTotalBits(segs, version);\n if (usedBits <= dataCapacityBits) {\n dataUsedBits = usedBits;\n break; // This version number is found to be suitable\n }\n if (version >= maxVersion) {\n // All versions in the range could not fit the given data\n throw new RangeError(\"Data too long\");\n }\n }\n let ecl: Ecc = oriEcl;\n // Increase the error correction level while the data still fits in the current version number\n for (const newEcl of [Ecc.MEDIUM, Ecc.QUARTILE, Ecc.HIGH]) {\n // From low to high\n if (\n boostEcl &&\n dataUsedBits <= QrCode.getNumDataCodewords(version, newEcl) * 8\n ) {\n ecl = newEcl;\n }\n }\n\n // Concatenate all segments to create the data bit string\n const bb: number[] = [];\n for (const seg of segs) {\n appendBits(seg.mode.modeBits, 4, bb);\n appendBits(seg.numChars, seg.mode.numCharCountBits(version), bb);\n for (const b of seg.getData()) {\n bb.push(b);\n }\n }\n assert(bb.length === dataUsedBits);\n\n // Add terminator and pad up to a byte if applicable\n const dataCapacityBits = QrCode.getNumDataCodewords(version, ecl) * 8;\n assert(bb.length <= dataCapacityBits);\n appendBits(0, Math.min(4, dataCapacityBits - bb.length), bb);\n appendBits(0, (8 - (bb.length % 8)) % 8, bb);\n assert(bb.length % 8 === 0);\n\n // Pad with alternating bytes until data capacity is reached\n for (\n let padByte = 0xec;\n bb.length < dataCapacityBits;\n padByte ^= 0xec ^ 0x11\n ) {\n appendBits(padByte, 8, bb);\n }\n\n // Pack bits numbero bytes in big endian\n const dataCodewords: number[] = [];\n while (dataCodewords.length * 8 < bb.length) {\n dataCodewords.push(0);\n }\n bb.forEach((b, i) => {\n dataCodewords[i >>> 3] |= b << (7 - (i & 7));\n });\n\n // Create the QR Code object\n return new QrCode(version, ecl, dataCodewords, mask);\n }\n\n /* -- Fields --*/\n\n // The width and height of this QR Code, measured in modules, between\n // 21 and 177 (inclusive). This is equal to version * 4 + 17.\n public readonly size: number;\n\n // The index of the mask pattern used in this QR Code, which is between 0 and 7 (inclusive).\n // Even if a QR Code is created with automatic masking requested (mask = -1),\n // the resulting object still has a mask value between 0 and 7.\n public readonly mask: number;\n\n // The modules of this QR Code (false = light, true = dark).\n // Immutable after constructor finishes. Accessed through getModule().\n private readonly modules: boolean[][] = [];\n\n // Indicates function modules that are not subjected to masking. Discarded when constructor finishes.\n private readonly isFunction: boolean[][] = [];\n\n /* -- Constructor (low level) and fields --*/\n // The version number of this QR Code, which is between 1 and 40 (inclusive).\n // This determines the size of this barcode.\n public version: number;\n\n // The error correction level used in this QR Code.\n public errorCorrectionLevel: Ecc;\n\n // Creates a new QR Code with the given version number,\n // error correction level, data codeword bytes, and mask number.\n // This is a low-level API that most users should not use directly.\n // A mid-level API is the encodeSegments() function.\n public constructor(\n // The version number of this QR Code, which is between 1 and 40 (inclusive).\n // This determines the size of this barcode.\n version: number,\n\n // The error correction level used in this QR Code.\n errorCorrectionLevel: Ecc,\n\n dataCodewords: Readonly,\n\n oriMsk: number\n ) {\n let msk = oriMsk;\n this.version = version;\n this.errorCorrectionLevel = errorCorrectionLevel;\n // Check scalar arguments\n if (version < QrCode.MIN_VERSION || version > QrCode.MAX_VERSION) {\n throw new RangeError(\"Version value out of range\");\n }\n if (msk < -1 || msk > 7) {\n throw new RangeError(\"Mask value out of range\");\n }\n this.size = version * 4 + 17;\n\n // Initialize both grids to be size*size arrays of Boolean false\n const row: boolean[] = [];\n for (let i = 0; i < this.size; i++) {\n row.push(false);\n }\n for (let i = 0; i < this.size; i++) {\n this.modules.push(row.slice()); // Initially all light\n this.isFunction.push(row.slice());\n }\n\n // Compute ECC, draw modules\n this.drawFunctionPatterns();\n const allCodewords: number[] = this.addEccAndInterleave(dataCodewords);\n this.drawCodewords(allCodewords);\n\n // Do masking\n if (msk === -1) {\n // Automatically choose best mask\n let minPenalty: number = 1000000000;\n for (let i = 0; i < 8; i++) {\n this.applyMask(i);\n this.drawFormatBits(i);\n const penalty: number = this.getPenaltyScore();\n if (penalty < minPenalty) {\n msk = i;\n minPenalty = penalty;\n }\n this.applyMask(i); // Undoes the mask due to XOR\n }\n }\n assert(msk >= 0 && msk <= 7);\n this.mask = msk;\n this.applyMask(msk); // Apply the final choice of mask\n this.drawFormatBits(msk); // Overwrite old format bits\n\n this.isFunction = [];\n }\n\n /* -- Accessor methods --*/\n\n // Returns the color of the module (pixel) at the given coordinates, which is false\n // for light or true for dark. The top left corner has the coordinates (x=0, y=0).\n // If the given coordinates are out of bounds, then false (light) is returned.\n public getModule(x: number, y: number): boolean {\n return (\n x >= 0 && x < this.size && y >= 0 && y < this.size && this.modules[y][x]\n );\n }\n\n // Modified to expose modules for easy access\n public getModules() {\n return this.modules;\n }\n\n /* -- Private helper methods for constructor: Drawing function modules --*/\n\n // Reads this object's version field, and draws and marks all function modules.\n private drawFunctionPatterns(): void {\n // Draw horizontal and vertical timing patterns\n for (let i = 0; i < this.size; i++) {\n this.setFunctionModule(6, i, i % 2 === 0);\n this.setFunctionModule(i, 6, i % 2 === 0);\n }\n\n // Draw 3 finder patterns (all corners except bottom right; overwrites some timing modules)\n this.drawFinderPattern(3, 3);\n this.drawFinderPattern(this.size - 4, 3);\n this.drawFinderPattern(3, this.size - 4);\n\n // Draw numerous alignment patterns\n const alignPatPos: number[] = this.getAlignmentPatternPositions();\n const numAlign: number = alignPatPos.length;\n for (let i = 0; i < numAlign; i++) {\n for (let j = 0; j < numAlign; j++) {\n // Don't draw on the three finder corners\n if (\n !(\n (i === 0 && j === 0) ||\n (i === 0 && j === numAlign - 1) ||\n (i === numAlign - 1 && j === 0)\n )\n ) {\n this.drawAlignmentPattern(alignPatPos[i], alignPatPos[j]);\n }\n }\n }\n\n // Draw configuration data\n this.drawFormatBits(0); // Dummy mask value; overwritten later in the constructor\n this.drawVersion();\n }\n\n // Draws two copies of the format bits (with its own error correction code)\n // based on the given mask and this object's error correction level field.\n private drawFormatBits(mask: number): void {\n // Calculate error correction code and pack bits\n const data: number = (this.errorCorrectionLevel.formatBits << 3) | mask; // errCorrLvl is unumber2, mask is unumber3\n let rem: number = data;\n for (let i = 0; i < 10; i++) {\n rem = (rem << 1) ^ ((rem >>> 9) * 0x537);\n }\n const bits = ((data << 10) | rem) ^ 0x5412; // unumber15\n assert(bits >>> 15 === 0);\n\n // Draw first copy\n for (let i = 0; i <= 5; i++) {\n this.setFunctionModule(8, i, getBit(bits, i));\n }\n this.setFunctionModule(8, 7, getBit(bits, 6));\n this.setFunctionModule(8, 8, getBit(bits, 7));\n this.setFunctionModule(7, 8, getBit(bits, 8));\n for (let i = 9; i < 15; i++) {\n this.setFunctionModule(14 - i, 8, getBit(bits, i));\n }\n // Draw second copy\n for (let i = 0; i < 8; i++) {\n this.setFunctionModule(this.size - 1 - i, 8, getBit(bits, i));\n }\n for (let i = 8; i < 15; i++) {\n this.setFunctionModule(8, this.size - 15 + i, getBit(bits, i));\n }\n this.setFunctionModule(8, this.size - 8, true); // Always dark\n }\n\n // Draws two copies of the version bits (with its own error correction code),\n // based on this object's version field, iff 7 <= version <= 40.\n private drawVersion(): void {\n if (this.version < 7) {\n return;\n }\n\n // Calculate error correction code and pack bits\n let rem: number = this.version; // version is unumber6, in the range [7, 40]\n for (let i = 0; i < 12; i++) {\n rem = (rem << 1) ^ ((rem >>> 11) * 0x1f25);\n }\n const bits: number = (this.version << 12) | rem; // unumber18\n assert(bits >>> 18 === 0);\n\n // Draw two copies\n for (let i = 0; i < 18; i++) {\n const color: boolean = getBit(bits, i);\n const a: number = this.size - 11 + (i % 3);\n const b: number = Math.floor(i / 3);\n this.setFunctionModule(a, b, color);\n this.setFunctionModule(b, a, color);\n }\n }\n\n // Draws a 9*9 finder pattern including the border separator,\n // with the center module at (x, y). Modules can be out of bounds.\n private drawFinderPattern(x: number, y: number): void {\n for (let dy = -4; dy <= 4; dy++) {\n for (let dx = -4; dx <= 4; dx++) {\n const dist: number = Math.max(Math.abs(dx), Math.abs(dy)); // Chebyshev/infinity norm\n const xx: number = x + dx;\n const yy: number = y + dy;\n if (xx >= 0 && xx < this.size && yy >= 0 && yy < this.size) {\n this.setFunctionModule(xx, yy, dist !== 2 && dist !== 4);\n }\n }\n }\n }\n\n // Draws a 5*5 alignment pattern, with the center module\n // at (x, y). All modules must be in bounds.\n private drawAlignmentPattern(x: number, y: number): void {\n for (let dy = -2; dy <= 2; dy++) {\n for (let dx = -2; dx <= 2; dx++) {\n this.setFunctionModule(\n x + dx,\n y + dy,\n Math.max(Math.abs(dx), Math.abs(dy)) !== 1\n );\n }\n }\n }\n\n // Sets the color of a module and marks it as a function module.\n // Only used by the constructor. Coordinates must be in bounds.\n private setFunctionModule(x: number, y: number, isDark: boolean): void {\n this.modules[y][x] = isDark;\n this.isFunction[y][x] = true;\n }\n\n /* -- Private helper methods for constructor: Codewords and masking --*/\n\n // Returns a new byte string representing the given data with the appropriate error correction\n // codewords appended to it, based on this object's version and error correction level.\n private addEccAndInterleave(data: Readonly): number[] {\n const ver: number = this.version;\n const ecl: Ecc = this.errorCorrectionLevel;\n if (data.length !== QrCode.getNumDataCodewords(ver, ecl)) {\n throw new RangeError(\"Invalid argument\");\n }\n // Calculate parameter numbers\n const numBlocks = QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n const blockEccLen = QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver];\n const rawCodewords = Math.floor(QrCode.getNumRawDataModules(ver) / 8);\n const numShortBlocks = numBlocks - (rawCodewords % numBlocks);\n const shortBlockLen = Math.floor(rawCodewords / numBlocks);\n\n // Split data numbero blocks and append ECC to each block\n const blocks: number[][] = [];\n const rsDiv = QrCode.reedSolomonComputeDivisor(blockEccLen);\n for (let i = 0, k = 0; i < numBlocks; i++) {\n const dat = data.slice(\n k,\n k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1)\n );\n k += dat.length;\n const ecc: number[] = QrCode.reedSolomonComputeRemainder(dat, rsDiv);\n if (i < numShortBlocks) {\n dat.push(0);\n }\n blocks.push(dat.concat(ecc));\n }\n\n // Interleave (not concatenate) the bytes from every block numbero a single sequence\n const result: number[] = [];\n for (let i = 0; i < blocks[0].length; i++) {\n blocks.forEach((block, j) => {\n // Skip the padding byte in short blocks\n if (i !== shortBlockLen - blockEccLen || j >= numShortBlocks) {\n result.push(block[i]);\n }\n });\n }\n assert(result.length === rawCodewords);\n return result;\n }\n\n // Draws the given sequence of 8-bit codewords (data and error correction) onto the entire\n // data area of this QR Code. Function modules need to be marked off before this is called.\n private drawCodewords(data: Readonly): void {\n if (\n data.length !== Math.floor(QrCode.getNumRawDataModules(this.version) / 8)\n ) {\n throw new RangeError(\"Invalid argument\");\n }\n let i: number = 0; // Bit index numbero the data\n // Do the funny zigzag scan\n for (let right = this.size - 1; right >= 1; right -= 2) {\n // Index of right column in each column pair\n if (right === 6) {\n right = 5;\n }\n for (let vert = 0; vert < this.size; vert++) {\n // Vertical counter\n for (let j = 0; j < 2; j++) {\n const x: number = right - j; // Actual x coordinate\n const upward: boolean = ((right + 1) & 2) === 0;\n const y: number = upward ? this.size - 1 - vert : vert; // Actual y coordinate\n if (!this.isFunction[y][x] && i < data.length * 8) {\n this.modules[y][x] = getBit(data[i >>> 3], 7 - (i & 7));\n i++;\n }\n // If this QR Code has any remainder bits (0 to 7), they were assigned as\n // 0/false/light by the constructor and are left unchanged by this method\n }\n }\n }\n assert(i === data.length * 8);\n }\n\n // XORs the codeword modules in this QR Code with the given mask pattern.\n // The function modules must be marked and the codeword bits must be drawn\n // before masking. Due to the arithmetic of XOR, calling applyMask() with\n // the same mask value a second time will undo the mask. A final well-formed\n // QR Code needs exactly one (not zero, two, etc.) mask applied.\n private applyMask(mask: number): void {\n if (mask < 0 || mask > 7) {\n throw new RangeError(\"Mask value out of range\");\n }\n for (let y = 0; y < this.size; y++) {\n for (let x = 0; x < this.size; x++) {\n let invert: boolean;\n switch (mask) {\n case 0:\n invert = (x + y) % 2 === 0;\n break;\n case 1:\n invert = y % 2 === 0;\n break;\n case 2:\n invert = x % 3 === 0;\n break;\n case 3:\n invert = (x + y) % 3 === 0;\n break;\n case 4:\n invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 === 0;\n break;\n case 5:\n invert = ((x * y) % 2) + ((x * y) % 3) === 0;\n break;\n case 6:\n invert = (((x * y) % 2) + ((x * y) % 3)) % 2 === 0;\n break;\n case 7:\n invert = (((x + y) % 2) + ((x * y) % 3)) % 2 === 0;\n break;\n default:\n throw new Error(\"Unreachable\");\n }\n if (!this.isFunction[y][x] && invert) {\n this.modules[y][x] = !this.modules[y][x];\n }\n }\n }\n }\n\n // Calculates and returns the penalty score based on state of this QR Code's current modules.\n // This is used by the automatic mask choice algorithm to find the mask pattern that yields the lowest score.\n private getPenaltyScore(): number {\n let result: number = 0;\n\n // Adjacent modules in row having same color, and finder-like patterns\n for (let y = 0; y < this.size; y++) {\n let runColor = false;\n let runX = 0;\n const runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let x = 0; x < this.size; x++) {\n if (this.modules[y][x] === runColor) {\n runX++;\n if (runX === 5) {\n result += QrCode.PENALTY_N1;\n } else if (runX > 5) {\n result++;\n }\n } else {\n this.finderPenaltyAddHistory(runX, runHistory);\n if (!runColor) {\n result +=\n this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3;\n }\n runColor = this.modules[y][x];\n runX = 1;\n }\n }\n result +=\n this.finderPenaltyTerminateAndCount(runColor, runX, runHistory) *\n QrCode.PENALTY_N3;\n }\n // Adjacent modules in column having same color, and finder-like patterns\n for (let x = 0; x < this.size; x++) {\n let runColor = false;\n let runY = 0;\n const runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let y = 0; y < this.size; y++) {\n if (this.modules[y][x] === runColor) {\n runY++;\n if (runY === 5) {\n result += QrCode.PENALTY_N1;\n } else if (runY > 5) {\n result++;\n }\n } else {\n this.finderPenaltyAddHistory(runY, runHistory);\n if (!runColor) {\n result +=\n this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3;\n }\n runColor = this.modules[y][x];\n runY = 1;\n }\n }\n result +=\n this.finderPenaltyTerminateAndCount(runColor, runY, runHistory) *\n QrCode.PENALTY_N3;\n }\n\n // 2*2 blocks of modules having same color\n for (let y = 0; y < this.size - 1; y++) {\n for (let x = 0; x < this.size - 1; x++) {\n const color: boolean = this.modules[y][x];\n if (\n color === this.modules[y][x + 1] &&\n color === this.modules[y + 1][x] &&\n color === this.modules[y + 1][x + 1]\n ) {\n result += QrCode.PENALTY_N2;\n }\n }\n }\n\n // Balance of dark and light modules\n let dark: number = 0;\n for (const row of this.modules) {\n dark = row.reduce((sum, color) => sum + (color ? 1 : 0), dark);\n }\n const total: number = this.size * this.size; // Note that size is odd, so dark/total !== 1/2\n // Compute the smallest numbereger k >= 0 such that (45-5k)% <= dark/total <= (55+5k)%\n const k: number = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1;\n assert(k >= 0 && k <= 9);\n result += k * QrCode.PENALTY_N4;\n assert(result >= 0 && result <= 2568888); // Non-tight upper bound based on default values of PENALTY_N1, ..., N4\n return result;\n }\n\n /* -- Private helper functions --*/\n\n // Returns an ascending list of positions of alignment patterns for this version number.\n // Each position is in the range [0,177), and are used on both the x and y axes.\n // This could be implemented as lookup table of 40 variable-length lists of numberegers.\n private getAlignmentPatternPositions(): number[] {\n if (this.version === 1) {\n return [];\n }\n const numAlign = Math.floor(this.version / 7) + 2;\n const step =\n this.version === 32\n ? 26\n : Math.ceil((this.version * 4 + 4) / (numAlign * 2 - 2)) * 2;\n const result: number[] = [6];\n for (let pos = this.size - 7; result.length < numAlign; pos -= step) {\n result.splice(1, 0, pos);\n }\n return result;\n }\n\n // Returns the number of data bits that can be stored in a QR Code of the given version number, after\n // all function modules are excluded. This includes remainder bits, so it might not be a multiple of 8.\n // The result is in the range [208, 29648]. This could be implemented as a 40-entry lookup table.\n private static getNumRawDataModules(ver: number): number {\n if (ver < QrCode.MIN_VERSION || ver > QrCode.MAX_VERSION) {\n throw new RangeError(\"Version number out of range\");\n }\n let result: number = (16 * ver + 128) * ver + 64;\n if (ver >= 2) {\n const numAlign: number = Math.floor(ver / 7) + 2;\n result -= (25 * numAlign - 10) * numAlign - 55;\n if (ver >= 7) {\n result -= 36;\n }\n }\n assert(result >= 208 && result <= 29648);\n return result;\n }\n\n // Returns the number of 8-bit data (i.e. not error correction) codewords contained in any\n // QR Code of the given version number and error correction level, with remainder bits discarded.\n // This stateless pure function could be implemented as a (40*4)-cell lookup table.\n private static getNumDataCodewords(ver: number, ecl: Ecc): number {\n return (\n Math.floor(QrCode.getNumRawDataModules(ver) / 8) -\n QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver] *\n QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver]\n );\n }\n\n // Returns a Reed-Solomon ECC generator polynomial for the given degree. This could be\n // implemented as a lookup table over all possible parameter values, instead of as an algorithm.\n private static reedSolomonComputeDivisor(degree: number): number[] {\n if (degree < 1 || degree > 255) {\n throw new RangeError(\"Degree out of range\");\n }\n // Polynomial coefficients are stored from highest to lowest power, excluding the leading term which is always 1.\n // For example the polynomial x^3 + 255x^2 + 8x + 93 is stored as the unumber8 array [255, 8, 93].\n const result: number[] = [];\n for (let i = 0; i < degree - 1; i++) {\n result.push(0);\n }\n result.push(1); // Start off with the monomial x^0\n\n // Compute the product polynomial (x - r^0) * (x - r^1) * (x - r^2) * ... * (x - r^{degree-1}),\n // and drop the highest monomial term which is always 1x^degree.\n // Note that r = 0x02, which is a generator element of this field GF(2^8/0x11D).\n let root = 1;\n for (let i = 0; i < degree; i++) {\n // Multiply the current product by (x - r^i)\n for (let j = 0; j < result.length; j++) {\n result[j] = QrCode.reedSolomonMultiply(result[j], root);\n if (j + 1 < result.length) {\n result[j] ^= result[j + 1];\n }\n }\n root = QrCode.reedSolomonMultiply(root, 0x02);\n }\n return result;\n }\n\n // Returns the Reed-Solomon error correction codeword for the given data and divisor polynomials.\n private static reedSolomonComputeRemainder(\n data: Readonly,\n divisor: Readonly\n ) {\n const result = divisor.map(() => 0);\n for (const b of data) {\n // Polynomial division\n const factor = b ^ result.shift();\n result.push(0);\n divisor.forEach((coef, i) => {\n result[i] ^= QrCode.reedSolomonMultiply(coef, factor);\n });\n }\n return result;\n }\n\n // Returns the product of the two given field elements modulo GF(2^8/0x11D). The arguments and result\n // are unsigned 8-bit numberegers. This could be implemented as a lookup table of 256*256 entries of unumber8.\n private static reedSolomonMultiply(x: number, y: number): number {\n if (x >>> 8 !== 0 || y >>> 8 !== 0) {\n throw new RangeError(\"Byte out of range\");\n }\n // Russian peasant multiplication\n let z: number = 0;\n for (let i = 7; i >= 0; i--) {\n z = (z << 1) ^ ((z >>> 7) * 0x11d);\n z ^= ((y >>> i) & 1) * x;\n }\n assert(z >>> 8 === 0);\n return z as number;\n }\n\n // Can only be called immediately after a light run is added, and\n // returns either 0, 1, or 2. A helper function for getPenaltyScore().\n private finderPenaltyCountPatterns(runHistory: Readonly): number {\n const n: number = runHistory[1];\n assert(n <= this.size * 3);\n const core: boolean =\n n > 0 &&\n runHistory[2] === n &&\n runHistory[3] === n * 3 &&\n runHistory[4] === n &&\n runHistory[5] === n;\n return (\n (core && runHistory[0] >= n * 4 && runHistory[6] >= n ? 1 : 0) +\n (core && runHistory[6] >= n * 4 && runHistory[0] >= n ? 1 : 0)\n );\n }\n\n // Must be called at the end of a line (row or column) of modules. A helper function for getPenaltyScore().\n private finderPenaltyTerminateAndCount(\n currentRunColor: boolean,\n oriCurrentRunLength: number,\n runHistory: number[]\n ): number {\n let currentRunLength = oriCurrentRunLength;\n if (currentRunColor) {\n // Terminate dark run\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n currentRunLength = 0;\n }\n currentRunLength += this.size; // Add light border to final run\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n return this.finderPenaltyCountPatterns(runHistory);\n }\n\n // Pushes the given value to the front and drops the last value. A helper function for getPenaltyScore().\n private finderPenaltyAddHistory(\n oriCurrentRunLength: number,\n runHistory: number[]\n ) {\n let currentRunLength = oriCurrentRunLength;\n if (runHistory[0] === 0) {\n currentRunLength += this.size; // Add light border to initial run\n }\n runHistory.pop();\n runHistory.unshift(currentRunLength);\n }\n\n /* -- Constants and tables --*/\n\n // The minimum version number supported in the QR Code Model 2 standard.\n public static readonly MIN_VERSION: number = 1;\n\n // The maximum version number supported in the QR Code Model 2 standard.\n public static readonly MAX_VERSION: number = 40;\n\n // For use in getPenaltyScore(), when evaluating which mask is best.\n private static readonly PENALTY_N1: number = 3;\n\n private static readonly PENALTY_N2: number = 3;\n\n private static readonly PENALTY_N3: number = 40;\n\n private static readonly PENALTY_N4: number = 10;\n\n private static readonly ECC_CODEWORDS_PER_BLOCK: number[][] = [\n // Version: (note that index 0 is for padding, and is set to an illegal value)\n // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level\n [\n -1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30,\n 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,\n 30, 30, 30, 30,\n ], // Low\n [\n -1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28,\n 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\n 28, 28, 28, 28, 28,\n ], // Medium\n [\n -1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28,\n 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30,\n 30, 30, 30, 30, 30,\n ], // Quartile\n [\n -1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28,\n 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,\n 30, 30, 30, 30, 30,\n ], // High\n ];\n\n private static readonly NUM_ERROR_CORRECTION_BLOCKS: number[][] = [\n // Version: (note that index 0 is for padding, and is set to an illegal value)\n // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level\n [\n -1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9,\n 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25,\n ], // Low\n [\n -1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17,\n 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47,\n 49,\n ], // Medium\n [\n -1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20,\n 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62,\n 65, 68,\n ], // Quartile\n [\n -1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25,\n 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74,\n 77, 81,\n ], // High\n ];\n}\n","import type {\n CrossOrigin,\n ERROR_LEVEL_MAPPED_TYPE,\n ErrorCorrectionLevel,\n Excavation,\n ImageSettings,\n Modules,\n} from './types';\nimport { Ecc } from './qrcodegen';\n\n// =================== ERROR_LEVEL ==========================\nexport const ERROR_LEVEL_MAP: ERROR_LEVEL_MAPPED_TYPE = {\n L: Ecc.LOW,\n M: Ecc.MEDIUM,\n Q: Ecc.QUARTILE,\n H: Ecc.HIGH,\n} as const;\n\n// =================== DEFAULT_VALUE ==========================\nexport const DEFAULT_SIZE = 160;\nexport const DEFAULT_LEVEL: ErrorCorrectionLevel = 'M';\nexport const DEFAULT_BACKGROUND_COLOR = '#FFFFFF';\nexport const DEFAULT_FRONT_COLOR = '#000000';\nexport const DEFAULT_NEED_MARGIN = false;\nexport const DEFAULT_MINVERSION = 1;\nexport const SPEC_MARGIN_SIZE = 4;\nexport const DEFAULT_MARGIN_SIZE = 0;\nexport const DEFAULT_IMG_SCALE = 0.1;\n\n// =================== UTILS ==========================\n/**\n * Generate a path string from modules\n * @param modules\n * @param margin\n * @returns\n */\nexport const generatePath = (modules: Modules, margin: number = 0) => {\n const ops: string[] = [];\n modules.forEach((row, y) => {\n let start: number | null = null;\n row.forEach((cell, x) => {\n if (!cell && start !== null) {\n ops.push(\n `M${start + margin} ${y + margin}h${x - start}v1H${start + margin}z`\n );\n start = null;\n return;\n }\n\n if (x === row.length - 1) {\n if (!cell) {\n return;\n }\n if (start === null) {\n ops.push(`M${x + margin},${y + margin} h1v1H${x + margin}z`);\n } else {\n ops.push(\n `M${start + margin},${y + margin} h${x + 1 - start}v1H${\n start + margin\n }z`\n );\n }\n return;\n }\n\n if (cell && start === null) {\n start = x;\n }\n });\n });\n return ops.join('');\n};\n\n/**\n * Excavate modules\n * @param modules\n * @param excavation\n * @returns\n */\nexport const excavateModules = (modules: Modules, excavation: Excavation) => modules.slice().map((row, y) => {\n if (y < excavation.y || y >= excavation.y + excavation.h) {\n return row;\n }\n return row.map((cell, x) => {\n if (x < excavation.x || x >= excavation.x + excavation.w) {\n return cell;\n }\n return false;\n });\n});\n\n/**\n * Get image settings\n * @param cells The modules of the QR code\n * @param size The size of the QR code\n * @param margin\n * @param imageSettings\n * @returns\n */\nexport const getImageSettings = (\n cells: Modules,\n size: number,\n margin: number,\n imageSettings?: ImageSettings\n): null | {\n x: number;\n y: number;\n h: number;\n w: number;\n excavation: Excavation | null;\n opacity: number;\n crossOrigin: CrossOrigin;\n} => {\n if (imageSettings == null) {\n return null;\n }\n const numCells = cells.length + margin * 2;\n const defaultSize = Math.floor(size * DEFAULT_IMG_SCALE);\n const scale = numCells / size;\n const w = (imageSettings.width || defaultSize) * scale;\n const h = (imageSettings.height || defaultSize) * scale;\n const x = imageSettings.x == null\n ? cells.length / 2 - w / 2\n : imageSettings.x * scale;\n const y = imageSettings.y == null\n ? cells.length / 2 - h / 2\n : imageSettings.y * scale;\n const opacity = imageSettings.opacity == null ? 1 : imageSettings.opacity;\n\n let excavation = null;\n if (imageSettings.excavate) {\n const floorX = Math.floor(x);\n const floorY = Math.floor(y);\n const ceilW = Math.ceil(w + x - floorX);\n const ceilH = Math.ceil(h + y - floorY);\n excavation = { x: floorX, y: floorY, w: ceilW, h: ceilH };\n }\n\n const { crossOrigin } = imageSettings;\n\n return { x, y, h, w, excavation, opacity, crossOrigin };\n};\n\n/**\n * Get margin size\n * @param needMargin Whether need margin\n * @param marginSize Custom margin size\n * @returns\n */\nexport const getMarginSize = (needMargin: boolean, marginSize?: number) => {\n if (marginSize != null) {\n return Math.max(Math.floor(marginSize), 0);\n }\n return needMargin ? SPEC_MARGIN_SIZE : DEFAULT_MARGIN_SIZE;\n};\n\n/**\n * Check if Path2D is supported\n */\nexport const isSupportPath2d = (() => {\n try {\n new Path2D().addPath(new Path2D());\n } catch {\n return false;\n }\n return true;\n})();\n","import { PropType } from 'vue';\nimport { QRCodeSubComponent, QRCodeStatus } from './type';\n\nexport const QRCodeSubComponentProps = {\n /**\n * The value to encode into the QR Code. An array of strings can be passed in\n * to represent multiple segments to further optimize the QR Code.\n */\n value: {\n type: String,\n default: '',\n },\n /**\n * The size, in pixels, to render the QR Code.\n * @defaultValue 128\n */\n size: {\n type: Number,\n default: 128,\n },\n /**\n * The Error Correction Level to use.\n * @see https://www.qrcode.com/en/about/error_correction.html\n * @defaultValue L\n */\n level: {\n type: String as PropType,\n default: 'L',\n },\n /**\n * The background color used to render the QR Code.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/color_value\n * @defaultValue #FFFFFF\n */\n bgColor: {\n type: String,\n default: '#FFFFFF',\n },\n /**\n * The foregtound color used to render the QR Code.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/color_value\n * @defaultValue #000000\n */\n fgColor: {\n type: String,\n default: '#000000',\n },\n /**\n * The style to apply to the QR Code.\n */\n style: {\n type: Object as PropType,\n default: () => ({} as QRCodeSubComponent['style']),\n },\n /**\n * Whether or not a margin of 4 modules should be rendered as a part of the\n * QR Code.\n * @deprecated Use `marginSize` instead.\n * @defaultValue false\n */\n includeMargin: {\n type: Boolean,\n default: false,\n },\n /**\n * The number of _modules_ to use for margin. The QR Code specification\n * requires `4`, however you can specify any number. Values will be turned to\n * integers with `Math.floor`. Overrides `includeMargin` when both are specified.\n * @defaultValue 0\n */\n marginSize: {\n type: Number,\n default: 0,\n },\n /**\n * The settings for the embedded image.\n */\n imageSettings: {\n type: Object as PropType,\n default: () => ({}),\n },\n /**\n * The title to assign to the QR Code. Used for accessibility reasons.\n */\n title: {\n type: String,\n default: '',\n },\n /**\n * The minimum version used when encoding the QR Code. Valid values are 1-40\n * with higher values resulting in more complex QR Codes. The optimal\n * (lowest) version is determined for the `value` provided, using `minVersion`\n * as the lower bound.\n * @defaultValue 1\n */\n minVersion: {\n type: Number,\n default: 1,\n },\n};\n\nexport const QRCodeStatusProps = {\n locale: {\n type: Object as PropType,\n default: () => ({} as QRCodeStatus['locale']),\n },\n onRefresh: {\n type: Function as PropType,\n },\n statusRender: {\n type: Function as PropType,\n },\n status: {\n type: String as PropType,\n default: 'active' as QRCodeStatus['status'],\n },\n};\n","import { QrCode, QrSegment } from '@tdesign/common-js/qrcode/qrcodegen';\nimport type { CrossOrigin, ErrorCorrectionLevel, Excavation, ImageSettings } from '@tdesign/common-js/qrcode/types';\nimport { ERROR_LEVEL_MAP, getImageSettings, getMarginSize } from '@tdesign/common-js/qrcode/utils';\nimport { computed, ComputedRef } from 'vue';\n\ninterface Options {\n value: string;\n level: ErrorCorrectionLevel;\n minVersion: number;\n includeMargin: boolean;\n marginSize?: number;\n imageSettings?: ImageSettings;\n size: number;\n}\n\ninterface QRCodeResult {\n cells: ComputedRef;\n margin: ComputedRef;\n numCells: ComputedRef;\n calculatedImageSettings: ComputedRef<{\n x: number;\n y: number;\n h: number;\n w: number;\n excavation: Excavation | null;\n opacity: number;\n crossOrigin: CrossOrigin;\n }>;\n qrcode: ComputedRef;\n}\n\nexport const useQRCode = (opt: Options): QRCodeResult => {\n const { value, level, minVersion, includeMargin, marginSize, imageSettings, size } = opt;\n\n const memoizedQrcode = computed(() => {\n const segments = QrSegment.makeSegments(value);\n return QrCode.encodeSegments(segments, ERROR_LEVEL_MAP[level], minVersion);\n });\n\n const cs = computed(() => memoizedQrcode.value.getModules());\n const mg = computed(() => getMarginSize(includeMargin, marginSize));\n const cis = computed(() => getImageSettings(cs.value, size, mg.value, imageSettings));\n\n return {\n cells: cs,\n margin: mg,\n numCells: computed(() => cs.value.length + mg.value * 2),\n calculatedImageSettings: cis,\n qrcode: memoizedQrcode,\n };\n};\n\nexport default useQRCode;\n","import { computed, defineComponent, ref, watchEffect, onMounted } from 'vue';\nimport { QRCodeSubComponentProps } from './props';\nimport {\n DEFAULT_NEED_MARGIN,\n DEFAULT_MINVERSION,\n isSupportPath2d,\n excavateModules,\n generatePath,\n} from '@tdesign/common-js/qrcode/utils';\nimport { useQRCode } from '../hooks/useQRCode';\n\nexport default defineComponent({\n name: 'QRCodeCanvas',\n props: QRCodeSubComponentProps,\n setup(props) {\n const imgSrc = computed(() => props.imageSettings?.src);\n\n const imageRef = ref(null);\n\n const canvasRef = ref(null);\n\n const imgCrossOrigin = ref('');\n\n const renderQRCode = () => {\n const { margin, cells, numCells, calculatedImageSettings } = useQRCode({\n value: props.value,\n level: props.level,\n minVersion: DEFAULT_MINVERSION,\n includeMargin: DEFAULT_NEED_MARGIN,\n marginSize: props.marginSize,\n imageSettings: props.imageSettings,\n size: props.size,\n });\n\n if (!canvasRef.value) {\n return;\n }\n\n const canvas = canvasRef.value;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n return;\n }\n\n imgCrossOrigin.value = calculatedImageSettings.value?.crossOrigin;\n\n let cellsToDraw = cells;\n const image = imageRef.value;\n\n if (image) {\n image.crossOrigin = calculatedImageSettings.value.crossOrigin;\n }\n\n const haveImageToRender =\n calculatedImageSettings.value &&\n image !== null &&\n image.complete &&\n image.naturalHeight !== 0 &&\n image.naturalWidth !== 0;\n\n if (haveImageToRender && calculatedImageSettings.value.excavation != null) {\n cellsToDraw = computed(() => excavateModules(cells.value, calculatedImageSettings.value.excavation));\n }\n\n const pixelRatio = window.devicePixelRatio || 1;\n canvas.height = props.size * pixelRatio;\n canvas.width = props.size * pixelRatio;\n const scale = (props.size / numCells.value) * pixelRatio;\n ctx.scale(scale, scale);\n\n ctx.fillStyle = props.bgColor;\n ctx.fillRect(0, 0, numCells.value, numCells.value);\n\n ctx.fillStyle = props.fgColor;\n if (isSupportPath2d) {\n ctx.fill(new Path2D(generatePath(cellsToDraw.value, margin.value)));\n } else {\n cells.value.forEach((row, rdx) => {\n row.forEach((cell, cdx) => {\n if (cell) {\n ctx.fillRect(cdx + margin.value, rdx + margin.value, 1, 1);\n }\n });\n });\n }\n\n if (calculatedImageSettings) {\n ctx.globalAlpha = calculatedImageSettings.value.opacity;\n }\n\n if (haveImageToRender) {\n ctx.globalAlpha = calculatedImageSettings.value.opacity;\n ctx.drawImage(\n image,\n calculatedImageSettings.value.x + margin.value,\n calculatedImageSettings.value.y + margin.value,\n calculatedImageSettings.value.w,\n calculatedImageSettings.value.h,\n );\n }\n };\n\n watchEffect(() => {\n renderQRCode();\n });\n\n onMounted(() => {\n renderQRCode();\n });\n\n return () => {\n return (\n <>\n \n {imgSrc.value != null ? (\n \n ) : null}\n \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport { QRCodeSubComponentProps } from './props';\nimport {\n DEFAULT_NEED_MARGIN,\n DEFAULT_MINVERSION,\n excavateModules,\n generatePath,\n} from '@tdesign/common-js/qrcode/utils';\nimport { useQRCode } from '../hooks/useQRCode';\n\nexport default defineComponent({\n name: 'QRCodeSVG',\n props: QRCodeSubComponentProps,\n setup(props) {\n const qrCodeData = computed(() =>\n useQRCode({\n value: props.value,\n level: props.level,\n minVersion: DEFAULT_MINVERSION,\n includeMargin: DEFAULT_NEED_MARGIN,\n marginSize: props.marginSize,\n imageSettings: props.imageSettings,\n size: props.size,\n }),\n );\n\n const cellsToDraw = computed(() => {\n const { cells, calculatedImageSettings } = qrCodeData.value;\n if (props.imageSettings && calculatedImageSettings.value?.excavation != null) {\n return excavateModules(cells.value, calculatedImageSettings.value.excavation);\n }\n return cells.value;\n });\n\n const imageNode = computed(() => {\n const { calculatedImageSettings, margin } = qrCodeData.value;\n if (!props.imageSettings || !calculatedImageSettings.value) return null;\n\n return (\n \n );\n });\n\n return () => {\n const { margin, numCells } = qrCodeData.value;\n const fgPath = generatePath(cellsToDraw.value, margin.value);\n return (\n \n {!!props.title && {props.title}}\n \n \n {imageNode.value}\n \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport { QRCodeStatusProps } from './props';\nimport { CheckCircleFilledIcon, RefreshIcon } from 'tdesign-icons-vue-next';\nimport Loading from '../../loading';\nimport type { StatusRenderInfo } from '../type';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n name: 'QRCodeStatus',\n props: QRCodeStatusProps,\n setup(props) {\n const classPrefix = usePrefixClass();\n\n const defaultSpin = ;\n\n const defaultExpiredNode = computed(() => (\n <>\n

    {props.locale?.expiredText}

    \n {props?.onRefresh && (\n

    \n \n {props.locale?.refreshText}\n

    \n )}\n \n ));\n\n const defaultScannedNode = (\n

    \n \n {props.locale?.scannedText}\n

    \n );\n\n const defaultNodes = computed(() => {\n return {\n expired: defaultExpiredNode.value,\n loading: defaultSpin,\n scanned: defaultScannedNode,\n active: null as any,\n };\n });\n\n const renderStatus = (info: StatusRenderInfo) => {\n return defaultNodes.value[info.status];\n };\n\n return () => {\n return (\n <>\n {props.statusRender ||\n renderStatus({\n status: props.status,\n onRefresh: props.onRefresh,\n })}\n \n );\n };\n },\n});\n","import { computed, defineComponent } from 'vue';\nimport props from './props';\nimport { DEFAULT_FRONT_COLOR } from '@tdesign/common-js/qrcode/utils';\nimport { usePrefixClass, useConfig, useTNodeJSX, useVariables } from '@tdesign/shared-hooks';\n\nimport QRCodeCanvas from './components/qrcode-canvas';\nimport QRCodeSVG from './components/qrcode-svg';\nimport QRcodeStatus from './components/qrcode-status';\n\nimport type { ImageSettings } from '@tdesign/common-js/qrcode/types';\nimport { isNumber } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TQRCode',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('qrcode');\n\n const { themeFgColor, themeBgColor } = useVariables({\n themeFgColor: '--td-text-color-primary',\n themeBgColor: '--td-bg-color-specialcomponent',\n });\n\n // bgColor:自定义颜色 > 主题色适配 > 透明[transparent]\n const finalBgColor = computed(() => props.bgColor || themeBgColor.value || 'transparent');\n // color[fgColor]:自定义颜色 > 主题色适配 > 默认颜色[#000000]\n const finalFgColor = computed(() => props.color || themeFgColor.value || DEFAULT_FRONT_COLOR);\n\n if (!props.value) {\n return null;\n }\n\n const imageSettings = computed(() => {\n return {\n src: props.icon,\n x: undefined,\n y: undefined,\n height: isNumber(props.iconSize) ? props.iconSize : props.iconSize?.height ?? 40,\n width: isNumber(props.iconSize) ? props.iconSize : props.iconSize?.width ?? 40,\n excavate: true,\n crossOrigin: 'anonymous',\n };\n });\n\n const classes = computed(() => {\n return [\n `${classPrefix.value}-qrcode`,\n {\n [`${classPrefix.value}-borderless`]: props.borderless,\n [`${classPrefix.value}-qrcode-svg`]: props.type === 'svg',\n },\n ];\n });\n\n const mergedStyle = computed(() => {\n return {\n backgroundColor: finalBgColor.value,\n width: `${props.size}px`,\n height: `${props.size}px`,\n };\n });\n\n return () => {\n const QRCodeProps = {\n value: props.value,\n size: props.size,\n bgColor: finalBgColor.value,\n fgColor: finalFgColor.value,\n imageSettings: props.icon ? imageSettings.value : undefined,\n level: props.level,\n };\n\n return (\n
    \n {props.status !== 'active' && (\n \n \n
    \n )}\n {props.type === 'canvas' ? (\n \n ) : (\n \n )}\n \n );\n };\n },\n});\n","import _QRCode from './qrcode';\nimport { withInstall } from '@tdesign/shared-utils';\nimport { TdQRCodeProps } from './type';\n\nimport './style';\n\nexport type QRCodeProps = TdQRCodeProps;\nexport * from './type';\n\nexport const QRCode = withInstall(_QRCode, 'TQrcode');\n\nexport default QRCode;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAlertProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 即将废弃,请使用 closeBtn 属性。关闭按钮。值为 true 则显示默认关闭按钮;值为 false 则不显示按钮;值类型为 string 则直接显示;值类型为 Function 则可以自定关闭按钮 */\n close: {\n type: [String, Boolean, Function] as PropType,\n default: false as TdAlertProps['close'],\n },\n /** 关闭按钮。值为 true 则显示默认关闭按钮;值为 false 则不显示按钮;值类型为 string 则直接显示;值类型为 Function 则可以自定关闭按钮 */\n closeBtn: {\n type: [String, Boolean, Function] as PropType,\n default: false as TdAlertProps['closeBtn'],\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 if (!val) return true;\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, getCurrentInstance } 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 { isArray, isString } from 'lodash-es';\n\nimport { on, off, addClass } from '@tdesign/shared-utils';\nimport props from './props';\nimport { SlotReturnValue } from '../common';\nimport {\n useIcon,\n useConfig,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n filterCommentNode,\n} from '@tdesign/shared-hooks';\nimport log from '@tdesign/common-js/log/index';\n\nexport default defineComponent({\n name: 'TAlert',\n props,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\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 // close属性变更为closeBtn过渡期使用,close废弃后可删除。(需兼容标签上直接写close和closeBtn的场景)\n const { closeBtn } = props;\n const isUsingClose = Object.prototype.hasOwnProperty.call(instance.vnode.props || {}, 'close') || slots.close;\n const close = isUsingClose ? props.close : closeBtn;\n if (isUsingClose) {\n log.warnOnce('TAlert', 'prop `close` is going to be deprecated, please use `closeBtn` instead.');\n }\n let closeContent = null;\n if (close === true || close === '') {\n closeContent = ;\n } else if (isString(close)) {\n closeContent = close;\n } else {\n closeContent = renderTNodeJSX(isUsingClose ? 'close' : 'closeBtn');\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 = renderTNodeJSX('default') || renderTNodeJSX('message');\n\n if (isArray(messageContent)) {\n messageContent = filterCommentNode(messageContent);\n }\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 '@tdesign/shared-utils';\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 /** 确认按钮,可自定义。值为 null 则不显示确认按钮。类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件 */\n confirmBtn: {\n type: [String, Object, Function] as PropType,\n },\n /** 抽屉内容,同 body */\n default: {\n type: [String, Function] as PropType,\n },\n /** 抽屉关闭时是否销毁节点 */\n destroyOnClose: Boolean,\n /** 抽屉元素类名。 */\n drawerClassName: {\n type: String,\n default: '',\n },\n /** 底部操作栏,默认会有“确认”和“取消”两个按钮。值为 true 显示默认操作按钮,值为 false 或 null 不显示任何内容,值类型为 TNode 表示自定义底部内容 */\n footer: {\n type: [Boolean, Function] as PropType,\n default: true as TdDrawerProps['footer'],\n },\n /** 头部内容。值为 true 显示空白头部,值为 false 不显示头部,值类型为 string 则直接显示值,值类型为 TNode 表示自定义头部内容 */\n header: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdDrawerProps['header'],\n },\n /** 是否启用抽屉懒加载,启用时抽屉的内容不渲染 */\n lazy: Boolean,\n /** 展开方式,有两种:直接展示在内容上方 和 推开内容区域 */\n mode: {\n type: String as PropType,\n default: 'overlay' as TdDrawerProps['mode'],\n validator(val: TdDrawerProps['mode']): boolean {\n if (!val) return true;\n return ['overlay', 'push'].includes(val);\n },\n },\n /** 抽屉方向 */\n placement: {\n type: String as PropType,\n default: 'right' as TdDrawerProps['placement'],\n validator(val: TdDrawerProps['placement']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top', 'bottom'].includes(val);\n },\n },\n /** 防止滚动穿透 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative */\n showInAttachedElement: Boolean,\n /** 是否显示遮罩层 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 尺寸,支持 'small', 'medium', 'large','35px', '30%', '3em' 等。纵向抽屉调整的是抽屉宽度,横向抽屉调整的是抽屉高度 */\n size: {\n type: String,\n default: undefined,\n },\n /** 抽屉大小可拖拽调整,横向抽屉调整宽度,纵向抽屉调整高度。`sizeDraggable.max` 和 `sizeDraggable.min` 用于控制拖拽尺寸大小限制 */\n sizeDraggable: {\n type: [Boolean, Object] as PropType,\n default: false as TdDrawerProps['sizeDraggable'],\n },\n /** 组件是否可见 */\n visible: Boolean,\n /** 抽屉层级,样式默认为 1500 */\n zIndex: {\n type: Number,\n },\n /** 抽屉执行关闭动画效果前触发 */\n onBeforeClose: Function as PropType,\n /** 抽屉执行打开动画效果前触发 */\n onBeforeOpen: Function as PropType,\n /** 如果“取消”按钮存在,点击“取消”按钮时触发,同时触发关闭事件 */\n onCancel: Function as PropType,\n /** 关闭事件,取消按钮点击时、关闭按钮点击时、ESC 按下时、点击蒙层时均会触发 */\n onClose: Function as PropType,\n /** 如果关闭按钮存在,点击关闭按钮时触发该事件,同时触发关闭事件 */\n onCloseBtnClick: Function as PropType,\n /** 如果“确认”按钮存在,则点击“确认”按钮时触发 */\n onConfirm: Function as PropType,\n /** 按下 ESC 键时触发 */\n onEscKeydown: Function as PropType,\n /** 如果蒙层存在,点击蒙层时触发 */\n onOverlayClick: Function as PropType,\n /** 抽屉大小拖拽结束时触发,事件参数 `size` 在横向抽屉中表示宽度,在纵向抽屉中表示高度 */\n onSizeDragEnd: Function as PropType,\n};\n","type Placement = 'left' | 'right' | 'top' | 'bottom';\n\ninterface SizeDragLimit {\n max: number;\n min: number;\n}\n\nexport function getSizeDraggable(\n sizeDraggable: boolean | SizeDragLimit,\n limit: { max: number; min: number }\n) {\n if (typeof sizeDraggable === 'boolean') {\n return {\n allowSizeDraggable: sizeDraggable,\n max: limit.max,\n min: limit.min,\n };\n }\n\n return {\n allowSizeDraggable: true,\n max: sizeDraggable.max,\n min: sizeDraggable.min,\n };\n}\n\ntype IOptions = {\n x: number;\n y: number;\n maxWidth: number;\n maxHeight: number;\n min: number;\n max: number;\n};\n\n// > min && < max\nfunction calcSizeRange(size: number, min: number, max: number) {\n return Math.min(Math.max(size, min), max);\n}\n\nexport function calcMoveSize(placement: Placement, opts: IOptions) {\n const { x, y, max, min, maxWidth, maxHeight } = opts;\n let moveSize: number | undefined;\n switch (placement) {\n case 'right':\n // |<--- x --->| |\n // | maxWidth |\n // | size | > min && < max\n moveSize = calcSizeRange(maxWidth - x, min, max);\n break;\n case 'left':\n // |<-- x -->| |\n // x > min && < max\n moveSize = calcSizeRange(x, min, max);\n break;\n case 'top':\n // - - - - - - - -\n // | y |\n // | |\n // - - - - - - - -\n // > min && < max\n // moveSize = Math.min(Math.max(y, min), max);\n moveSize = calcSizeRange(y, min, max);\n break;\n case 'bottom':\n // - - - - - - - -\n // | y |\n // | | maxHeight\n // - - - - - - - -\n // | size |\n // > min && < max\n moveSize = calcSizeRange(maxHeight - y, min, max);\n break;\n default:\n // 参数缺失直接返回\n return moveSize;\n }\n return moveSize;\n}\n","import { computed, ref } from 'vue';\nimport { Styles } from '../../common';\nimport { getSizeDraggable, calcMoveSize } from '@tdesign/common-js/drawer/utils';\nimport type { TdDrawerProps } from '../type';\n\nexport const useDrag = (props: TdDrawerProps) => {\n // 以下为拖拽改变抽屉大小相关 可以抽成hooks\n const isSizeDragging = ref(false);\n const draggedSizeValue = ref(null);\n\n const enableDrag = (e: MouseEvent) => {\n e.stopPropagation(); // 阻止事件冒泡\n // mousedown绑定mousemove和mouseup事件\n document.addEventListener('mouseup', handleMouseup, true);\n document.addEventListener('mousemove', handleMousemove, true);\n isSizeDragging.value = true;\n };\n\n const handleMouseup = () => {\n document.removeEventListener('mouseup', handleMouseup, true);\n document.removeEventListener('mousemove', handleMousemove, true);\n isSizeDragging.value = false;\n };\n\n const handleMousemove = (e: MouseEvent) => {\n // 鼠标移动时计算draggedSizeValue的值\n const { x, y } = e;\n const maxHeight = document.documentElement.clientHeight;\n const maxWidth = document.documentElement.clientWidth;\n const offsetHeight = 8;\n const offsetWidth = 8;\n // x 轴方向使用最大宽度,y轴方向使用最大高度\n const max = props.placement === 'left' || props.placement === 'right' ? maxWidth : maxHeight;\n // x 轴方向使用默认最小宽度,y轴方向使用默认最小高度\n const min = props.placement === 'left' || props.placement === 'right' ? offsetWidth : offsetHeight;\n const { allowSizeDraggable, max: limitMax, min: limitMin } = getSizeDraggable(props.sizeDraggable, { max, min });\n\n // 不支持拖拽就直接返回\n if (!allowSizeDraggable || !isSizeDragging.value) return;\n\n const moveSize = calcMoveSize(props.placement, {\n x,\n y,\n maxWidth,\n maxHeight,\n max: limitMax,\n min: limitMin,\n });\n\n if (typeof moveSize === 'undefined') return;\n\n draggedSizeValue.value = `${moveSize}px`;\n props.onSizeDragEnd?.({\n e,\n size: moveSize,\n });\n };\n\n const draggableLineStyles = computed(() => {\n // 设置拖拽control的样式\n const isHorizontal = ['right', 'left'].includes(props.placement);\n const oppositeMap = {\n left: 'right',\n right: 'left',\n top: 'bottom',\n bottom: 'top',\n };\n return {\n zIndex: 1,\n position: 'absolute',\n background: 'transparent',\n [oppositeMap[props.placement]]: 0,\n width: isHorizontal ? '16px' : '100%',\n height: isHorizontal ? '100%' : '16px',\n cursor: isHorizontal ? 'col-resize' : 'row-resize',\n } as Styles;\n });\n\n const draggingStyles = computed(() => (isSizeDragging.value ? { userSelect: 'none' } : {}));\n\n return {\n draggedSizeValue,\n enableDrag,\n draggableLineStyles,\n draggingStyles,\n };\n};\n","import { onBeforeUnmount, onMounted, computed, defineComponent, nextTick, onUpdated, ref, watch, Teleport } from 'vue';\nimport { CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\nimport {\n useConfig,\n useContent,\n useTNodeJSX,\n useTeleport,\n useGlobalIcon,\n usePrefixClass,\n usePopupManager,\n} from '@tdesign/shared-hooks';\n\nimport { isServer } from '@tdesign/shared-utils';\nimport { getScrollbarWidth } from '@tdesign/common-js/utils/getScrollbarWidth';\nimport props from './props';\nimport { DrawerCloseContext } from './type';\nimport { useAction } from '../dialog/hooks';\n\nimport { useDrag } from './hooks';\nimport type { TdDrawerProps } from './type';\n\nlet key = 1;\n\nexport default defineComponent({\n name: 'TDrawer',\n inheritAttrs: false,\n props,\n emits: ['update:visible'],\n setup(props, context) {\n const destroyOnCloseVisible = ref(false);\n const isVisible = ref(false);\n const styleEl = ref();\n const styleTimer = ref();\n const { globalConfig } = useConfig('drawer');\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const COMPONENT_NAME = usePrefixClass('drawer');\n const { draggedSizeValue, enableDrag, draggableLineStyles, draggingStyles } = useDrag(props as TdDrawerProps);\n const computedVisible = computed(() => props.visible);\n const isMounted = ref(false);\n\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n\n const confirmBtnAction = (e: MouseEvent) => {\n props.onConfirm?.({ e });\n };\n const cancelBtnAction = (e: MouseEvent) => {\n props.onCancel?.({ e });\n closeDrawer({ trigger: 'cancel', e });\n };\n const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n const drawerEle = ref(null);\n const drawerClasses = computed(() => [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}--${props.placement}`,\n {\n [`${COMPONENT_NAME.value}--open`]: isVisible.value,\n [`${COMPONENT_NAME.value}--attach`]: props.showInAttachedElement,\n [`${COMPONENT_NAME.value}--without-mask`]: !props.showOverlay,\n },\n props.drawerClassName,\n ]);\n\n const sizeValue = computed(() => {\n if (draggedSizeValue.value) return draggedSizeValue.value;\n const size = props.size ?? globalConfig.value.size;\n const defaultSize = isNaN(Number(size)) ? size : `${size}px`;\n return (\n {\n small: '300px',\n medium: '500px',\n large: '760px',\n }[size] || defaultSize\n );\n });\n const wrapperStyles = computed(() => ({\n transform: isVisible.value ? 'translateX(0)' : undefined,\n width: ['left', 'right'].includes(props.placement) ? sizeValue.value : '',\n height: ['top', 'bottom'].includes(props.placement) ? sizeValue.value : '',\n }));\n\n const wrapperClasses = computed(() => [\n `${COMPONENT_NAME.value}__content-wrapper`,\n `${COMPONENT_NAME.value}__content-wrapper--${props.placement}`,\n ]);\n\n const parentNode = computed(() => drawerEle.value?.parentNode as HTMLElement);\n\n const modeAndPlacement = computed(() => [props.mode, props.placement].join());\n const footerStyle = computed(() => ({\n display: 'flex',\n justifyContent: props.placement === 'right' ? 'flex-start' : 'flex-end',\n }));\n\n const handleEscKeydown = (e: KeyboardEvent) => {\n if (\n (props.closeOnEscKeydown ?? globalConfig.value.closeOnEscKeydown) &&\n e.key === 'Escape' &&\n isVisible.value &&\n isTopInteractivePopup()\n ) {\n props.onEscKeydown?.({ e });\n closeDrawer({ trigger: 'esc', e });\n // 阻止事件冒泡\n e.stopImmediatePropagation();\n }\n };\n\n const clearStyleEl = () => {\n clearTimeout(styleTimer.value);\n styleTimer.value = setTimeout(() => {\n styleEl.value?.parentNode?.removeChild?.(styleEl.value);\n styleEl.value = null;\n }, 150);\n nextTick(() => {\n drawerEle.value?.focus?.();\n });\n };\n\n const createStyleEl = () => {\n if (!styleEl.value) return;\n const hasScrollBar = window.innerWidth > document.documentElement.clientWidth;\n const scrollWidth = hasScrollBar ? getScrollbarWidth() : 0;\n styleEl.value = document.createElement('style');\n styleEl.value.dataset.id = `td_drawer_${+new Date()}_${(key += 1)}`;\n styleEl.value.innerHTML = `\n html body {\n overflow-y: hidden;\n transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;\n ${props.mode === 'push' ? '' : `width: calc(100% - ${scrollWidth}px);`}\n }\n `;\n };\n\n const handlePushMode = () => {\n if (props.mode !== 'push') return;\n nextTick(() => {\n if (!parentNode.value) return;\n parentNode.value.style.cssText = 'transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;';\n });\n };\n\n // push 动画效果处理\n const updatePushMode = () => {\n if (!parentNode.value || props.mode !== 'push') return;\n const marginValueData = {\n left: { name: 'margin-left', value: sizeValue.value },\n right: { name: 'margin-right', value: `-${sizeValue.value}` },\n top: { name: 'margin-top', value: sizeValue.value },\n bottom: { name: 'margin-bottom', value: `-${sizeValue.value}` },\n }[props.placement];\n if (isVisible.value) {\n parentNode.value.style.setProperty(marginValueData.name, marginValueData.value);\n } else {\n parentNode.value.style.removeProperty(marginValueData.name);\n }\n };\n\n // locale 全局配置,插槽,props,默认值,决定了按钮最终呈现\n const getDefaultFooter = () => {\n const confirmBtn = getConfirmBtn({\n confirmBtn: props.confirmBtn as TdDrawerProps['confirmBtn'],\n globalConfirm: globalConfig.value.confirm,\n className: `${COMPONENT_NAME.value}__confirm`,\n });\n const cancelBtn = getCancelBtn({\n cancelBtn: props.cancelBtn as TdDrawerProps['cancelBtn'],\n globalCancel: globalConfig.value.cancel,\n className: `${COMPONENT_NAME.value}__cancel`,\n });\n return (\n
    \n {props.placement === 'right' ? confirmBtn : null}\n {cancelBtn}\n {props.placement !== 'right' ? confirmBtn : null}\n
    \n );\n };\n\n const { isTopInteractivePopup } = usePopupManager('drawer', {\n visible: computedVisible,\n });\n\n watch(modeAndPlacement, handlePushMode, { immediate: true });\n\n const updateVisibleState = (value: boolean) => {\n if (value) {\n isMounted.value = true;\n }\n\n if (props.destroyOnClose) {\n if (value) {\n destroyOnCloseVisible.value = false;\n setTimeout(() => (isVisible.value = true));\n } else {\n isVisible.value = false;\n // immediate 的 watch 的第一次触发,会将设置为 true 的行为延后\n // 插件场景下,watch -> create 方法 的立刻调用,导致 destroyOnCloseVisible 被 watch 的第一次触发覆盖\n // 所以关闭时候,默认先置为 false\n // 后续考虑移除 immediate 的 watch ?\n if (destroyOnCloseVisible.value) {\n destroyOnCloseVisible.value = false;\n }\n setTimeout(() => (destroyOnCloseVisible.value = true), 300);\n }\n return;\n }\n\n if (destroyOnCloseVisible.value && value) {\n destroyOnCloseVisible.value = false;\n setTimeout(() => (isVisible.value = true));\n return;\n }\n\n setTimeout(() => (isVisible.value = value));\n };\n\n const addStyleElToHead = () => {\n if (\n !props.showInAttachedElement &&\n props.preventScrollThrough &&\n isVisible.value &&\n (isMounted.value || !props.lazy)\n ) {\n if (!styleEl.value) {\n createStyleEl();\n }\n if (styleEl.value && !document.head.contains(styleEl.value)) {\n document.head.appendChild(styleEl.value);\n }\n }\n };\n\n watch(\n () => props.visible,\n (value) => {\n if (isServer) return;\n if (value) {\n addStyleElToHead();\n props.onBeforeOpen?.();\n } else {\n clearStyleEl();\n props.onBeforeClose?.();\n }\n\n updateVisibleState(value);\n },\n { immediate: true },\n );\n\n const handleCloseBtnClick = (e: MouseEvent) => {\n props.onCloseBtnClick?.({ e });\n closeDrawer({ trigger: 'close-btn', e });\n };\n const handleWrapperClick = (e: MouseEvent) => {\n props.onOverlayClick?.({ e });\n if (props.closeOnOverlayClick ?? globalConfig.value.closeOnOverlayClick) {\n closeDrawer({ trigger: 'overlay', e });\n }\n };\n\n const closeDrawer = (params: DrawerCloseContext) => {\n props.onClose?.(params);\n context.emit('update:visible', false);\n };\n\n onUpdated(updatePushMode);\n\n onMounted(() => {\n addStyleElToHead();\n window.addEventListener('keydown', handleEscKeydown);\n });\n\n onBeforeUnmount(() => {\n clearStyleEl();\n window.removeEventListener('keydown', handleEscKeydown);\n });\n\n const shouldRender = computed(() => {\n if (!isMounted.value) {\n return !props.lazy;\n } else {\n return isVisible.value || !destroyOnCloseVisible.value;\n }\n });\n\n return () => {\n if (!shouldRender.value) return;\n\n const body = renderContent('body', 'default');\n const headerContent = renderTNodeJSX('header');\n const defaultFooter = getDefaultFooter();\n\n return (\n \n \n {props.showOverlay &&
    }\n
    \n {headerContent &&
    {headerContent}
    }\n {props.closeBtn && (\n
    \n {renderTNodeJSX('closeBtn', )}\n
    \n )}\n
    {body}
    \n {props.footer && (\n
    {renderTNodeJSX('footer', defaultFooter)}
    \n )}\n {props.sizeDraggable &&
    }\n
    \n
    \n
    \n );\n };\n },\n});\n","import { App, ref, Plugin, defineComponent, h, onMounted, nextTick, render, createVNode, AppContext } from 'vue';\nimport DrawerComponent from './drawer';\nimport { getAttach } from '@tdesign/shared-utils';\nimport { DrawerOptions, DrawerMethod, DrawerInstance } from './type';\nimport { omit } from 'lodash-es';\n\nconst createDrawer: DrawerMethod = (props, context) => {\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 function destroySelf() {\n render(null, wrapper);\n wrapper.remove();\n }\n\n const component = defineComponent({\n setup(props, { expose }) {\n const drawerOptions = ref>(options);\n onMounted(() => {\n nextTick(() => {\n visible.value = true;\n });\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 if (options.destroyOnClose) {\n setTimeout(() => {\n destroySelf();\n }, 300);\n }\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 = createVNode(component);\n // eslint-disable-next-line no-underscore-dangle\n if (context ?? DrawerPlugin._context) {\n // eslint-disable-next-line no-underscore-dangle\n drawerComponent.appContext = context ?? DrawerPlugin._context;\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 render(drawerComponent, wrapper);\n\n const destroyDrawer = () => {\n visible.value = false;\n setTimeout(() => {\n destroySelf();\n }, 400);\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 drawerComponent.component.exposed.update(omit(newOptions, ['style']));\n updateStyle(newOptions.style);\n },\n destroy: () => {\n destroyDrawer();\n },\n };\n return drawerNode;\n};\n\nexport type DrawerPluginType = Plugin &\n DrawerMethod & {\n _context?: AppContext;\n };\n\nexport const DrawerPlugin = createDrawer as DrawerPluginType;\n\nDrawerPlugin.install = (app: App): void => {\n // 如果使用 use 方法,自动绑定当前 App 的 context\n // eslint-disable-next-line no-underscore-dangle\n DrawerPlugin._context = app._context;\n app.config.globalProperties.$drawer = createDrawer;\n};\n\nexport default DrawerPlugin;\n","import _Drawer from './drawer';\nimport { withInstall } from '@tdesign/shared-utils';\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 '@tdesign/shared-utils';\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 '@tdesign/shared-utils';\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 '@tdesign/shared-utils';\nimport { useVModel, useConfig, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\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 '@tdesign/shared-utils';\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 { isString, isFunction } from 'lodash-es';\n\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 '@tdesign/shared-utils';\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 '@tdesign/shared-utils';\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 as TdNotificationProps['closeBtn'],\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 as TdNotificationProps['icon'],\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 { useConfig, useContent, useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\nimport props from './props';\n\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 '@tdesign/shared-hooks';\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, nextTick, AppContext, createVNode, render, VNode } from 'vue';\nimport NotificationList from './notification-list';\nimport { getAttach } from '@tdesign/shared-utils';\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, context?: AppContext): 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 = createVNode(NotificationList, {\n placement: hackOptions.placement,\n });\n\n // eslint-disable-next-line no-underscore-dangle\n if (context ?? NotificationPlugin._context) {\n // eslint-disable-next-line no-underscore-dangle\n instance.appContext = context ?? NotificationPlugin._context;\n }\n\n // 会遗留一个容器在 attach 中,需要找合适的时机回收\n attachEl.appendChild(wrapper);\n render(instance, wrapper);\n instance.component.exposed.add(hackOptions);\n instanceMap.get(attachEl)[hackOptions.placement] = instance;\n tmpInstance = instance;\n } else {\n tmpInstance.component.exposed.add(hackOptions);\n }\n\n return new Promise((resolve) => {\n const ins = instanceMap.get(attachEl)[hackOptions.placement];\n nextTick(() => {\n const notificationList: NotificationInstance[] = ins.component.exposed.notificationList.value ?? [];\n resolve(\n notificationList?.find((notify) => {\n return (notify as any).$?.vnode?.key === hackOptions.id;\n }),\n );\n });\n });\n};\n\nconst showThemeNotification: NotificationMethod = (theme, options, context) => {\n const hackOptions = { ...options, theme };\n return NotificationFunction(hackOptions, context);\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, context) => showThemeNotification('info', options, context),\n success: (options, context) => showThemeNotification('success', options, context),\n warning: (options, context) => showThemeNotification('warning', options, context),\n error: (options, context) => showThemeNotification('error', options, context),\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].component.exposed.removeAll();\n });\n });\n },\n};\n\nexport type NotificationPluginType = Plugin &\n ExtraApi &\n NotificationMethod & {\n _context?: AppContext;\n };\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 // eslint-disable-next-line no-underscore-dangle\n NotificationPlugin._context = app._context;\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 '@tdesign/shared-utils';\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 {\n useConfig,\n useVModel,\n useContent,\n useTNodeJSX,\n useGlobalIcon,\n usePrefixClass,\n useTNodeDefault,\n} from '@tdesign/shared-hooks';\n\nimport Popup, { PopupProps, PopupVisibleChangeContext } from '../popup/index';\nimport props from './props';\n\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 '@tdesign/shared-utils';\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, useGlobalIcon } from '@tdesign/shared-hooks';\nimport { UploadFile } from '../type';\nimport { abridgeName } from '@tdesign/common-js/upload/utils';\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 { useTNodeJSX, useGlobalIcon, useCommonClassName } from '@tdesign/shared-hooks';\nimport TLoading from '../../loading';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\n\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\n\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 { SIZE } = 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 { useTNodeJSX, useGlobalIcon } from '@tdesign/shared-hooks';\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';\n\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 const renderTrigger = () => {\n return (\n renderTNodeJSX('trigger', {\n params: {\n triggerUpload: props.triggerUpload,\n },\n }) || (\n
  • \n \n \n

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

    \n \n
  • \n )\n );\n };\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 && renderTrigger()}\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 { isObject, isFunction } from 'lodash-es';\n\nimport { useTNodeJSX, useGlobalIcon } from '@tdesign/shared-hooks';\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport TButton from '../../button';\nimport { UploadFile, TdUploadProps } from '../types';\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';\n\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 '@tdesign/shared-hooks';\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, useConfig } from '@tdesign/shared-hooks';\nimport { InnerProgressContext, OnResponseErrorContext, SuccessContext } from '@tdesign/common-js/upload/types';\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, useDisabled, useGlobalIcon } from '@tdesign/shared-hooks';\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 '@tdesign/shared-utils';\n\nimport './style';\n\nexport * from './types';\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 { withInstall } from '@tdesign/shared-utils';\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 { defineComponent } from 'vue';\nimport props from './props';\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\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 { 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","inRange","baseInRange","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","uniqBy","idCounter","xorWith","baseXor","xorWith$1","_arrayWithHoles","_nonIterableRest","_slicedToArray","arrayWithHoles","l","u","f","next","done","iterableToArrayLimit","nonIterableRest","hrtime","performanceNowModule","getNanoSeconds","nodeLoadTime","moduleLoadTime","hr","upTime","loadTime","window","vendors","suffix","raf","caf","id","queue","frameDuration","_now","cp","_loop","cancelled","round","handle","rafModule","fn","polyfill","requestAnimationFrame","cancelAnimationFrame","easeInOutCubic","duration","change","isServer","on","document","addEventListener","element","event","handler","attachEvent","concat","off","removeEventListener","detachEvent","hasClass","el","cls","indexOf","Error","classList","contains","className","addClass","curClass","classes","j","clsName","removeClass","getAttach","node","triggerNode","attachNode","querySelector","HTMLElement","body","getScrollContainer","container","isWindow","obj","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","hidden","appendChild","click","removeChild","elementInViewport","elm","rect","getBoundingClientRect","parentRect","top","left","bottom","right","innerHeight","innerWidth","getElmCssPropValue","propName","propValue","defaultView","getComputedStyle","getPropertyValue","isFixed","p","parentNode","nodeName","getWindowScroll","docElm","pageYOffset","scrollLeft","isCommentVNode","isVNode","Comment","withInstall","comp","alias","directive","componentPlugin","install","app","component","getDefaultNode","defaultNode","getChildren","content","childList","innerGetChildren","item","children","Fragment","getParams","params","useChildComponentSlots","instance","getCurrentInstance","childComponentName","slots","_slots","_slots$default","filter","_item$type$name","endsWith","useChildSlots","_slots$default2","flat","useFlatChildrenSlots","getFlatChildren","child","Teleport","some","vNode","hasOwn","val","getPropertyValFromObj","handleSlots","_instance$slots$camel","_instance$slots","_instance$slots$kebab","_instance$slots2","isEmptyNode","_node2$type","useTNodeJSX","renderParams","isSlotFirst","slotFirst","getSlotFirst","renderSlot","vProps","vnode","isPropExplicitlySet","_instance$type$props$","propsNode","Boolean","h","useTNodeDefault","renderTNodeJSX","useContent","name1","name2","toParams","node1","node2","s","c","d","$","y","M","weekdays","months","ordinal","m","v","z","utcOffset","abs","date","year","month","clone","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","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","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","loadingEndText","uploadImageText","uploadAttachmentText","qrcode","expiredText","refreshText","scannedText","configProviderInjectKey","text","_len","_key","firstArg","secondArg","pluralParts","part","trim","pluralIndex","getPluralIndex","globalConfigCopy","ref","useConfig","componentName","componentLocale","injectGlobalConfig","inject","mergedGlobalConfig","globalConfig","assign","commonT","provideConfig","defaultData","injectConfig","provide","usePrefixClass","useCommonClassName","SIZE","small","medium","large","xs","xl","block","STATUS","loading","loadMore","disabled","focused","error","selected","active","checked","visible","expanded","indeterminate","useDefaultValue","onChange","propsName","_getCurrentInstance","emit","internalValue","_len2","_key2","useDestroyOnClose","refresh","onUpdated","useDisabled","context","currentInstance","componentDisabled","formDisabled","_context$beforeDisabl","_context$afterDisable","_formDisabled$disable","beforeDisabled","afterDisabled","traversalTabNavs","tabNavs","_step","_iterator","_createForOfIteratorHelper","itemNode","getAttribute","err","handleTarget","resultTarget","observe","marginBottom","IntersectionObserver","io","isIntersecting","unobserve","rootMargin","console","useGlobalIcon","tdIcon","resultIcon","_globalConfig$value","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","oneRule","getFileList","files","fileList","useImagePreviewUrl","imgUrl","previewUrl","watch","_ref","_ref2","fileRaw","reader","FileReader","readAsDataURL","onload","_event$target","then","immediate","expand","ripple","fade","useListener","listener","onMounted","onBeforeUnmount","_defineProperties","_createClass","_classCallCheck","popupStackType","PopupManager","_this","popup","popupStack","zIndex","getNextZIndex","zIndexStack","popupType","_this$popupStack$popu","popupManager","usePopupManager","runOnMounted","open","close","readonly","isTopInteractivePopup","useReadonly","componentReadonly","formReadonly","_context$beforeReadon","_context$afterReadonl","_formReadonly$readonl","beforeReadonly","afterReadonly","useResizeObserver","ResizeObserver","containerObserver","cleanupObserver","disconnect","addObserver","setStyle","styles","style","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","width","offsetWidth","height","offsetHeight","position","borderRadius","pointerEvents","overflow","marginTop","marginLeft","transition","period","backgroundColor","opacity","elMap","initPosition","insertBefore","firstChild","handleClearRipple","onUnmounted","_el$value","useTeleport","to","innerTriggerNode","getElement","useVModel","modelValue","isVM","isVMP","_len3","_key3","useVirtualScrollNew","_params$value$data","_params$value$scroll","visibleData","translateY","scroll","rowHeight","scrollHeight","trHeightList","containerHeight","containerWidth","startAndEndIndex","tScroll","_scroll$isFixedRowHei","_scroll$fixedRows","bufferSize","isFixedRowHeight","threshold","fixedRows","isVirtualScroll","updateVisibleData","_getVisibleRangeConfi","_container$value$scro","_container$value","fixedStart","prevBufferHeightList","hiddenHeight","visibleStart","visibleEnd","totalHeight","_trHeightList$i","shift","startIndex","endIndex","getVisibleRangeConfig","translateYValue","_fixedRows","fixedEnd","fixedStartData","fixedEndData","bottomStartIndex","updateScrollTop","_ref3$top","behavior","contentRect","preventResizeRefresh","addIndexToData","initHeightList","fill","handleScroll","handleRowMounted","rowData","_rowData$ref$value","trHeight","rowIndex","VIRTUAL_SCROLL_INDEX","scrollToElement","_p$time","timer","DEFAULT_OPTIONS","debounceTime","config","attributes","characterData","subtree","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","getColorTokenColor","token","_document","_styles$getPropertyVa","targetElement","useVariables","variables","varsArray","varName","targetEl","mergedOptions","_objectSpread","observer","initObserver","_observer","_mergedOptions$value","_mergedOptions$value$","_mergedOptions$value$2","MutationObserver","newOptions","deep","_observer2","useMutationObservable","mutationsList","mutation","attributeName","_ref3","_ref4","_objectWithoutProperties","objectWithoutPropertiesLoose","getValidAttrs","newObj","getBackgroundColor","color","unshift","_color$direction","rest","_excluded","tempArr","sort","parseFloat","substr","getIEVersion","navigator","MAX_SAFE_INTEGER","userAgent","isIE","isIE11","reIE","fIEVersion","getCharacterLength","str","maxCharacter","hasMaxCharacter","characters","currentStringLength","pxCompat","param","DOM_STYLE_PROPS","GradientIcon","defineComponent","setup","circleRef","nextTick","circleElem","_window","_window$getComputedSt2","_window2","basicStyle","_window$getComputedSt","fontSize","ua","isSafari","isIosWechat","isIpadWechat","transformOrigin","matched","endColor","background","circleAdapter","_createVNode","class","viewBox","version","xmlns","createVNode","props$1z","delay","fullscreen","indicator","inheritColor","preventScrollThrough","showOverlay","_Loading","inheritAttrs","attrs","delayShowLoading","_useComponentClassNam","centerClass","fullscreenClass","lockClass","overlayClass","relativeClass","fullClass","inheritColorClass","renderContent","countDelay","teleportElement","delayCounted","hasContent","lockFullscreen","showText","showWrapLoading","showFullScreenLoading","showAttachedLoading","baseClasses","fullScreenClasses","attachClasses","withContentClasses","normalClasses","toRefs","_ref5","_classes$value","defaultIndicator","_mergeProps","fullScreenLoadingInstance","createLoading","mergedProps","mergeDefaultProps","loadingOptions","reactive","LoadingComponent","LoadingPlugin","_context","appContext","wrapper","render","parentRelativeClass","hide","produceLoading","_fullScreenLoadingIns","globalProperties","$loading","INSTANCE_KEY","createInstance","_binding$modifiers","modifiers","mapKeys","vLoading","mounted","updated","_value$loading","oldValue","unmounted","_el$INSTANCE_KEY","Loading","props$1y","ghost","href","loadingProps","shape","variant","onClick","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","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","_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$1w","hover","prefixIcon","suffixIcon","underline","_Link","emits","linkClass","handleClick","linkContent","prefix","Link","props$1v","align","gutter","justify","calcSize","useRowSize","_Row","rowClasses","getRowClasses","rowStyle","currentSize","getMarginStyle","marginRight","getRowGapStyle","rowGap","strategyMap","calcRowStyle","_slot","TAG","_isVNode","props$1u","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$1t","_Header","props$1s","_Footer","props$1r","_Aside","props$1q","_Content","Aside","Layout","Header","Footer","Content","props$1p","dashed","layout","_Divider","dividerClassNames","Divider","props$1o","breakLine","separator","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$1n","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$1m","_DescriptionsItem","Descriptions","DescriptionsItem","asyncGeneratorStep","_asyncToGenerator","_next","_throw","__esModule","_regeneratorDefine","_invoke","regeneratorDefine","_regenerator","Generator","G","bind","GeneratorFunction","GeneratorFunctionPrototype","setPrototypeOf","__proto__","displayName","OverloadYield","require$$1","AsyncIterator","asyncIterator","regenerator","regeneratorAsyncIterator","regeneratorAsyncGen","isNaN","regeneratorAsync","require$$2","require$$3","require$$4","regeneratorKeys","require$$5","regeneratorValues","require$$6","_regeneratorRuntime","throw","return","break","continue","stop","catch","abrupt","delegateYield","resultName","finish","_t","prev","sent","wrap","reverse","isGeneratorFunction","mark","awrap","async","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","props$1l","offsetBottom","offsetTop","onFixedChange","_Affix","affixWrapRef","affixRef","placeholderEL","ticking","isBind","scrollContainer","affixStyle","rAFId","_affixWrapRef$value$g","_affixWrapRef$value","fixedTop","wrapToTop","wrapWidth","wrapHeight","containerTop","calcTop","calcBottom","Window","affixed","placeholderStatus","removeAttribute","bindScroll","_callee","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","padding","margin","yPosition","createFakeElement","actions_copy","HTMLInputElement","actions_default","_options$action","action","hasAttribute","clipboard_typeof","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","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","nodeList","is","delegate","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$1k","affixProps","bounds","cursor","targetOffset","AnchorInjectionKey","_Anchor","anchorRef","links","handleScrollLock","activeLineStyle","ANCHOR_LINE_CLASSNAME","ANCHOR_LINE_CURSOR_CLASSNAME","utilsGetScrollContainer","filters","link","getAnchorTarget","cur","setCurrentActiveLink","matcher","getElementById","_props2$onChange","updateActiveLine","_x","_anchorRef$value","handleScrollTo","_callee2","_context2","_x2","_callee3","_context3","watchEffect","registerLink","unregisterLink","each","handleLinkClick","renderCursor","localProps","customScroll","_AnchorItem","tAnchor","CLASSNAME_PREFIX","register","unregister","titleSlot","titleVal","renderTitle","titleAttr","wrapperClass","titleClass","THEME_LIST","DISTANCE","PLACEMENT_OFFSET","center","display","flexDirection","alignItems","PLACEMENT_LIST","props$1i","closeBtn","onClose","onCloseBtnClick","onDurationEnd","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","exposed","MessagePlugin","ins","find","_mg$$","showThemeMessage","extraApi","promise","closeAll","$message","funcName","props$1h","auto","basePlacements","viewport","popper","variationPlacements","placements","modifierPhases","getNodeName","getWindow","ownerDocument","isElement","isHTMLElement","isShadowRoot","ShadowRoot","applyStyles$1","enabled","phase","state","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","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","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","flip$2","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","_i","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","offset$1","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","preventOverflow$1","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","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","getHTMLElementScroll","visited","modifier","dep","depModifier","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","popupProps","destroyOnClose","hideEmptyPopup","overlayClassName","overlayInnerClassName","overlayInnerStyle","overlayStyle","popperOptions","showArrow","triggerElement","defaultVisible","onOverlayClick","onScroll","onScrollToBottom","onVisibleChange","filterEmpty","vnodes","Text","useElement","newEl","Trigger","forwardRef","vm","nextElementSibling","_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","arrowStyle","env","TEST","assertMouseLeave","onMouseLeave","offs","prefixCls","commonCls","_props2$delay","_delay2$","show","clean","getOverlayStyle","updateOverlayInnerStyle","getArrowStyle","_popperEl$value$offse2","triggerRect","popupRect","startsWith","_popperEl$value$offse","popupWidth","maxPopupOffsetLeft","popupHeight","maxPopupOffsetTop","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","handleOnScroll","_props2$onScroll","_e$target","debounceOnScrollBottom","_props2$onScrollToBot","hidePopup","overlay","_withDirectives","withDirectives","mergeProps","visibility","_vShow","onContentMounted","Popup","_AnchorTarget","_useConfig","FileCopyIcon","TdFileCopyIcon","toCopyText","div","clip","Message","iconClassName","Anchor","AnchorItem","AnchorTarget","props$1g","itemsAfterCollapse","itemsBeforeCollapse","maxItemWidth","maxItems","props$1f","maxWidth","router","props$1e","_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","$router","location","itemClass","textClass","listeners","stopPropagation","textContent","itemContent","textOverflow","valueIsZeroOrUndefined","_Breadcrumb","ChevronRightIcon","TdChevronRightIcon","EllipsisIcon","TdEllipsisIcon","_useBreadcrumbOptions","getChildComponentSlots","breadcrumbOptions","_props$options","breadcrumbItems","currentIndex","option","itemsSlots","getSlotOrProp","slotName","_child$props","_children$slotName","slotContent","useBreadcrumbOptions","ellipsisItems","ellipsisContent","_useEllipsis","getBreadcrumbItems","shouldShowEllipsis","_maxItems$value","currentMaxItems","totalItems","itemsCollapseSum","getDisplayItems","beforeItems","afterItems","getEllipsisItems","sliceItems","isLast","useEllipsis","BreadcrumbItem","Breadcrumb","dropdownItemProps","divider","_DropdownItem","maxColumnWidth","minColumnWidth","isSubmenu","itemRef","dropdownItemClass","handleItemClick","minWidth","props$1d","hideAfterItemClick","maxHeight","panelBottomContent","panelTopContent","_DropdownMenu","dropdownClass","dropdownMenuClass","scrollTopMap","itemHeight","menuRef","isOverMaxHeight","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","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$1c","collapsed","defaultExpanded","expandMutex","expandType","logo","operations","onExpand","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$1b","tabPanelProps","destroyOnHide","draggable","lazy","panel","removable","onRemove","_TabPanel","renderTNodeContent","tabs","isActive","isMount","tabPanelClass","props$1a","addable","dragSort","scrollPosition","onAdd","onDragSort","getDomWidth","TTabNavItem","tabProps","onTabRemove","onTabPanelRemove","onClickNav","navItemClass","removeBtn","_props$onTabPanelRemo","removeBtnClick","TTabNavBar","navs","barRef","navBarClass","navBarStyle","sizePropName","offsetPropName","_props$navs$i","sizeWithUnit","getStyle","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","_resizeObserver","useResize","handleAddTab","_props$onAdd","setActiveTab","$el","_useDragSort","dragged","enterTargets","dragstart","dragend","dragover","dragenter","outline","dragleave","_enterTargets","enterTarget","drop","tabNav","_props$onDragSort","dragIndex","targetIndex","setNavsWrap","useDragSort","renderNavsContent","_panel$children","nav","tabClick","Transition","appear","navContent","onWheel","_Tabs","tabValue","setTabValue","onTabAdd","_props2$onAdd","onTabChange","_props2$onRemove","getSlotPanels","flatContent","ct","renderHeader","_props2$list","actionContent","panelsData","selfItem","tabNavProps","_props2$list2","TTabPanel","Tabs","TabPanel","props$19","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","virtualChild","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$18","routerLink","_MenuItem","_menu$collapsed","_onClick$value","_submenu$closeParentP","methods","_router$value","liContent","props$17","_MenuGroup","Menu","HeadMenu","Submenu","MenuItem","MenuGroup","props$16","allowInputOverMax","autoWidth","autofocus","borderless","clearable","inputClass","maxcharacter","maxlength","showClearIconOnEmpty","showLimitNumber","spellCheck","tips","onBlur","onClear","onCompositionend","onCompositionstart","onFocus","onKeydown","onKeypress","onKeyup","onPaste","onValidate","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$15","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$onBlur4","_props$onBlur2","_props$onBlur3","keyEvent","ArrowUp","ArrowDown","onInnerInputChange","_number$match","_number$match2","tmpNumber","tmpMatched","canInputNumber","processedVal","parts","decimalLimit","lastNumber","canSetValue","_InputNumber","RemoveIcon","TdRemoveIcon","ChevronDownIcon","TdChevronDownIcon","ChevronUpIcon","TdChevronUpIcon","reduceIcon","addIcon","TInput","InputNumber","props$14","allowInput","collapsedItems","defaultInputValue","minCollapsedNum","multiple","defaultPopupVisible","reserveKeyword","tagInputProps","tagProps","valueDisplay","onInputChange","onPopupVisibleChange","onTagChange","props$13","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","ret","_monochromatic","toHsv","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","random","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","parms","level","toUpperCase","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","props$12","closable","_Tag","tagGlobalConfig","tagClass","tagStyle","getTagColorStyle","textStyle","_tinycolor$toRgb","borderColor","getCloseIcon","tagContent","props$11","defaultChecked","checkedProps","uncheckedProps","_CheckTag","innerChecked","setInnerChecked","checkTagProps","keyboardEventListener","_e$key","onCheckboxFocus","onCheckboxBlur","Tag","props$10","_CheckTagGroup","checkTagGroupClasses","onCheckTagChange","getTagContent","CheckTag","CheckTagGroup","_TagInput","NAME_CLASS","CLEAR_CLASS","BREAK_LINE_CLASS","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","scrollToRight","_tagInputRef$value","scrollToLeft","scrollToRightOnEnter","scrollToLeftOnLeave","useTagScroll","_useTagList","_tagValue","setTagValue","tagValue","oldInputValue","_onRemove$value","clearAll","onInnerEnter","valueStr","isLimitExceeded","onInputBackspaceKeyUp","onInputBackspaceKeyDown","isDelete","_onRemove$value2","renderLabel","displayNode","newList","_getDragProps$value","more","collapsedTags","collapsedSelectedItems","useTagList","tagInputPlaceholder","_tagValue$value","showClearIcon","_tagValue$value2","onInputEnter","_context$e","_context$e$preventDef","onInputCompositionstart","_inputProps$value","_inputProps$value$onC","onInputCompositionend","_inputProps$value2","_inputProps$value2$on","onClearClick","_props2$onClear","onMouseEnter","onInnerFocus","_props2$onFocus","onInnerBlur","_props2$onBlur","onInnerChange","scrollElementClass","_inputProps$value3","_tagValue$value3","suffixIconNode","prefixIconNode","suffixClass","TagInput","DEFAULT_KEYS","useOverlayInnerStyle","innerPopupVisible","disable","matchWidthFunc","popupElement","SCROLLBAR_WIDTH","otherOverlayInnerStyle","getAutoWidthPopupStyleWidth","_popupProps$value","tOverlayInnerStyle","_popupProps$value2","onInnerPopupVisibleChange","_props$onPopupVisible","newVisible","COMMON_PROPERTIES","useSingle","_props$defaultInputVa","propsInputValue","isSingleFocus","setInputValue","commonInputProps","onInnerClear","_context2$e","renderPrefixContent","singleValueDisplay","_props$valueDisplayOp","valueDisplayOptions","useInputDisplay","renderInputDisplay","displayedValue","_props$valueDisplayOp2","_props$valueDisplayOp3","renderPlaceholder","_props$valueDisplayOp4","_props$valueDisplayOp5","usePlaceholder","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$$","checkAll","props$_","lazyLoad","CheckboxGroupInjectionKey","_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$Z","_Group$1","optionList","intersectionLen","optionItems","onCheckAllChange","_getAllCheckboxValue","checkAllVal","uncheckAllVal","getAllCheckboxValue","currentValue","_props2$options","_optionList$value","Checkbox","nodes","getOptionListBySlots","role","CheckboxGroup","_Group","getSingleContent","isRemote","searchDisplayOptions","optionsMap","_searchDisplayOptions","getNewMultipleValue","optionValue","valueIndex","isCheck","selectInjectKey","_Option","createAble","trs","scrollType","isVirtual","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$Y","_OptionGroup","_props2$label","props$X","creatable","selectInputProps","valueType","onCreate","onSearch","usePanelVirtualScroll","_props$scroll3","_props$scroll4","_props$scroll5","_props$scroll6","_props$scroll7","_props$scroll","_props$options$value","_props$scroll2","_ref$fixedHeight","fixedHeight","_ref$lineHeight","lineHeight","_ref$bufferSize","_ref$threshold","cachedHeight","cachedScrollY","updateId","visibleCount","beforeScrollTop","$index","maxScrollY","average","firstRow","calculateScrollY","_anchorDom$getBoundin","anchorDom","anchorDomHeight","_state$visibleData","tr","scrollY","_state$visibleData$","refreshContainer","ob","intersectionRatio","_container$value2","useVirtualScroll","popupContentRef","_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","shouldOmitContent","Option","dropdownInnerSize","renderPanel","extraStyle","_Select","innerInputValue","orgValue","setOrgValue","selectPanelRef","_props2$keys","_props2$keys2","_props2$keys3","isObjectType","_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","searchOptions","currentSelectedOptions","searchSelectedOptions","checkAllOption","exactMatch","fuzzyMatch","useSelectOptions","getOption","_useDefaultValue4","setInnerPopupVisible","placeholderText","isRemoteSearch","currentSelectOptions","displayText","resLabel","getMultipleContent","valueDisplayParams","removeTag","displayValue","isFilterable","_props2$onRemove3","_ref4$trigger","_props2$onRemove2","currentSelected","getCurrentSelectedOptions","_currentSelected$len","_props2$onCreate","optionalList","selectedValue","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","renderValueDisplay","_props2$selectInputPr","_innerValue$value$sli","_innerValue$value$sli2","_ref7","_props2$tagProps","_props2$tagProps$onCl","renderTag","_selectPanelRef$value3","firstSelectedNode","elementBottomHeight","updateValue","_ref8","restPopupProps","onkeydown","_ref9","_ref0","_props2$onEnter","_ref1","_props2$onBlur2","_ref10","picker","Select","props$W","append","prepend","_InputAdornment","renderAddon","addon","addonNode","isContentNode","defaultSlot","InputAdornment","props$V","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$U","showCurrent","_PaginationMini","RoundIcon","TdRoundIcon","titleConfig","disabledConfig","renderWithTooltip","TTooltip","Pagination","PaginationMini","props$T","sequence","stepItemProps","_StepItem","stepsState","stepsProps","CheckIcon","TdCheckIcon","canClick","onStepClick","setCurrent","statusClass","baseClass","iconClass","defaultIcon","_Steps","indexMap","handleStatus","matchIndex","getChildComponentByName","getOptions","stepIndex","StepItem","Steps","props$S","onHover","stickyItemProps","_StickyItem","baseProps","TdStickyToolProps","basePopupProps","baseWidth","popupPlacement","selfWidth","handleClickItem","handleHoverItem","_StickyTool","getListBySlots","_props2$offset","handleHover","_props2$onHover","getList","StickyItem","StickyTool","props$R","visibleHeight","_BackTop","BacktopIcon","TdBackTopIcon","getContainer","scrollDOM","onscroll","_scrollDOM","defaultContent","_createTextVNode","positionStyle","insetInlineEnd","insetBlockEnd","targetNode","getBackTo","BackTop","props$Q","highlightKeyword","textareaProps","onSelect","_HighlightOption","keyword","_content$match","regExp","splitKeyword","_words$value","AutoCompleteOptionList","sizeClassNames","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$O","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","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","cascaderClassNames","renderSuffixIcon","_props2$selectInputPr2","_props2$selectInputPr3","_props2$selectInputPr4","_props2$selectInputPr5","_props2$selectInputPr6","_props2$selectInputPr7","_props2$selectInputPr8","_props2$selectInputPr9","_props2$selectInputPr0","_props2$selectInputPr1","_props2$selectInputPr10","closeIconClickEffect","_CascaderPanel","Cascader","CascaderPanel","isoWeeksInYear","isLeapYear","day","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","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","formattedResult","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","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","internalYear","partial","onMonthChange","onYearChange","onJumperClick","yearOptions","initOptions","showMonthPicker","nearestYear","_yearOptions$value$fi","extraYear","monthOptions","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","valueDayjs","_props$onCellMouseLea","col","AM","PM","MERIDIEM_LIST","TIME_PICKER_EMPTY","DEFAULT_STEPS","EPickerCols","TWELVE_HOUR_FORMAT","props$N","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","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","dateCorrection","partialIndex","onlyYearSelect","parseToDateTime","times","_times","_times$","_times$2","_times$3","_times$4","TPanelContent","tableData","onTimePickerChange","disableTimeOptions","startValue","endValue","defaultTimeValue","_props$onJumperClick","_props$onCellClick","_props$onCellMouseEnt","TTimePickerPanel","_isSlot","TDateFooter","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$M","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","_innerValue$value7","_ref12","_props2$onClick2","_ref13","_innerValue$value9","_ref14","_innerValue$value0","_ref15","_innerValue$value1","_ref16","_innerValue$value10","props$L","_RangeInputPopup","RangeInput","RangeInputPopup","TRangePanel","hoverValue","hidePreselection","startTableData","endTableData","_DateRangePicker","_useRange","isMountedRef","_useRangeValue","useRange","notValidIndex","nextIndex","correctedDate","nextInputValue","changedInputValue","currentDate","nextTime","_initYearMonthTime","defaultYear","defaultMonth","confirmValueChange","_props2$onPresetClick","nextVal","_year$value","_year$value2","_year$value3","_year$value4","TRangeInputPopup","dateRangePickerPanelProps","_DateRangePickerPanel","DatePicker","DatePickerPanel","DateRangePicker","DateRangePickerPanel","props$K","labelAlign","labelWidth","preventSubmitDefault","requiredMarkPosition","resetType","rules","scrollToFirstError","showErrorMessage","statusIcon","submitWithWarningMessage","onReset","onSubmit","defaults","_merge","default_date_options","isValidFormat","strictMode","formatDelimiter","delimiters","delimiter","dateDelimiter","dateAndFormat","zippedArr","zip","dateObj","_n","F","_step$value","dateWord","formatWord","fullYear","parsedYear","getUTCDate","isFinite","_iterableToArrayLimit","isRegExp","_assertString","encodeURI","default_fqdn_options","allow_trailing_dot","allow_wildcard","tld","require_tld","allow_numeric_tld","ignore_max_length","allow_underscores","_interopRequireDefault","isIP","ipAddress","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","isValueEmpty","default_url_options","validate_length","max_allowed_length","allow_fragments","_includesString","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","getFormItemClassName","_Form","formRef","CLASS_NAMES","formClass","FORM_ITEM_CLASS_PREFIX","getFirstError","firstKey","tmpClassName","resArr","getElementsByClassName","scrollIntoView","needValidate","fields","formatValidateResult","validateResultList","_props2$onValidate","showErrorMessage2","firstError","validateOnly","_ref6$trigger","submitParams","submit","resetParams","clearValidate","resetHandler","setValidateMessage","validateMessage","_props2$onSubmit","_props2$onReset","_resetParams$value","resetField","_resetParams$value2","props$J","for","_FormItem","formItemClassPrefix","needRequiredMark","_props2$requiredMark","isRequired","innerRules","_form$requiredMarkPos","hasLabel","hasColon","FROM_LABEL","getDefaultIcon","errorList","verifyStatus","SUCCESS","errorClasses","contentClasses","successList","TO_BE_VALIDATED","resetValidating","needResetField","getEmptyValue","emptyValue","lodashGet","_args","lodashSet","initialValue","errorMessages","_form$errorMessage","_props2$rules","lastIndexOf","pRuleName","analysisValidateResult","_result$rules","resultList","allowSetValue","vars","_vars$prop$trim","validateHandler","_yield$analysisValida","innerSuccessList","innerErrorList","freeShowErrorMessage","FAIL","_callee4","_yield$analysisValida2","_context4","_callee5","_context5","helpNode","extraNode","_list$","getExtraNode","tmpTips","tmpClasses","_callee6","_context6","Form","FormItem","props$I","allowUncheck","RadioGroupInjectionKey","RadioButtonInjectionKey","_Radio","radioChecked","radioGroup","onLabelClick","keydown","keyup","keypresss","onKeypresss","wrapperAttrs","groupDisabled","groupReadonly","radioButton","radioBtnName","props$H","_RadioButton","radioProps","Radio","defaultWindow","useMutationObserver","_options$window","mutationOptions","isSupported","cleanup","stopWatch","elRef","plain","unref","_plain$$el","getCurrentScope","onScopeDispose","radioGroupRef","updateInnerValue","checkRadioInGroup","inputNode","true","false","useKeyboard","observerReturn","checkedClassName","barStyle","calcBarStyle","disableAnimation","checkedRadio","transitionProperty","cloneNode","defaultCheckedRadio","calcDefaultBarStyle","checkedRadioLabel","mutations","_observerReturn","radioGroupName","renderBlock","groupClass","RadioComponent","TRadioButton","TRadio","RadioGroup","RadioButton","props$G","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","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$F","beforeChange","customValue","_Switch","setSwitchVal","inactiveValue","handleToggle","toggle","nodeClasses","switchContent","loadingContent","Switch","props$E","autosize","calcTextareaHeight","_hiddenTextarea","minRows","maxRows","_calculateNodeSize","paddingSize","borderSize","boxSizing","sizingStyle","calculateNodeSize","isBorderbox","singleRowHeight","calcHeight","rows","rowsHeight","minHeight","_Textarea","TEXTAREA_TIPS_CLASS","TEXTAREA_LIMIT","textareaStyle","refTextareaElem","isComposing","adjustTextareaHeight","_refTextareaElem$valu3","_props2$autosize","stringInfo","textareaElem","eventDeal","_props2$eventName","eventName","emitKeyDown","emitKeyUp","emitKeypress","textareaClasses","characterNumber","characterInfo","_refTextareaElem$valu","_refTextareaElem$valu2","_String","textTips","limitText","Textarea","SOURCE","TARGET","getTransferListOption","getDataValues","filterValues","_ref$isTreeMode","isTreeMode","_ref$include","_ref$remainValue","remainValue","isInclude","childResult","getTransferData","transferDataItem","_transferDataItem$dis","labelKey","valueKey","disabledKey","isTreeNodeValid","needMatch","_data$children","cloneTreeWithFilter","sourceTree","targetTree","newNode","isAllNodeValid","filterTransferData","getLefCount","Search","SearchIcon","TdSearchIcon","changeCtx","checkboxProps","dataSource","listType","checkedValue","transferItem","footer","onPageChange","onDataChange","TransferList","filterValue","currentPage","filteredData","filteredTreeData","pageTotal","curPageData","pageData","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$C","operation","showCheckAll","targetDraggable","targetSort","TransferOperations","leftDisabled","rightDisabled","moveToRight","moveToLeft","getIconRight","getIconLeft","getIcon","renderButton","_props2$operation","directionOp","_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$B","_TimeRangePicker","currentPanelIdx","handleTimeChange","_currentValue$value$","_currentValue$value$2","handleOnPick","_currentValue$value$3","_currentValue$value$4","_previousValue$","_previousValue$2","previousValue","_props2$onInput","autoSwapTime","_currentValue$value","endTime","startDayjs","endDayjs","pickValue","pickedRangeValue","_currentValue$value$5","_currentValue$value$6","TimePicker","TimeRangePicker","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","isRightClick","markName","markValue","useTreeEvents","nodesEmpty","cacheMap","refreshVisibleNodes","hasVisibleNode","refreshVirtualNodes","renderTreeNodes","treeNodeViews","nodeUniqueId","useTreeScroll","isScrolling","scrollStopTimer","srcElement","_props$onScroll","emitScrollEvent","_allNodes$value","formatCSSUnit","unit","props$A","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","$slots","cname","emptyNode","emptyContent","treeNodeList","$props","TransitionGroup","topValue","placeholderStyles","placeholderEl","Tree","tdWithInstall","props$z","rComma","rValue","rColor","rColorStop","rColorStopList","rLineCapture","_TreeSelect","treeRef","nodeInfo","treeKey","treeSelectValue","setTreeSelectValue","setInnerInputValue","setTreeParentsExpanded","realValue","realChildren","_currentTargetValue","currentTargetValue","findPath","parentPath","newPath","findParentValues","treeParents","flatMap","changeNodeInfo","treeRerender","filterByText","realLabel","_nodeInfo$value","popupClass","isObjectValue","multiLimitDisabled","_treeSelectValue$valu","valueParam","treeNodeChange","getNodeItem","treeNodeActive","treeNodeExpand","treeNodeLoad","inputChange","_props2$onSearch2","tagChange","getMultipleNodeInfo","getSingleNodeInfo","getTreeNode","TreeSelect","props$y","colorModes","enableAlpha","enableMultipleGradient","recentColors","defaultRecentColors","showPrimaryColorPreview","swatchColors","onPaletteBarChange","onRecentColorsChange","REG_CMYK_STRING","cmykInputToColor","_cmyk2rgb","cmyk2rgb","COLOR_MODES","monochrome","DEFAULT_LINEAR_GRADIENT","DEFAULT_SYSTEM_SWATCH_COLORS","FORMATS","ALPHA_FORMAT_MAP","HEX","RGB","HSL","HSV","COLOR_FORMAT_INPUTS","CMYK","CSS","combineRegExp","regexpList","flags","REGEXP_LIB","gradientSearch","colorStopSearch","REG_GRADIENT","isGradientColor","sideCornerDegreeMap","parseGradientString","gradientColors","points","degree","regExpLib","matchColorStop","stopResult","matchGradient","original","colorStopList","angle","sideCorner","parseGradient","tinyColor","mathRound","hsv2rgba","states","gradientColors2string","colorsStop","pA","pB","genGradientPoint","Color","colors","selectedId","originColor","isGradient","colorHsv","updateCurrentGradientColor","colorInput","_points$","_this$gradientSelecte","_this$gradientStates$","gradientStates","linearGradient","gradientSelectedPoint","updateStates","_hsv2rgba","_hsv2rgba2","_this$getHsva","getHsva","_this$getHsva2","_this$getHsla","getHsla","_this$getHsla2","_this$getCmyk","getCmyk","gradientDegree","_this$gradientSelecte2","gradientSelectedId","cmyk","RGBA","HSLA","HSVA","HEX8","finalFormat","getFormatsColorMap","_hsv2rgba3","_this$getRgba","getRgba","_rgb2cmyk","computedC","computedM","computedY","minCMY","rgb2cmyk","_rgb2cmyk2","_hsv2hsva","_hsv2hsla","_Color","_defineProperty$2","isGradientColor1","isGradientColor2","gradientStr1","gradientStr2","COLOR_OBJECT_OUTPUT_KEYS","getColorObject","colorObject","defaultsOptions","coordinate","_Draggable_brand","WeakSet","Draggable","_classPrivateMethodInitSpec","handles","_assertClassBrand","_dragStart","_drag","_dragEnd","_getCoordinate","getColorFormatMap","getColorFormatInputs","configs","useBaseClassName","baseClassName","props$x","FormatInputs","lastModelValue","updateModelValue","alpha","throttleUpdate","_props2$color","saturation","object2color","FormatPanel","formatModel","handleModeChange","newProps","ColorSlider","railStyle","refPanel","refThumb","dragInstance","panelRect","handleDrag","isEnded","paddingStyle","AlphaSlider","isDragEnd","PanelHeader","onModeChange","modeValue","_props2$colorModes","HueSlider","DELETE_KEYS","LinearGradient","statusClassNames","refSlider","sliderRect","isMoved","payload","addUsedColor","handleDegreeChange","handleSelectedIdChange","handleColorsChange","handleMove","percentLeft","updateActiveThumbLeft","handleEnd","handleKeyup","toLocaleLowerCase","handleThumbBarClick","newPoint","_props$color","thumbBackground","handleStart","TInputNumber","SaturationPanel","_getSaturationAndValu","getSaturationAndValueByCoordinate","panelBackground","SwatchesPanel","editable","onSetColor","handleAddColor","DeleteIcon","TdDeleteIcon","visiblePopConfirm","isEqualCurrentColor","compare","selectedColorIndex","handleRemoveColor","selectedIndex","swatchesClass","ColorPanel","innerRecentColors","setInnerRecentColors","getModeByColor","defaultEmptyColor","initColorFormat","addRecentlyUsedColor","currentColor","handleRecentlyUsedColorsChange","emitColorChange","getFormattedColor","newMode","isGradientMode","handleSatAndValueChange","_color$value","sat","changeTrigger","handleHueChange","_props2$onPaletteBarC","handleAlphaChange","handleGradientChange","handleSetColor","onlySupportGradient","showUsedColors","systemColors","showSystemColors","renderSwatches","_ColorPickerPanel","pickBy","DefaultTrigger","onTriggerChange","onTriggerClear","_props$onTriggerClear","inputSlots","_ColorPicker","refTrigger","renderPopupContent","popProps","TPopup","ColorPickerPanel","ColorPicker","props$w","alt","hideOnLoadFailed","imageProps","onError","props$v","fallback","fit","gallery","overlayContent","overlayTrigger","referrerpolicy","src","srcset","_Image","divRef","imgRef","_imgRef$value","complete","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$u","cascading","collapseAvatar","_AvatarGroup","AVATAR_NAME","renderEllipsisAvatar","getEllipsisContent","outAvatar","Avatar","AvatarGroup","props$t","dot","maxCount","showZero","_Badge","displayCount","isHidden","badgeClassNames","inlineStyle","_getOffset","xOffset","yOffset","Badge","props$s","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$r","bodyClassName","bodyStyle","cover","description","footerClassName","footerStyle","header","headerClassName","headerStyle","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$q","author","datetime","reply","_Comment","showAuthorDatetime","replyDom","quoteDom","avatarDom","authorDatetimeDom","contentDom","flatChildren","renderActions","props$p","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","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$o","cancelBtn","confirmBtn","confirmLoading","confirmOnEnter","dialogClassName","dialogStyle","showInAttachedElement","onBeforeClose","onBeforeOpen","onCancel","onClosed","onEscKeydown","onOpened","useAction","getButtonByProps","defaultButtonProps","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","closeClassName","_Dialog","dialogCardRef","_props2$onCancel","emitCloseEvent","styleEl","isModal","computedVisible","maskClass","positionClass","topStyle","isMounted","destroySelf","_styleEl$value$parent","_styleEl$value$parent2","_document$activeEleme","_dialogCardRef$value","addKeyboardEvent","MOUSEDOWN_TARGET","MOUSEUP_TARGET","keyboardEvent","keyboardEnterEvent","_props2$onConfirm2","_props2$onEscKeydown","_props2$closeOnEscKey","stopImmediatePropagation","_useSameTarget","_props2$closeOnOverla","_props2$onBeforeOpen","_props2$onOpened","_props2$onBeforeClose","_dialogCardRef$value2","_dialogCardRef$value3","_props2$onClosed","shouldRender","view","otherProps","TDialogCard","renderDialog","ctxStyle","ctxClass","onBeforeEnter","onAfterLeave","createDialog","preClassName","updateClassNameStyle","_wrapper$firstElement","firstElementChild","cssText","dialogOptions","DialogComponent","DialogPlugin","setConfirmLoading","$dialog","Dialog","DialogCard","props$n","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$m","_ListItem","propsContent","propsDefaultContent","propsActionContent","props$l","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$k","_ListItemMeta","renderAvatar","propsTitleContent","propsDescriptionContent","listItemMetaContent","List","ListItem","ListItemMeta","PRO_THEME","CIRCLE_SIZE","CIRCLE_SIZE_PX","CIRCLE_FONT_SIZE_RATIO","STATUS_ICON","props$j","percentage","strokeWidth","trackColor","_Progress","ErrorIcon","TdErrorIcon","CIRCLE_ICONS_MAP","NORMAL_ICONS_MAP","statusStyle","trackBgStyle","circlePathStyle","circleOuterStyle","diameter","diameterValue","SMALL","LARGE","MEDIUM","customSize","rPoints","radius","circleStrokeWidth","circleStyle","defaultWidth","strokeDashArr","perimeter","PI","getIconMap","getLabelContent","labelContentRender","infoIsOut","infoRef","separateClasses","_updateInfoIsOut","infoEl","cx","cy","Progress","props$i","rowCol","ThemeMap","paragraph","tab","article","getColItemStyle","px","_Skeleton","isShow","getColItemClass","renderRowCol","_rowCol","renderCols","_cols","bool","Skeleton","props$h","animationStart","trend","trendPlacement","quartOut","Tween","_ref$duration","onStart","_ref$onUpdate","started","finished","_this$onFinish","elapsed","_this$onStart","delta","interval","setInterval","clearInterval","tick","polyfillStart","normalStart","COLOR_MAP","_Statistic","_props2$animation$val","_props2$animation","ArrowTriangleUpFilledIcon","TDArrowTriangleUpFilledIcon","ArrowTriangleDownFilledIcon","TDArrowTriangleDownFilledIcon","trendIcons","increase","decrease","numberValue","valueFrom","innerDecimalPlaces","_props2$decimalPlaces","_numberValue$value$to","tween","_props2$animation$val2","_props2$animation2","_tween$value","formatValue","minimumFractionDigits","maximumFractionDigits","useGrouping","toLocaleString","getFormatValue","_tween$value2","trendIcon","Statistic","props$g","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","columnVNodeList","cellSpans","spanState","_spanState","_spanState2","tdStyles","normalAttrs","renderTd","columnLength","trListeners","_props","getTrListeners","extendTableProps","TBody","renderExpandedRow","activeRow","hoverRow","tbodyClasses","_data$value","_data$value2","_props$virtualConfig2","getFullRow","tType","fullRowNode","isFixedToLeft","trNodeList","properties","renderData","_props$activeRow","trProps","trNode","onRowMounted","expandedContent","posStyle","useStyle","tableSize","_size$value","tableClasses","tableContentStyles","tableElementStyles","THead","thDraggable","columnResizeParams","theadRef","classnames","theadClasses","colspanSkipMap","processColumns","thBorderMap","thRowspanAndColspan","renderThNodeList","thRow","thStyles","colParams","thCustomClasses","thClassName","isLeftFixedActive","isRightFixedActive","canDragSort","withoutChildren","innerTh","resizeColumnListener","_props$columnResizePa","_props$columnResizePa2","_thList$index","onMousemove","_props$columnResizePa3","_props$columnResizePa4","_parent","getTableNode","TFoot","virtualScroll","renderTFootCell","foot","_props$footData","footerDomList","_props$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","virtualScrollParams","getTFootHeight","_tableElmRef$value$qu","onTableFocus","onTableBlur","onInnerRowClick","_props2$onRowClick","scrollColumnIntoView","thDom","fixedThDom","totalWidth","domRect","_tableData$value","_tableBodyRef$value","_el$children","_params$top","_params$behavior","scrollBy","_props2$allowResizeCo","_affixHeaderRef$value","_props2$footData","_tableFootHeight$valu","_tableFootHeight$valu2","_affixHeaderHeight$va","defaultColWidth","renderColGroup","isAffixHeader","headProps","IEHeaderWrap","barWidth","affixHeaderHeight","_affixHeaderRef$value2","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","_props$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","_props$tFilterValue","defaultFilterIcon","isObjectTrue","isValueExist","_props$onVisibleChang","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","mount","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","toEl","fromEl","extraEventProperties","onName","CustomEvent","createEvent","initEvent","bubbles","cancelable","pullMode","lastPutMode","allEventProperties","dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","_detectDirection","elCSS","elWidth","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","secondChildWidth","gridTemplateColumns","touchingSideChild2","_prepareGroup","toFn","sameGroup","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","nearestEmptyInsertDetectEvent","nearest","emptyInsertThreshold","insideHorizontally","insideVertically","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","preventOnFilter","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","relatedRect","_disableDraggable","_unsilent","_generateId","_nextTick","_cancelNextTick","_getDirection","pointerType","originalTarget","inputs","_saveInputCheckedState","isContentEditable","criteria","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","lastElRect","childContainingRect","spacer","_ghostIsLast","changed","firstElRect","_ghostIsFirst","targetBeforeFirstSwap","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","moveVector","insertion","_showClone","_offMoveEvents","_offUpEvents","save","dropEffect","_globalDragOver","toArray","useAnimation","dst","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","toSortable","changedTouches","onSpill","Revert","Remove","swapDragArrayElement","removeNode","insertNodeAt","fatherNode","refNode","dragCol","isRowDraggable","isRowHandlerDraggable","isColDraggable","getDataPageIndex","_pagination$current","_pagination$pageSize","registerOneLevelColDragEvent","recover","onEnd","_props$onDragSort2","oldElement","newElement","registerColDragEvent","primaryTableCmp","timerA","_element$children","dragContainer","baseOptions","registerRowDragEvent","$refs","setDragSortPrimaryTableRef","setDragSortColumns","_toArray","dragStart","parentSortable","AutoScroll","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","EditableCell","oldCell","errors","onRuleChange","onEditableChange","_props$col$edit","isKeepEditMode","_col$value$edit","edit","keepEditMode","isEdit","defaultEditable","editValue","Edit1Icon","TdEdit1Icon","updateEditedCellValue","isUpdateCurrentRow","editOnListeners","_col$value$edit2","_col$value$edit2$on","editedRow","currentRow","restKeys","newRow","editProps","componentProps","_edit$abortEditOnEven","tmpProps","abortEditOnEvent","isAbortEditOnChange","_edit$abortEditOnEven2","validateEdit","_props$onValidate2","updateAndSaveAbort","outsideAbortEvent","_editOnListeners$valu","_editOnListeners$valu2","_props$onEditableChan","_edit$abortEditOnEven3","isCellEditable","tListeners","onEdited","itemEvent","newRowData","onEditChange","_editProps$value","_editProps$value$onCh","_props$onRuleChange","_editOnListeners$valu3","_editOnListeners$valu4","_col$value$edit4","_col$value$edit3","validateTrigger","documentClickHandler","_e$composedPath","_node2$classList","enterEdit","_props$onEditableChan2","_props$col$edit2","cellValue","_props$onRuleChange2","_col$value$edit6","_errorList$value","_col$value$edit7","_errorList$value2","_col$value$edit5","showEditIcon","Component","tmpEditOnListeners","onEventName","useRowEdit","cellRuleMap","errorListMap","editableKeysMap","getEditableKeysMap","editingCells","editedFormData","getErrorListMapByErrors","errorMap","validateOneRowData","rowRules","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$f","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$e","expandIconPlacement","_Collapse","borderlessClass","collapseValue","setCollapseValue","getUniqId","props$d","destroyOnCollapse","headerRightContent","_CollapsePanel","clickableClass","updateCollapseValue","_inject","disableAll","renderParentTNode","iconRef","panelExpandIcon","handleHeaderRightContentClick","tNodeRender","renderBody","Collapse","CollapsePanel","props$c","isRepeat","lineSpace","movable","moveInterval","watermarkContent","_Watermark","backgroundImage","watermarkRef","watermarkContentRef","gapX","gapY","backgroundRepeat","fontColor","bgImageOptions","injectWaterMark","_ref$fontColor","ratio","canvasWidth","canvasHeight","globalAlpha","markWidth","markHeight","fillStyle","fillRect","contents","_item$isGrayscale","isGrayscale","img","crossOrigin","referrerPolicy","imgData","getImageData","pixels","lightness","putImageData","toDataURL","_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$b","allowHalf","_Rate","activeColor","defaultColor","starValue","setStarValue","displayTexts","RateIcon","iconProps","StarFilledIcon","getStarValue","starMiddle","mouseLeaveHandler","getStarCls","clickHandler","mouseEnterHandler","Rate","props$a","copyable","italic","keyboard","strong","reselectPrevious","rangeCount","ranges","getRangeAt","deselectCurrent","whiteSpace","webkitUserSelect","userSelect","clearData","onCopy","copyKey","prompt","removeRange","props$9","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$8","_Title","_Paragraph","Typography","Title","Paragraph","props$7","bgColor","iconSize","statusRender","onRefresh","appendBits","bb","RangeError","getBit","assert","cond","Mode","modeBits","numBitsCharCount","ver","_Mode","Ecc","formatBits","_Ecc","QrSegment","numChars","bitData","BYTE","digits","isNumeric","NUMERIC","isAlphanumeric","ALPHANUMERIC_CHARSET","ALPHANUMERIC","makeNumeric","makeAlphanumeric","makeBytes","toUtf8ByteArray","assignVal","ECI","NUMERIC_REGEX","ALPHANUMERIC_REGEX","segs","seg","ccbits","numCharCountBits","QrCode","errorCorrectionLevel","dataCodewords","oriMsk","msk","MIN_VERSION","MAX_VERSION","modules","drawFunctionPatterns","allCodewords","addEccAndInterleave","drawCodewords","minPenalty","applyMask","drawFormatBits","penalty","getPenaltyScore","mask","setFunctionModule","drawFinderPattern","alignPatPos","getAlignmentPatternPositions","numAlign","drawAlignmentPattern","drawVersion","rem","bits","dist","xx","ecl","getNumDataCodewords","numBlocks","NUM_ERROR_CORRECTION_BLOCKS","blockEccLen","ECC_CODEWORDS_PER_BLOCK","rawCodewords","getNumRawDataModules","numShortBlocks","shortBlockLen","blocks","rsDiv","reedSolomonComputeDivisor","dat","ecc","reedSolomonComputeRemainder","_i9","vert","runColor","runX","runHistory","PENALTY_N1","finderPenaltyAddHistory","finderPenaltyCountPatterns","PENALTY_N3","finderPenaltyTerminateAndCount","runY","PENALTY_N2","dark","PENALTY_N4","core","currentRunColor","oriCurrentRunLength","currentRunLength","makeSegments","encodeSegments","oriEcl","dataUsedBits","minVersion","maxVersion","boostEcl","dataCapacityBits","usedBits","getTotalBits","_i0","_arr","QUARTILE","HIGH","newEcl","_step5","_iterator5","padByte","reedSolomonMultiply","divisor","_step6","_iterator6","_loop2","factor","coef","ERROR_LEVEL_MAP","LOW","DEFAULT_NEED_MARGIN","generatePath","ops","excavateModules","excavation","isSupportPath2d","Path2D","addPath","_unused","QRCodeSubComponentProps","fgColor","includeMargin","marginSize","imageSettings","QRCodeStatusProps","useQRCode","memoizedQrcode","segments","cs","getModules","needMargin","getMarginSize","cis","cells","numCells","defaultSize","excavate","floorX","floorY","getImageSettings","calculatedImageSettings","QRCodeCanvas","_props$imageSettings","imageRef","canvasRef","imgCrossOrigin","renderQRCode","_calculatedImageSetti","_useQRCode","cellsToDraw","haveImageToRender","naturalHeight","naturalWidth","pixelRatio","rdx","cdx","QRCodeSVG","qrCodeData","_qrCodeData$value","imageNode","_qrCodeData$value2","_qrCodeData$value3","fgPath","QRcodeStatus","_props$locale3","defaultSpin","defaultExpiredNode","_props$locale","_props$locale2","RefreshIcon","defaultScannedNode","defaultNodes","expired","scanned","_QRCode","_useVariables","themeFgColor","themeBgColor","finalBgColor","finalFgColor","_props2$iconSize$heig","_props2$iconSize","_props2$iconSize$widt","_props2$iconSize2","mergedStyle","QRCodeProps","QRCode","props$6","maxLine","_Alert","renderIconTNode","iconType","defaultIcons","iconContent","useIcon","alertRef","descriptionRef","descHeight","renderClose","isUsingClose","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","wrapperStyles","wrapperClasses","_drawerEle$value","modeAndPlacement","justifyContent","handleEscKeydown","clearStyleEl","_styleEl$value","_styleEl$value$remove","_drawerEle$value2","_drawerEle$value2$foc","addStyleElToHead","createStyleEl","updateVisibleState","handleCloseBtnClick","handleWrapperClick","marginValueData","setProperty","removeProperty","headerContent","createDrawer","updateStyle","drawerOptions","_drawerOptions$value","DrawerComponent","drawerComponent","DrawerPlugin","$drawer","Drawer","props$4","counter","hideCounter","hidePrev","hideSkip","highlightPadding","onNextStepClick","onPrevStepClick","onSkip","scrollToParentVisibleArea","excludeStaticParent","overflowRegex","scrollToElm","winHeight","doc","getWindowSize","_Guide","LOCK_CLASS","overlayLayerRef","highlightLayerRef","referenceLayerRef","currentHighlightLayerElm","dialogWrapperRef","dialogTooltipRef","popupTooltipRef","stepsTotal","currentStepInfo","isPopup","getCurrentCrossProps","currentElmIsFixed","_currentStepInfo$valu","currentCustomHighlightContent","highlightContent","hWithParams","showCustomHighlightContent","newH","setHighlightLayerPosition","highlightLayer","isReference","_getRelativePosition","relativeElm","_getWindowScroll","_elm$getBoundingClien","elmTop","elmLeft","_relativeElm$getBound","relElmTop","relElmLeft","relativeElmPosition","getRelativePosition","_currentHighlightLaye","_highlightLayerRef$va","showPopupGuide","_popupTooltipRef$valu","_process","NODE_ENV","getTargetElm","destroyTooltipElm","_referenceLayerRef$va","destroyDialogTooltipElm","_dialogTooltipRef$val","_dialogWrapperRef$val","showGuide","handleSkip","_props2$onSkip","handlePrev","_props2$onPrevStepCli","handleNext","_props2$onNextStepCli","handleFinish","_props2$onFinish","initGuide","_highlightLayerRef$va2","_overlayLayerRef$valu","renderCounter","popupSlotCounter","popupDefaultCounter","renderAction","_getCurrentCrossProps","_getCurrentCrossProps2","_getCurrentCrossProps3","_props2$finishButtonP","buttonSize","renderTooltipBody","functionTitle","slotTitle","descBody","bodyRender","footerClasses","renderPopupGuide","_currentStepInfo$valu2","contentProps","innerClassName","stepOverlayClass","renderDialogGuide","dialogClasses","highlightClass","Guide","props$3","keyframes","_Notification","notificationRef","NotificationList","notificationList","notificationStyles","Notification","seed","showThemeNotification","hackOptions","attachEl","tmpInstance","NotificationPlugin","_ins$component$expose","notify","_notify$$","NotificationFunction","$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","customList","_locale$value3","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","existFiles","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","use","tdesign","PKG_VERSION"],"mappings":"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HjmK,EAAGI,EAAA6lK,EAAA7lK,EACP,MAAAxL,OAAAA,OAAOhpB,eAAMo0B,EAAM,MAAApL,OAAAwL,EAAA,IAC5B,CACO,OAAAvb,CACT,EC/EashL,GAAc,CACzBC,WAAY,cACZ,kBAAmB,iBAORC,GAA0B,wEAG1BC,GAA+B,CAC1C,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAMWC,GAAU,CACrB,MACA,MACA,MACA,MACA,OACA,OAMWC,GAAmB,CAC9BC,IAAK,OACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QAMMC,GAAkE,CAC7EH,IAAK,CACH,CACEh0L,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,gBAGVk2L,IAAK,CACH,CACEl0L,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,gBAGVi2L,IAAK,CACH,CACEj0L,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,gBAGVo2L,KAAM,CACJ,CACEp0L,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACLoX,IAAK,EACL3U,IAAK,IACLzE,KAAM,eAER,CACEgC,IAAK,IACL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"} \ No newline at end of file diff --git a/docs/assets/js/modules/vue.global.prod.js b/docs/assets/js/modules/vue.global.prod.js index d6a5788..415c2b9 100644 --- a/docs/assets/js/modules/vue.global.prod.js +++ b/docs/assets/js/modules/vue.global.prod.js @@ -1,12 +1,12 @@ /** -* vue v3.5.20 +* vue v3.5.21 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/var Vue=function(e){"use strict";var t,n,r;let i,l,s,o,a,c,u,d,p,h,f,m,g;function y(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let b={},_=[],S=()=>{},x=()=>!1,C=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),k=e=>e.startsWith("onUpdate:"),T=Object.assign,N=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},w=Object.prototype.hasOwnProperty,A=(e,t)=>w.call(e,t),E=Array.isArray,I=e=>"[object Map]"===V(e),R=e=>"[object Set]"===V(e),O=e=>"[object Date]"===V(e),P=e=>"function"==typeof e,M=e=>"string"==typeof e,$=e=>"symbol"==typeof e,L=e=>null!==e&&"object"==typeof e,D=e=>(L(e)||P(e))&&P(e.then)&&P(e.catch),F=Object.prototype.toString,V=e=>F.call(e),B=e=>"[object Object]"===V(e),U=e=>M(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,j=y(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),H=y("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),q=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},W=/-(\w)/g,K=q(e=>e.replace(W,(e,t)=>t?t.toUpperCase():"")),z=/\B([A-Z])/g,J=q(e=>e.replace(z,"-$1").toLowerCase()),G=q(e=>e.charAt(0).toUpperCase()+e.slice(1)),X=q(e=>e?`on${G(e)}`:""),Q=(e,t)=>!Object.is(e,t),Z=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ee=e=>{let t=parseFloat(e);return isNaN(t)?e:t},et=e=>{let t=M(e)?Number(e):NaN;return isNaN(t)?e:t},en=()=>i||(i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}),er=y("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function ei(e){if(E(e)){let t={};for(let n=0;n{if(e){let n=e.split(es);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ec(e){let t="";if(M(e))t=e;else if(E(e))for(let n=0;nem(e,t))}let ev=e=>!!(e&&!0===e.__v_isRef),ey=e=>M(e)?e:null==e?"":E(e)||L(e)&&(e.toString===F||!P(e.toString))?ev(e)?ey(e.value):JSON.stringify(e,eb,2):String(e),eb=(e,t)=>{if(ev(t))return eb(e,t.value);if(I(t))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[e_(t,r)+" =>"]=n,e),{})};if(R(t))return{[`Set(${t.size})`]:[...t.values()].map(e=>e_(e))};if($(t))return e_(t);if(L(t)&&!E(t)&&!B(t))return String(t);return t},e_=(e,t="")=>{var n;return $(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class eS{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=l,!e&&l&&(this.index=(l.scopes||(l.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0==--this._on&&(l=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t0)){if(a){let e=a;for(a=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;o;){let t=o;for(o=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function ew(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eA(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),eR(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function eE(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eI(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function eI(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eD)||(e.globalVersion=eD,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!eE(e))))return;e.flags|=2;let t=e.dep,n=s,r=eO;s=e,eO=!0;try{ew(e);let n=e.fn(e._value);(0===t.version||Q(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{s=n,eO=r,eA(e),e.flags&=-3}}function eR(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)eR(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let eO=!0,eP=[];function eM(){eP.push(eO),eO=!1}function e$(){let e=eP.pop();eO=void 0===e||e}function eL(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=s;s=void 0;try{t()}finally{s=e}}}let eD=0;class eF{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class eV{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!s||!eO||s===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==s)t=this.activeLink=new eF(s,this),s.deps?(t.prevDep=s.depsTail,s.depsTail.nextDep=t,s.depsTail=t):s.deps=s.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=s.depsTail,t.nextDep=void 0,s.depsTail.nextDep=t,s.depsTail=t,s.deps===t&&(s.deps=e)}return t}trigger(e){this.version++,eD++,this.notify(e)}notify(e){ek++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{eN()}}}let eB=new WeakMap,eU=Symbol(""),ej=Symbol(""),eH=Symbol("");function eq(e,t,n){if(eO&&s){let t=eB.get(e);t||eB.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new eV),r.map=t,r.key=n),r.track()}}function eW(e,t,n,r,i,l){let s=eB.get(e);if(!s)return void eD++;let o=e=>{e&&e.trigger()};if(ek++,"clear"===t)s.forEach(o);else{let i=E(e),l=i&&U(n);if(i&&"length"===n){let e=Number(r);s.forEach((t,n)=>{("length"===n||n===eH||!$(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),l&&o(s.get(eH)),t){case"add":i?l&&o(s.get("length")):(o(s.get(eU)),I(e)&&o(s.get(ej)));break;case"delete":!i&&(o(s.get(eU)),I(e)&&o(s.get(ej)));break;case"set":I(e)&&o(s.get(eU))}}eN()}function eK(e){let t=tS(e);return t===e?t:(eq(t,"iterate",eH),tb(e)?t:t.map(tC))}function ez(e){return eq(e=tS(e),"iterate",eH),e}let eJ={__proto__:null,[Symbol.iterator](){return eG(this,Symbol.iterator,tC)},concat(...e){return eK(this).concat(...e.map(e=>E(e)?eK(e):e))},entries(){return eG(this,"entries",e=>(e[1]=tC(e[1]),e))},every(e,t){return eQ(this,"every",e,t,void 0,arguments)},filter(e,t){return eQ(this,"filter",e,t,e=>e.map(tC),arguments)},find(e,t){return eQ(this,"find",e,t,tC,arguments)},findIndex(e,t){return eQ(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return eQ(this,"findLast",e,t,tC,arguments)},findLastIndex(e,t){return eQ(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return eQ(this,"forEach",e,t,void 0,arguments)},includes(...e){return eY(this,"includes",e)},indexOf(...e){return eY(this,"indexOf",e)},join(e){return eK(this).join(e)},lastIndexOf(...e){return eY(this,"lastIndexOf",e)},map(e,t){return eQ(this,"map",e,t,void 0,arguments)},pop(){return e0(this,"pop")},push(...e){return e0(this,"push",e)},reduce(e,...t){return eZ(this,"reduce",e,t)},reduceRight(e,...t){return eZ(this,"reduceRight",e,t)},shift(){return e0(this,"shift")},some(e,t){return eQ(this,"some",e,t,void 0,arguments)},splice(...e){return e0(this,"splice",e)},toReversed(){return eK(this).toReversed()},toSorted(e){return eK(this).toSorted(e)},toSpliced(...e){return eK(this).toSpliced(...e)},unshift(...e){return e0(this,"unshift",e)},values(){return eG(this,"values",tC)}};function eG(e,t,n){let r=ez(e),i=r[t]();return r===e||tb(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.value&&(e.value=n(e.value)),e}),i}let eX=Array.prototype;function eQ(e,t,n,r,i,l){let s=ez(e),o=s!==e&&!tb(e),a=s[t];if(a!==eX[t]){let t=a.apply(e,l);return o?tC(t):t}let c=n;s!==e&&(o?c=function(t,r){return n.call(this,tC(t),r,e)}:n.length>2&&(c=function(t,r){return n.call(this,t,r,e)}));let u=a.call(s,c,r);return o&&i?i(u):u}function eZ(e,t,n,r){let i=ez(e),l=n;return i!==e&&(tb(e)?n.length>3&&(l=function(t,r,i){return n.call(this,t,r,i,e)}):l=function(t,r,i){return n.call(this,t,tC(r),i,e)}),i[t](l,...r)}function eY(e,t,n){let r=tS(e);eq(r,"iterate",eH);let i=r[t](...n);return(-1===i||!1===i)&&t_(n[0])?(n[0]=tS(n[0]),r[t](...n)):i}function e0(e,t,n=[]){eM(),ek++;let r=tS(e)[t].apply(e,n);return eN(),e$(),r}let e1=y("__proto__,__v_isRef,__isVue"),e2=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter($));function e3(e){$(e)||(e=String(e));let t=tS(this);return eq(t,"has",e),t.hasOwnProperty(e)}class e6{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;if("__v_raw"===t)return n===(r?i?tp:td:i?tu:tc).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let l=E(e);if(!r){let e;if(l&&(e=eJ[t]))return e;if("hasOwnProperty"===t)return e3}let s=Reflect.get(e,t,tT(e)?e:n);return($(t)?e2.has(t):e1(t))||(r||eq(e,"get",t),i)?s:tT(s)?l&&U(t)?s:s.value:L(s)?r?tm(s):th(s):s}}class e4 extends e6{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t];if(!this._isShallow){let t=ty(i);if(tb(n)||ty(n)||(i=tS(i),n=tS(n)),!E(e)&&tT(i)&&!tT(n))if(t)return!0;else return i.value=n,!0}let l=E(e)&&U(t)?Number(t)e,tn=e=>Reflect.getPrototypeOf(e);function tr(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function ti(e,t){let n=function(e,t){let n={get(n){let r=this.__v_raw,i=tS(r),l=tS(n);e||(Q(n,l)&&eq(i,"get",n),eq(i,"get",l));let{has:s}=tn(i),o=t?tt:e?tk:tC;return s.call(i,n)?o(r.get(n)):s.call(i,l)?o(r.get(l)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||eq(tS(t),"iterate",eU),t.size},has(t){let n=this.__v_raw,r=tS(n),i=tS(t);return e||(Q(t,i)&&eq(r,"has",t),eq(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,l=i.__v_raw,s=tS(l),o=t?tt:e?tk:tC;return e||eq(s,"iterate",eU),l.forEach((e,t)=>n.call(r,o(e),o(t),i))}};return T(n,e?{add:tr("add"),set:tr("set"),delete:tr("delete"),clear:tr("clear")}:{add(e){t||tb(e)||ty(e)||(e=tS(e));let n=tS(this);return tn(n).has.call(n,e)||(n.add(e),eW(n,"add",e,e)),this},set(e,n){t||tb(n)||ty(n)||(n=tS(n));let r=tS(this),{has:i,get:l}=tn(r),s=i.call(r,e);s||(e=tS(e),s=i.call(r,e));let o=l.call(r,e);return r.set(e,n),s?Q(n,o)&&eW(r,"set",e,n):eW(r,"add",e,n),this},delete(e){let t=tS(this),{has:n,get:r}=tn(t),i=n.call(t,e);i||(e=tS(e),i=n.call(t,e)),r&&r.call(t,e);let l=t.delete(e);return i&&eW(t,"delete",e,void 0),l},clear(){let e=tS(this),t=0!==e.size,n=e.clear();return t&&eW(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i=this.__v_raw,l=tS(i),s=I(l),o="entries"===r||r===Symbol.iterator&&s,a=i[r](...n),c=t?tt:e?tk:tC;return e||eq(l,"iterate","keys"===r&&s?ej:eU),{next(){let{value:e,done:t}=a.next();return t?{value:e,done:t}:{value:o?[c(e[0]),c(e[1])]:c(e),done:t}},[Symbol.iterator](){return this}}}}),n}(e,t);return(t,r,i)=>"__v_isReactive"===r?!e:"__v_isReadonly"===r?e:"__v_raw"===r?t:Reflect.get(A(n,r)&&r in t?n:t,r,i)}let tl={get:ti(!1,!1)},ts={get:ti(!1,!0)},to={get:ti(!0,!1)},ta={get:ti(!0,!0)},tc=new WeakMap,tu=new WeakMap,td=new WeakMap,tp=new WeakMap;function th(e){return ty(e)?e:tg(e,!1,e5,tl,tc)}function tf(e){return tg(e,!1,e7,ts,tu)}function tm(e){return tg(e,!0,e9,to,td)}function tg(e,t,n,r,i){var l;if(!L(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let s=(l=e).__v_skip||!Object.isExtensible(l)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}(V(l).slice(8,-1));if(0===s)return e;let o=i.get(e);if(o)return o;let a=new Proxy(e,2===s?r:n);return i.set(e,a),a}function tv(e){return ty(e)?tv(e.__v_raw):!!(e&&e.__v_isReactive)}function ty(e){return!!(e&&e.__v_isReadonly)}function tb(e){return!!(e&&e.__v_isShallow)}function t_(e){return!!e&&!!e.__v_raw}function tS(e){let t=e&&e.__v_raw;return t?tS(t):e}function tx(e){return!A(e,"__v_skip")&&Object.isExtensible(e)&&Y(e,"__v_skip",!0),e}let tC=e=>L(e)?th(e):e,tk=e=>L(e)?tm(e):e;function tT(e){return!!e&&!0===e.__v_isRef}function tN(e){return tA(e,!1)}function tw(e){return tA(e,!0)}function tA(e,t){return tT(e)?e:new tE(e,t)}class tE{constructor(e,t){this.dep=new eV,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:tS(e),this._value=t?e:tC(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tb(e)||ty(e);Q(e=n?e:tS(e),t)&&(this._rawValue=e,this._value=n?e:tC(e),this.dep.trigger())}}function tI(e){return tT(e)?e.value:e}let tR={get:(e,t,n)=>"__v_raw"===t?e:tI(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return tT(i)&&!tT(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tO(e){return tv(e)?e:new Proxy(e,tR)}class tP{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new eV,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tM(e){return new tP(e)}class t${constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0}get value(){let e=this._object[this._key];return this._value=void 0===e?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return function(e,t){let n=eB.get(e);return n&&n.get(t)}(tS(this._object),this._key)}}class tL{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function tD(e,t,n){let r=e[t];return tT(r)?r:new t$(e,t,n)}class tF{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eV(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eD-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&s!==this)return eT(this,!0),!0}get value(){let e=this.dep.track();return eI(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tV={},tB=new WeakMap;function tU(e,t=!1,n=m){if(n){let t=tB.get(n);t||tB.set(n,t=[]),t.push(e)}}function tj(e,t=1/0,n){if(t<=0||!L(e)||e.__v_skip||(n=n||new Set).has(e))return e;if(n.add(e),t--,tT(e))tj(e.value,t,n);else if(E(e))for(let r=0;r{tj(e,t,n)});else if(B(e)){for(let r in e)tj(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&tj(e[r],t,n)}return e}function tH(e,t,n,r){try{return r?e(...r):e()}catch(e){tW(e,t,n)}}function tq(e,t,n,r){if(P(e)){let i=tH(e,t,n,r);return i&&D(i)&&i.catch(e=>{tW(e,t,n)}),i}if(E(e)){let i=[];for(let l=0;l=t4(n)?tK.push(e):tK.splice(function(e){let t=tz+1,n=tK.length;for(;t>>1,i=tK[r],l=t4(i);lt4(e)-t4(t));if(tJ.length=0,tG)return void tG.push(...e);for(tX=0,tG=e;tXnull==e.id?2&e.flags?-1:1/0:e.id,t8=null,t5=null;function t9(e){let t=t8;return t8=e,t5=e&&e.type.__scopeId||null,t}function t7(e,t=t8,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&ia(-1);let l=t9(t);try{i=e(...n)}finally{t9(l),r._d&&ia(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function ne(e,t,n,r){let i=e.dirs,l=t&&t.dirs;for(let s=0;se&&(e.disabled||""===e.disabled),nr=e=>e&&(e.defer||""===e.defer),ni=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,nl=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,ns=(e,t)=>{let n=e&&e.to;return M(n)?t?t(n):null:n},no={name:"Teleport",__isTeleport:!0,process(e,t,n,r,i,l,s,o,a,c){let{mc:u,pc:d,pbc:p,o:{insert:h,querySelector:f,createText:m,createComment:g}}=c,y=nn(t.props),{shapeFlag:b,children:_,dynamicChildren:S}=t;if(null==e){let e=t.el=m(""),c=t.anchor=m("");h(e,n,r),h(c,n,r);let d=(e,t)=>{16&b&&(i&&i.isCE&&(i.ce._teleportTarget=e),u(_,e,t,i,l,s,o,a))},p=()=>{let e=t.target=ns(t.props,f),n=nu(e,t,m,h);e&&("svg"!==s&&ni(e)?s="svg":"mathml"!==s&&nl(e)&&(s="mathml"),y||(d(e,n),nc(t,!1)))};y&&(d(n,c),nc(t,!0)),nr(t.props)?(t.el.__isMounted=!1,rM(()=>{p(),delete t.el.__isMounted},l)):p()}else{if(nr(t.props)&&!1===e.el.__isMounted)return void rM(()=>{no.process(e,t,n,r,i,l,s,o,a,c)},l);t.el=e.el,t.targetStart=e.targetStart;let u=t.anchor=e.anchor,h=t.target=e.target,m=t.targetAnchor=e.targetAnchor,g=nn(e.props),b=g?n:h,_=g?u:m;if("svg"===s||ni(h)?s="svg":("mathml"===s||nl(h))&&(s="mathml"),S?(p(e.dynamicChildren,S,b,i,l,s,o),rB(e,t,!0)):a||d(e,t,b,_,i,l,s,o,!1),y)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):na(t,n,u,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=ns(t.props,f);e&&na(t,e,null,c,0)}else g&&na(t,h,m,c,1);nc(t,y)}},remove(e,t,n,{um:r,o:{remove:i}},l){let{shapeFlag:s,children:o,anchor:a,targetStart:c,targetAnchor:u,target:d,props:p}=e;if(d&&(i(c),i(u)),l&&i(a),16&s){let e=l||!nn(p);for(let i=0;i{e.isMounted=!0}),nY(()=>{e.isUnmounting=!0}),e}let nf=[Function,Array],nm={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:nf,onEnter:nf,onAfterEnter:nf,onEnterCancelled:nf,onBeforeLeave:nf,onLeave:nf,onAfterLeave:nf,onLeaveCancelled:nf,onBeforeAppear:nf,onAppear:nf,onAfterAppear:nf,onAppearCancelled:nf},ng=e=>{let t=e.subTree;return t.component?ng(t.component):t};function nv(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==ie){t=n;break}}return t}let ny={name:"BaseTransition",props:nm,setup(e,{slots:t}){let n=iE(),r=nh();return()=>{let i=t.default&&nk(t.default(),!0);if(!i||!i.length)return;let l=nv(i),s=tS(e),{mode:o}=s;if(r.isLeaving)return nS(l);let a=nx(l);if(!a)return nS(l);let c=n_(a,s,r,n,e=>c=e);a.type!==ie&&nC(a,c);let u=n.subTree&&nx(n.subTree);if(u&&u.type!==ie&&!ip(a,u)&&ng(n).type!==ie){let e=n_(u,s,r,n);if(nC(u,e),"out-in"===o&&a.type!==ie)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,u=void 0},nS(l);"in-out"===o&&a.type!==ie?e.delayLeave=(e,t,n)=>{nb(r,u)[String(u.key)]=u,e[nd]=()=>{t(),e[nd]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{n(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return l}}};function nb(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function n_(e,t,n,r,i){let{appear:l,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:h,onAfterLeave:f,onLeaveCancelled:m,onBeforeAppear:g,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,S=String(e.key),x=nb(n,e),C=(e,t)=>{e&&tq(e,r,9,t)},k=(e,t)=>{let n=t[1];C(e,t),E(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:s,persisted:o,beforeEnter(t){let r=a;if(!n.isMounted)if(!l)return;else r=g||a;t[nd]&&t[nd](!0);let i=x[S];i&&ip(e,i)&&i.el[nd]&&i.el[nd](),C(r,[t])},enter(e){let t=c,r=u,i=d;if(!n.isMounted)if(!l)return;else t=y||c,r=b||u,i=_||d;let s=!1,o=e[np]=t=>{s||(s=!0,t?C(i,[e]):C(r,[e]),T.delayedLeave&&T.delayedLeave(),e[np]=void 0)};t?k(t,[e,o]):o()},leave(t,r){let i=String(e.key);if(t[np]&&t[np](!0),n.isUnmounting)return r();C(p,[t]);let l=!1,s=t[nd]=n=>{l||(l=!0,r(),n?C(m,[t]):C(f,[t]),t[nd]=void 0,x[i]===e&&delete x[i])};x[i]=e,h?k(h,[t,s]):s()},clone(e){let l=n_(e,t,n,r,i);return i&&i(l),l}};return T}function nS(e){if(nB(e))return(e=ib(e)).children=null,e}function nx(e){if(!nB(e))return e.type.__isTeleport&&e.children?nv(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&P(n.default))return n.default()}}function nC(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nC(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nk(e,t=!1,n){let r=[],i=0;for(let l=0;l1)for(let e=0;enw(e,t&&(E(t)?t[l]:t),n,r,i));if(nF(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&nw(e,t,n,r.component.subTree);return}let l=4&r.shapeFlag?iV(r.component):r.el,s=i?null:l,{i:o,r:a}=e,c=t&&t.r,u=o.refs===b?o.refs={}:o.refs,d=o.setupState,p=tS(d),h=d===b?x:e=>A(p,e);if(null!=c&&c!==a&&(M(c)?(u[c]=null,h(c)&&(d[c]=null)):tT(c)&&(c.value=null,t.k&&(u[t.k]=null))),P(a))tH(a,o,12,[s,u]);else{let t=M(a),r=tT(a);if(t||r){let o=()=>{if(e.f){let n=t?h(a)?d[a]:u[a]:a.value;if(i)E(n)&&N(n,l);else if(E(n))n.includes(l)||n.push(l);else if(t)u[a]=[l],h(a)&&(d[a]=u[a]);else{let t=[l];a.value=t,e.k&&(u[e.k]=t)}}else t?(u[a]=s,h(a)&&(d[a]=s)):r&&(a.value=s,e.k&&(u[e.k]=s))};s?(o.id=-1,rM(o,n)):o()}}}let nA=!1,nE=()=>{nA||(console.error("Hydration completed but contains mismatches."),nA=!0)},nI=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},nR=e=>8===e.nodeType;function nO(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:l,parentNode:s,remove:o,insert:a,createComment:c}}=e,u=(n,r,o,c,b,_=!1)=>{_=_||!!r.dynamicChildren;let S=nR(n)&&"["===n.data,x=()=>f(n,r,o,c,b,S),{type:C,ref:k,shapeFlag:T,patchFlag:N}=r,w=n.nodeType;r.el=n,-2===N&&(_=!1,r.dynamicChildren=null);let A=null;switch(C){case r7:3!==w?""===r.children?(a(r.el=i(""),s(n),n),A=n):A=x():(n.data!==r.children&&(nE(),n.data=r.children),A=l(n));break;case ie:y(n)?(A=l(n),g(r.el=n.content.firstChild,n,o)):A=8!==w||S?x():l(n);break;case it:if(S&&(w=(n=l(n)).nodeType),1===w||3===w){A=n;let e=!r.children.length;for(let t=0;t{s=s||!!t.dynamicChildren;let{type:a,props:c,patchFlag:u,shapeFlag:d,dirs:h,transition:f}=t,m="input"===a||"option"===a;if(m||-1!==u){let a;h&&ne(t,null,n,"created");let b=!1;if(y(e)){b=rV(null,f)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(b){let e=r.getAttribute("class");e&&(r.$cls=e),f.beforeEnter(r)}g(r,e,n),t.el=e=r}if(16&d&&!(c&&(c.innerHTML||c.textContent))){let r=p(e.firstChild,t,e,n,i,l,s);for(;r;){n$(e,1)||nE();let t=r;r=r.nextSibling,o(t)}}else if(8&d){let n=t.children;` -`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1)),e.textContent!==n&&(n$(e,0)||nE(),e.textContent=t.children)}if(c){if(m||!s||48&u){let t=e.tagName.includes("-");for(let i in c)(m&&(i.endsWith("value")||"indeterminate"===i)||C(i)&&!j(i)||"."===i[0]||t)&&r(e,i,null,c[i],void 0,n)}else if(c.onClick)r(e,"onClick",null,c.onClick,void 0,n);else if(4&u&&tv(c.style))for(let e in c.style)c.style[e]}(a=c&&c.onVnodeBeforeMount)&&iT(a,n,t),h&&ne(t,null,n,"beforeMount"),((a=c&&c.onVnodeMounted)||h||b)&&r8(()=>{a&&iT(a,n,t),b&&f.enter(e),h&&ne(t,null,n,"mounted")},i)}return e.nextSibling},p=(e,t,r,s,o,c,d)=>{d=d||!!t.dynamicChildren;let p=t.children,h=p.length;for(let t=0;t{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let d=s(e),h=p(l(e),t,d,n,r,i,o);return h&&nR(h)&&"]"===h.data?l(t.anchor=h):(nE(),a(t.anchor=c("]"),d,h),h)},f=(e,t,r,i,a,c)=>{if(n$(e.parentElement,1)||nE(),t.el=null,c){let t=m(e);for(;;){let n=l(e);if(n&&n!==t)o(n);else break}}let u=l(e),d=s(e);return o(e),n(null,t,d,u,r,i,nI(d),a),r&&(r.vnode.el=t.el,r0(r,t.el)),u},m=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=l(e))&&nR(e)&&(e.data===t&&r++,e.data===n))if(0===r)return l(e);else r--;return e},g=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),t6(),t._vnode=e;return}u(t.firstChild,e,null,null,null),t6(),t._vnode=e},u]}let nP="data-allow-mismatch",nM={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function n$(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nP);)e=e.parentElement;let n=e&&e.getAttribute(nP);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(nM[t])}}let nL=en().requestIdleCallback||(e=>setTimeout(e,1)),nD=en().cancelIdleCallback||(e=>clearTimeout(e)),nF=e=>!!e.type.__asyncLoader;function nV(e,t){let{ref:n,props:r,children:i,ce:l}=t.vnode,s=iv(e,r,i);return s.ref=n,s.ce=l,delete t.vnode.ce,s}let nB=e=>e.type.__isKeepAlive;function nU(e,t){return E(e)?e.some(e=>nU(e,t)):M(e)?e.split(",").includes(t):"[object RegExp]"===V(e)&&(e.lastIndex=0,e.test(t))}function nj(e,t){nq(e,"a",t)}function nH(e,t){nq(e,"da",t)}function nq(e,t,n=iA){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(nz(t,r,n),n){let e=n.parent;for(;e&&e.parent;)nB(e.parent.vnode)&&function(e,t,n,r){let i=nz(t,e,r,!0);n0(()=>{N(r[t],i)},n)}(r,t,n,e),e=e.parent}}function nW(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function nK(e){return 128&e.shapeFlag?e.ssContent:e}function nz(e,t,n=iA,r=!1){if(n){let i=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...r)=>{eM();let i=iI(n),l=tq(t,n,e,r);return i(),e$(),l});return r?i.unshift(l):i.push(l),l}}let nJ=e=>(t,n=iA)=>{iP&&"sp"!==e||nz(e,(...e)=>t(...e),n)},nG=nJ("bm"),nX=nJ("m"),nQ=nJ("bu"),nZ=nJ("u"),nY=nJ("bum"),n0=nJ("um"),n1=nJ("sp"),n2=nJ("rtg"),n3=nJ("rtc");function n6(e,t=iA){nz("ec",e,t)}let n4="components",n8=Symbol.for("v-ndc");function n5(e,t,n=!0,r=!1){let i=t8||iA;if(i){let n=i.type;if(e===n4){let e=iB(n,!1);if(e&&(e===t||e===K(t)||e===G(K(t))))return n}let l=n9(i[e]||n[e],t)||n9(i.appContext[e],t);return!l&&r?n:l}}function n9(e,t){return e&&(e[t]||e[K(t)]||e[G(K(t))])}let n7=e=>e?iO(e)?iV(e):n7(e.parent):null,re=T(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>n7(e.parent),$root:e=>n7(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ra(e),$forceUpdate:e=>e.f||(e.f=()=>{t0(e.update)}),$nextTick:e=>e.n||(e.n=tY.bind(e.proxy)),$watch:e=>rW.bind(e)}),rt=(e,t)=>e!==b&&!e.__isScriptSetup&&A(e,t),rn={get({_:e},t){let n,r,i;if("__v_skip"===t)return!0;let{ctx:l,setupState:s,data:o,props:a,accessCache:c,type:u,appContext:d}=e;if("$"!==t[0]){let r=c[t];if(void 0!==r)switch(r){case 1:return s[t];case 2:return o[t];case 4:return l[t];case 3:return a[t]}else{if(rt(s,t))return c[t]=1,s[t];if(o!==b&&A(o,t))return c[t]=2,o[t];if((n=e.propsOptions[0])&&A(n,t))return c[t]=3,a[t];if(l!==b&&A(l,t))return c[t]=4,l[t];rs&&(c[t]=0)}}let p=re[t];return p?("$attrs"===t&&eq(e.attrs,"get",""),p(e)):(r=u.__cssModules)&&(r=r[t])?r:l!==b&&A(l,t)?(c[t]=4,l[t]):A(i=d.config.globalProperties,t)?i[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:l}=e;return rt(i,t)?(i[t]=n,!0):r!==b&&A(r,t)?(r[t]=n,!0):!A(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:l,type:s}},o){let a,c;return!!(n[o]||e!==b&&"$"!==o[0]&&A(e,o)||rt(t,o)||(a=l[0])&&A(a,o)||A(r,o)||A(re,o)||A(i.config.globalProperties,o)||(c=s.__cssModules)&&c[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:A(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},rr=T({},rn,{get(e,t){if(t!==Symbol.unscopables)return rn.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!er(t)});function ri(e){let t=iE();return t.setupContext||(t.setupContext=iF(t))}function rl(e){return E(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let rs=!0;function ro(e,t,n){tq(E(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function ra(e){let t,n=e.type,{mixins:r,extends:i}=n,{mixins:l,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:l.length||r||i?(t={},l.length&&l.forEach(e=>rc(t,e,o,!0)),rc(t,n,o)):t=n,L(n)&&s.set(n,t),t}function rc(e,t,n,r=!1){let{mixins:i,extends:l}=t;for(let s in l&&rc(e,l,n,!0),i&&i.forEach(t=>rc(e,t,n,!0)),t)if(r&&"expose"===s);else{let r=ru[s]||n&&n[s];e[s]=r?r(e[s],t[s]):t[s]}return e}let ru={data:rd,props:rm,emits:rm,methods:rf,computed:rf,beforeCreate:rh,created:rh,beforeMount:rh,mounted:rh,beforeUpdate:rh,updated:rh,beforeDestroy:rh,beforeUnmount:rh,destroyed:rh,unmounted:rh,activated:rh,deactivated:rh,errorCaptured:rh,serverPrefetch:rh,components:rf,directives:rf,watch:function(e,t){if(!e)return t;if(!t)return e;let n=T(Object.create(null),e);for(let r in t)n[r]=rh(e[r],t[r]);return n},provide:rd,inject:function(e,t){return rf(rp(e),rp(t))}};function rd(e,t){return t?e?function(){return T(P(e)?e.call(this,this):e,P(t)?t.call(this,this):t)}:t:e}function rp(e){if(E(e)){let t={};for(let n=0;n1)return n&&P(t)?t.call(r&&r.proxy):t}}let rS={},rx=()=>Object.create(rS),rC=e=>Object.getPrototypeOf(e)===rS;function rk(e,t,n,r){let i,[l,s]=e.propsOptions,o=!1;if(t)for(let a in t){let c;if(j(a))continue;let u=t[a];l&&A(l,c=K(a))?s&&s.includes(c)?(i||(i={}))[c]=u:n[c]=u:rG(e.emitsOptions,a)||a in r&&u===r[a]||(r[a]=u,o=!0)}if(s){let t=tS(n),r=i||b;for(let i=0;i"_"===e||"_ctx"===e||"$stable"===e,rE=e=>E(e)?e.map(iS):[iS(e)],rI=(e,t,n)=>{if(t._n)return t;let r=t7((...e)=>rE(t(...e)),n);return r._c=!1,r},rR=(e,t,n)=>{let r=e._ctx;for(let n in e){if(rA(n))continue;let i=e[n];if(P(i))t[n]=rI(n,i,r);else if(null!=i){let e=rE(i);t[n]=()=>e}}},rO=(e,t)=>{let n=rE(t);e.slots.default=()=>n},rP=(e,t,n)=>{for(let r in t)(n||!rA(r))&&(e[r]=t[r])},rM=r8;function r$(e){return rL(e,nO)}function rL(e,t){var n;let r,i;en().__VUE__=!0;let{insert:l,remove:s,patchProp:o,createElement:a,createText:c,createComment:d,setText:p,setElementText:h,parentNode:f,nextSibling:m,setScopeId:g=S,insertStaticContent:y}=e,x=(e,t,n,r=null,i=null,l=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!ip(e,t)&&(r=es(e),ee(e,i,l,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:c,ref:u,shapeFlag:d}=t;switch(c){case r7:C(e,t,n,r);break;case ie:k(e,t,n,r);break;case it:null==e&&N(t,n,r,s);break;case r9:V(e,t,n,r,i,l,s,o,a);break;default:1&d?w(e,t,n,r,i,l,s,o,a):6&d?B(e,t,n,r,i,l,s,o,a):64&d?c.process(e,t,n,r,i,l,s,o,a,ec):128&d&&c.process(e,t,n,r,i,l,s,o,a,ec)}null!=u&&i?nw(u,e&&e.ref,l,t||e,!t):null==u&&e&&null!=e.ref&&nw(e.ref,null,l,e,!0)},C=(e,t,n,r)=>{if(null==e)l(t.el=c(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&p(n,t.children)}},k=(e,t,n,r)=>{null==e?l(t.el=d(t.children||""),n,r):t.el=e.el},N=(e,t,n,r)=>{[e.el,e.anchor]=y(e.children,t,n,r,e.el,e.anchor)},w=(e,t,n,r,i,l,s,o,a)=>{"svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e?I(t,n,r,i,l,s,o,a):M(e,t,i,l,s,o,a)},I=(e,t,n,r,i,s,c,u)=>{let d,p,{props:f,shapeFlag:m,transition:g,dirs:y}=e;if(d=e.el=a(e.type,s,f&&f.is,f),8&m?h(d,e.children):16&m&&O(e.children,d,null,r,i,rD(e,s),c,u),y&&ne(e,null,r,"created"),R(d,e,e.scopeId,c,r),f){for(let e in f)"value"===e||j(e)||o(d,e,null,f[e],s,r);"value"in f&&o(d,"value",null,f.value,s),(p=f.onVnodeBeforeMount)&&iT(p,r,e)}y&&ne(e,null,r,"beforeMount");let b=rV(i,g);b&&g.beforeEnter(d),l(d,t,n),((p=f&&f.onVnodeMounted)||b||y)&&rM(()=>{p&&iT(p,r,e),b&&g.enter(d),y&&ne(e,null,r,"mounted")},i)},R=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let c=a;c{let a,c=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:p}=t;u|=16&e.patchFlag;let f=e.props||b,m=t.props||b;if(n&&rF(n,!1),(a=m.onVnodeBeforeUpdate)&&iT(a,n,t,e),p&&ne(t,e,n,"beforeUpdate"),n&&rF(n,!0),(f.innerHTML&&null==m.innerHTML||f.textContent&&null==m.textContent)&&h(c,""),d?$(e.dynamicChildren,d,c,n,r,rD(t,i),l):s||z(e,t,c,null,n,r,rD(t,i),l,!1),u>0){if(16&u)F(c,f,m,n,i);else if(2&u&&f.class!==m.class&&o(c,"class",null,m.class,i),4&u&&o(c,"style",f.style,m.style,i),8&u){let e=t.dynamicProps;for(let t=0;t{a&&iT(a,n,t,e),p&&ne(t,e,n,"updated")},r)},$=(e,t,n,r,i,l,s)=>{for(let o=0;o{if(t!==n){if(t!==b)for(let l in t)j(l)||l in n||o(e,l,t[l],null,i,r);for(let l in n){if(j(l))continue;let s=n[l],a=t[l];s!==a&&"value"!==l&&o(e,l,a,s,i,r)}"value"in n&&o(e,"value",t.value,n.value,i)}},V=(e,t,n,r,i,s,o,a,u)=>{let d=t.el=e?e.el:c(""),p=t.anchor=e?e.anchor:c(""),{patchFlag:h,dynamicChildren:f,slotScopeIds:m}=t;m&&(a=a?a.concat(m):m),null==e?(l(d,n,r),l(p,n,r),O(t.children||[],n,p,i,s,o,a,u)):h>0&&64&h&&f&&e.dynamicChildren?($(e.dynamicChildren,f,n,i,s,o,a),(null!=t.key||i&&t===i.subTree)&&rB(e,t,!0)):z(e,t,n,p,i,s,o,a,u)},B=(e,t,n,r,i,l,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?i.ctx.activate(t,n,r,s,a):U(t,n,r,i,l,s,a):H(e,t,a)},U=(e,t,n,r,i,l,s)=>{let o=e.component=function(e,t,n){let r=e.type,i=(t?t.appContext:e.appContext)||iN,l={uid:iw++,vnode:e,type:r,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new eS(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,r=!1){let i=r?rN:n.propsCache,l=i.get(t);if(l)return l;let s=t.props,o={},a=[],c=!1;if(!P(t)){let i=t=>{c=!0;let[r,i]=e(t,n,!0);T(o,r),i&&a.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}if(!s&&!c)return L(t)&&i.set(t,_),_;if(E(s))for(let e=0;e{let r=e(t,n,!0);r&&(a=!0,T(o,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return s||a?(E(s)?s.forEach(e=>o[e]=null):T(o,s),L(t)&&i.set(t,o),o):(L(t)&&i.set(t,null),null)}(r,i),emit:null,emitted:null,propsDefaults:b,inheritAttrs:r.inheritAttrs,ctx:b,data:b,props:b,attrs:b,slots:b,refs:b,setupState:b,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return l.ctx={_:l},l.root=t?t.root:l,l.emit=rJ.bind(null,l),e.ce&&e.ce(l),l}(e,r,i);if(nB(e)&&(o.ctx.renderer=ec),function(e,t=!1,n=!1){t&&u(t);let{props:r,children:i}=e.vnode,l=iO(e);!function(e,t,n,r=!1){let i={},l=rx();for(let n in e.propsDefaults=Object.create(null),rk(e,t,i,l),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:tf(i):e.type.props?e.props=i:e.props=l,e.attrs=l}(e,r,l,t);var s=n||t;let o=e.slots=rx();if(32&e.vnode.shapeFlag){let e=i._;e?(rP(o,i,s),s&&Y(o,"_",e,!0)):rR(i,o)}else i&&rO(e,i);l&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,rn);let{setup:r}=n;if(r){eM();let n=e.setupContext=r.length>1?iF(e):null,i=iI(e),l=tH(r,e,0,[e.props,n]),s=D(l);if(e$(),i(),(s||e.sp)&&!nF(e)&&nN(e),s){if(l.then(iR,iR),t)return l.then(n=>{iM(e,n,t)}).catch(t=>{tW(t,e,0)});e.asyncDep=l}else iM(e,l,t)}else iL(e,t)}(e,t),t&&u(!1)}(o,!1,s),o.asyncDep){if(i&&i.registerDep(o,q,s),!e.el){let r=o.subTree=iv(ie);k(null,r,t,n),e.placeholder=r.el}}else q(o,e,t,n,i,l,s)},H=(e,t,n)=>{let r=t.component=e.component;if(function(e,t,n){let{props:r,children:i,component:l}=e,{props:s,children:o,patchFlag:a}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!i||!!o)&&(!o||!o.$stable)||r!==s&&(r?!s||rY(r,s,c):!!s);if(1024&a)return!0;if(16&a)return r?rY(r,s,c):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t{let a=()=>{if(e.isMounted){let t,{next:n,bu:r,u:i,parent:c,vnode:u}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=u.el,W(e,n,o)),t.asyncDep.then(()=>{e.isUnmounted||a()});return}}let d=n;rF(e,!1),n?(n.el=u.el,W(e,n,o)):n=u,r&&Z(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&iT(t,c,n,u),rF(e,!0);let p=rX(e),h=e.subTree;e.subTree=p,x(h,p,f(h.el),es(h),e,l,s),n.el=p.el,null===d&&r0(e,p.el),i&&rM(i,l),(t=n.props&&n.props.onVnodeUpdated)&&rM(()=>iT(t,c,n,u),l)}else{let o,{el:a,props:c}=t,{bm:u,m:d,parent:p,root:h,type:f}=e,m=nF(t);if(rF(e,!1),u&&Z(u),!m&&(o=c&&c.onVnodeBeforeMount)&&iT(o,p,t),rF(e,!0),a&&i){let t=()=>{e.subTree=rX(e),i(a,e.subTree,e,l,null)};m&&f.__asyncHydrate?f.__asyncHydrate(a,e,t):t()}else{h.ce&&!1!==h.ce._def.shadowRoot&&h.ce._injectChildStyle(f);let i=e.subTree=rX(e);x(null,i,n,r,e,l,s),t.el=i.el}if(d&&rM(d,l),!m&&(o=c&&c.onVnodeMounted)){let e=t;rM(()=>iT(o,p,e),l)}(256&t.shapeFlag||p&&nF(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&rM(e.a,l),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new eC(a);e.scope.off();let u=e.update=c.run.bind(c),d=e.job=c.runIfDirty.bind(c);d.i=e,d.id=e.uid,c.scheduler=()=>t0(d),rF(e,!0),u()},W=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){let{props:i,attrs:l,vnode:{patchFlag:s}}=e,o=tS(i),[a]=e.propsOptions,c=!1;if((r||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let r=0;r{let{vnode:r,slots:i}=e,l=!0,s=b;if(32&r.shapeFlag){let e=t._;e?n&&1===e?l=!1:rP(i,t,n):(l=!t.$stable,rR(t,i)),s=t}else t&&(rO(e,t),s={default:1});if(l)for(let e in i)rA(e)||null!=s[e]||delete i[e]})(e,t.children,n),eM(),t3(e),e$()},z=(e,t,n,r,i,l,s,o,a=!1)=>{let c=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:p,shapeFlag:f}=t;if(p>0){if(128&p)return void X(c,d,n,r,i,l,s,o,a);else if(256&p)return void G(c,d,n,r,i,l,s,o,a)}8&f?(16&u&&el(c,i,l),d!==c&&h(n,d)):16&u?16&f?X(c,d,n,r,i,l,s,o,a):el(c,i,l,!0):(8&u&&h(n,""),16&f&&O(d,n,r,i,l,s,o,a))},G=(e,t,n,r,i,l,s,o,a)=>{let c;e=e||_,t=t||_;let u=e.length,d=t.length,p=Math.min(u,d);for(c=0;cd?el(e,i,l,!0,!1,p):O(t,n,r,i,l,s,o,a,p)},X=(e,t,n,r,i,l,s,o,a)=>{let c=0,u=t.length,d=e.length-1,p=u-1;for(;c<=d&&c<=p;){let r=e[c],u=t[c]=a?ix(t[c]):iS(t[c]);if(ip(r,u))x(r,u,n,null,i,l,s,o,a);else break;c++}for(;c<=d&&c<=p;){let r=e[d],c=t[p]=a?ix(t[p]):iS(t[p]);if(ip(r,c))x(r,c,n,null,i,l,s,o,a);else break;d--,p--}if(c>d){if(c<=p){let e=p+1,d=ep)for(;c<=d;)ee(e[c],i,l,!0),c++;else{let h,f=c,m=c,g=new Map;for(c=m;c<=p;c++){let e=t[c]=a?ix(t[c]):iS(t[c]);null!=e.key&&g.set(e.key,c)}let y=0,b=p-m+1,S=!1,C=0,k=Array(b);for(c=0;c=b){ee(u,i,l,!0);continue}if(null!=u.key)r=g.get(u.key);else for(h=m;h<=p;h++)if(0===k[h-m]&&ip(u,t[h])){r=h;break}void 0===r?ee(u,i,l,!0):(k[r-m]=c+1,r>=C?C=r:S=!0,x(u,t[r],n,null,i,l,s,o,a),y++)}let T=S?function(e){let t,n,r,i,l,s=e.slice(),o=[0],a=e.length;for(t=0;t>1]]0&&(s[t]=o[r-1]),o[r]=t)}}for(r=o.length,i=o[r-1];r-- >0;)o[r]=i,i=s[i];return o}(k):_;for(h=T.length-1,c=b-1;c>=0;c--){let e=m+c,d=t[e],p=t[e+1],f=e+1{let{el:o,type:a,transition:c,children:u,shapeFlag:d}=e;if(6&d)return void Q(e.component.subTree,t,n,r);if(128&d)return void e.suspense.move(t,n,r);if(64&d)return void a.move(e,t,n,ec);if(a===r9){l(o,t,n);for(let e=0;e{let i;for(;e&&e!==t;)i=m(e),l(e,n,r),e=i;l(t,n,r)})(e,t,n);if(2!==r&&1&d&&c)if(0===r)c.beforeEnter(o),l(o,t,n),rM(()=>c.enter(o),i);else{let{leave:r,delayLeave:i,afterLeave:a}=c,u=()=>{e.ctx.isUnmounted?s(o):l(o,t,n)},d=()=>{o._isLeaving&&o[nd](!0),r(o,()=>{u(),a&&a()})};i?i(o,u,d):d()}else l(o,t,n)},ee=(e,t,n,r=!1,i=!1)=>{let l,{type:s,props:o,ref:a,children:c,dynamicChildren:u,shapeFlag:d,patchFlag:p,dirs:h,cacheIndex:f}=e;if(-2===p&&(i=!1),null!=a&&(eM(),nw(a,null,n,e,!0),e$()),null!=f&&(t.renderCache[f]=void 0),256&d)return void t.ctx.deactivate(e);let m=1&d&&h,g=!nF(e);if(g&&(l=o&&o.onVnodeBeforeUnmount)&&iT(l,t,e),6&d)ei(e.component,n,r);else{if(128&d)return void e.suspense.unmount(n,r);m&&ne(e,null,t,"beforeUnmount"),64&d?e.type.remove(e,t,n,ec,r):u&&!u.hasOnce&&(s!==r9||p>0&&64&p)?el(u,t,n,!1,!0):(s===r9&&384&p||!i&&16&d)&&el(c,t,n),r&&et(e)}(g&&(l=o&&o.onVnodeUnmounted)||m)&&rM(()=>{l&&iT(l,t,e),m&&ne(e,null,t,"unmounted")},n)},et=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===r9)return void er(n,r);if(t===it)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=m(e),s(e),e=n;s(t)})(e);let l=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,s=()=>t(n,l);r?r(e.el,l,s):s()}else l()},er=(e,t)=>{let n;for(;e!==t;)n=m(e),s(e),e=n;s(t)},ei=(e,t,n)=>{let{bum:r,scope:i,job:l,subTree:s,um:o,m:a,a:c}=e;rU(a),rU(c),r&&Z(r),i.stop(),l&&(l.flags|=8,ee(s,e,t,n)),o&&rM(o,t),rM(()=>{e.isUnmounted=!0},t)},el=(e,t,n,r=!1,i=!1,l=0)=>{for(let s=l;s{if(6&e.shapeFlag)return es(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=m(e.anchor||e.el),n=t&&t[nt];return n?m(n):t},eo=!1,ea=(e,t,n)=>{null==e?t._vnode&&ee(t._vnode,null,null,!0):x(t._vnode||null,e,t,null,null,null,n),t._vnode=e,eo||(eo=!0,t3(),t6(),eo=!1)},ec={p:x,um:ee,m:Q,r:et,mt:U,mc:O,pc:z,pbc:$,n:es,o:e};return t&&([r,i]=t(ec)),{render:ea,hydrate:r,createApp:(n=r,function(e,t=null){P(e)||(e=T({},e)),null==t||L(t)||(t=null);let r=rg(),i=new WeakSet,l=[],s=!1,o=r.app={_uid:rv++,_component:e,_props:t,_container:null,_context:r,_instance:null,version:iq,get config(){return r.config},set config(v){},use:(e,...t)=>(i.has(e)||(e&&P(e.install)?(i.add(e),e.install(o,...t)):P(e)&&(i.add(e),e(o,...t))),o),mixin:e=>(r.mixins.includes(e)||r.mixins.push(e),o),component:(e,t)=>t?(r.components[e]=t,o):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,o):r.directives[e],mount(i,l,a){if(!s){let c=o._ceVNode||iv(e,t);return c.appContext=r,!0===a?a="svg":!1===a&&(a=void 0),l&&n?n(c,i):ea(c,i,a),s=!0,o._container=i,i.__vue_app__=o,iV(c.component)}},onUnmount(e){l.push(e)},unmount(){s&&(tq(l,o._instance,16),ea(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,o),runWithContext(e){let t=ry;ry=o;try{return e()}finally{ry=t}}};return o})}}function rD({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rF({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rV(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rB(e,t,n=!1){let r=e.children,i=t.children;if(E(r)&&E(i))for(let e=0;etq(e,c,t,n);let u=!1;return"post"===s?a.scheduler=e=>{rM(e,c&&c.suspense)}:"sync"!==s&&(u=!0,a.scheduler=(e,t)=>{t?e():t0(e)}),a.augmentJob=e=>{t&&(e.flags|=4),u&&(e.flags|=2,c&&(e.id=c.uid,e.i=c))},function(e,t,n=b){let r,i,s,o,{immediate:a,deep:c,once:u,scheduler:d,augmentJob:p,call:h}=n,f=e=>c?e:tb(e)||!1===c||0===c?tj(e,1):tj(e),g=!1,y=!1;if(tT(e)?(i=()=>e.value,g=tb(e)):tv(e)?(i=()=>f(e),g=!0):E(e)?(y=!0,g=e.some(e=>tv(e)||tb(e)),i=()=>e.map(e=>tT(e)?e.value:tv(e)?f(e):P(e)?h?h(e,2):e():void 0)):i=P(e)?t?h?()=>h(e,2):e:()=>{if(s){eM();try{s()}finally{e$()}}let t=m;m=r;try{return h?h(e,3,[o]):e(o)}finally{m=t}}:S,t&&c){let e=i,t=!0===c?1/0:c;i=()=>tj(e(),t)}let _=l,x=()=>{r.stop(),_&&_.active&&N(_.effects,r)};if(u&&t){let e=t;t=(...t)=>{e(...t),x()}}let C=y?Array(e.length).fill(tV):tV,k=e=>{if(1&r.flags&&(r.dirty||e))if(t){let e=r.run();if(c||g||(y?e.some((e,t)=>Q(e,C[t])):Q(e,C))){s&&s();let n=m;m=r;try{let n=[e,C===tV?void 0:y&&C[0]===tV?[]:C,o];C=e,h?h(t,3,n):t(...n)}finally{m=n}}}else r.run()};return p&&p(k),(r=new eC(i)).scheduler=d?()=>d(k,!1):k,o=e=>tU(e,!1,r),s=r.onStop=()=>{let e=tB.get(r);if(e){if(h)h(e,4);else for(let t of e)t();tB.delete(r)}},t?a?k(!0):C=r.run():d?d(k.bind(null,!0),!0):r.run(),x.pause=r.pause.bind(r),x.resume=r.resume.bind(r),x.stop=x,x}(e,t,a)}function rW(e,t,n){let r,i=this.proxy,l=M(e)?e.includes(".")?rK(i,e):()=>i[e]:e.bind(i,i);P(t)?r=t:(r=t.handler,n=t);let s=iI(this),o=rq(l,r.bind(i),n);return s(),o}function rK(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;e"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${K(t)}Modifiers`]||e[`${J(t)}Modifiers`];function rJ(e,t,...n){let r;if(e.isUnmounted)return;let i=e.vnode.props||b,l=n,s=t.startsWith("update:"),o=s&&rz(i,t.slice(7));o&&(o.trim&&(l=n.map(e=>M(e)?e.trim():e)),o.number&&(l=n.map(ee)));let a=i[r=X(t)]||i[r=X(K(t))];!a&&s&&(a=i[r=X(J(t))]),a&&tq(a,e,6,l);let c=i[r+"Once"];if(c){if(e.emitted){if(e.emitted[r])return}else e.emitted={};e.emitted[r]=!0,tq(c,e,6,l)}}function rG(e,t){return!!e&&!!C(t)&&(A(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||A(e,J(t))||A(e,t))}function rX(e){let t,n,{type:r,vnode:i,proxy:l,withProxy:s,propsOptions:[o],slots:a,attrs:c,emit:u,render:d,renderCache:p,props:h,data:f,setupState:m,ctx:g,inheritAttrs:y}=e,b=t9(e);try{if(4&i.shapeFlag){let e=s||l;t=iS(d.call(e,e,p,h,m,f,g)),n=c}else t=iS(r.length>1?r(h,{attrs:c,slots:a,emit:u}):r(h,null)),n=r.props?c:rQ(c)}catch(n){ir.length=0,tW(n,e,1),t=iv(ie)}let _=t;if(n&&!1!==y){let e=Object.keys(n),{shapeFlag:t}=_;e.length&&7&t&&(o&&e.some(k)&&(n=rZ(n,o)),_=ib(_,n,!1,!0))}return i.dirs&&((_=ib(_,null,!1,!0)).dirs=_.dirs?_.dirs.concat(i.dirs):i.dirs),i.transition&&nC(_,i.transition),t=_,t9(b),t}let rQ=e=>{let t;for(let n in e)("class"===n||"style"===n||C(n))&&((t||(t={}))[n]=e[n]);return t},rZ=(e,t)=>{let n={};for(let r in e)k(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function rY(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;ie.__isSuspense,r2=0;function r3(e,t){let n=e.props&&e.props[t];P(n)&&n()}function r6(e,t,n,r,i,l,s,o,a,c,u=!1){let d,{p:p,m:h,um:f,n:m,o:{parentNode:g,remove:y}}=c,b=function(e){let t=e.props&&e.props.suspensible;return null!=t&&!1!==t}(e);b&&t&&t.pendingBranch&&(d=t.pendingId,t.deps++);let _=e.props?et(e.props.timeout):void 0,S=l,x={vnode:e,parent:t,parentComponent:n,namespace:s,container:r,hiddenContainer:i,deps:0,pendingId:r2++,timeout:"number"==typeof _?_:-1,activeBranch:null,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:r,activeBranch:i,pendingBranch:s,pendingId:o,effects:a,parentComponent:c,container:u}=x,p=!1;x.isHydrating?x.isHydrating=!1:!e&&((p=i&&s.transition&&"out-in"===s.transition.mode)&&(i.transition.afterLeave=()=>{o===x.pendingId&&(h(s,u,l===S?m(i):l,0),t2(a))}),i&&(g(i.el)===u&&(l=m(i)),f(i,c,x,!0)),p||h(s,u,l,0)),r5(x,s),x.pendingBranch=null,x.isInFallback=!1;let y=x.parent,_=!1;for(;y;){if(y.pendingBranch){y.effects.push(...a),_=!0;break}y=y.parent}_||p||t2(a),x.effects=[],b&&t&&t.pendingBranch&&d===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),r3(r,"onResolve")},fallback(e){if(!x.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:r,container:i,namespace:l}=x;r3(t,"onFallback");let s=m(n),c=()=>{x.isInFallback&&(p(null,e,i,s,r,null,l,o,a),r5(x,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(n.transition.afterLeave=c),x.isInFallback=!0,f(n,r,null,!0),u||c()},move(e,t,n){x.activeBranch&&h(x.activeBranch,e,t,n),x.container=e},next:()=>x.activeBranch&&m(x.activeBranch),registerDep(e,t,n){let r=!!x.pendingBranch;r&&x.deps++;let i=e.vnode.el;e.asyncDep.catch(t=>{tW(t,e,0)}).then(l=>{if(e.isUnmounted||x.isUnmounted||x.pendingId!==e.suspenseId)return;e.asyncResolved=!0;let{vnode:o}=e;iM(e,l,!1),i&&(o.el=i);let a=!i&&e.subTree.el;t(e,o,g(i||e.subTree.el),i?null:m(e.subTree),x,s,n),a&&y(a),r0(e,o.el),r&&0==--x.deps&&x.resolve()})},unmount(e,t){x.isUnmounted=!0,x.activeBranch&&f(x.activeBranch,n,e,t),x.pendingBranch&&f(x.pendingBranch,n,e,t)}};return x}function r4(e){let t;if(P(e)){let n=io&&e._c;n&&(e._d=!1,il()),e=e(),n&&(e._d=!0,t=ii,is())}return E(e)&&(e=function(e,t=!0){let n;for(let t=0;tt!==e)),e}function r8(e,t){t&&t.pendingBranch?E(e)?t.effects.push(...e):t.effects.push(e):t2(e)}function r5(e,t){e.activeBranch=t;let{vnode:n,parentComponent:r}=e,i=t.el;for(;!i&&t.component;)i=(t=t.component.subTree).el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,r0(r,i))}let r9=Symbol.for("v-fgt"),r7=Symbol.for("v-txt"),ie=Symbol.for("v-cmt"),it=Symbol.for("v-stc"),ir=[],ii=null;function il(e=!1){ir.push(ii=e?null:[])}function is(){ir.pop(),ii=ir[ir.length-1]||null}let io=1;function ia(e,t=!1){io+=e,e<0&&ii&&t&&(ii.hasOnce=!0)}function ic(e){return e.dynamicChildren=io>0?ii||_:null,is(),io>0&&ii&&ii.push(e),e}function iu(e,t,n,r,i){return ic(iv(e,t,n,r,i,!0))}function id(e){return!!e&&!0===e.__v_isVNode}function ip(e,t){return e.type===t.type&&e.key===t.key}let ih=({key:e})=>null!=e?e:null,im=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?M(e)||tT(e)||P(e)?{i:t8,r:e,k:t,f:!!n}:e:null);function ig(e,t=null,n=null,r=0,i=null,l=+(e!==r9),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ih(t),ref:t&&im(t),scopeId:t5,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:t8};return o?(iC(a,n),128&l&&e.normalize(a)):n&&(a.shapeFlag|=M(n)?8:16),io>0&&!s&&ii&&(a.patchFlag>0||6&l)&&32!==a.patchFlag&&ii.push(a),a}let iv=function(e,t=null,n=null,r=0,i=null,l=!1){var s;if(e&&e!==n8||(e=ie),id(e)){let r=ib(e,t,!0);return n&&iC(r,n),io>0&&!l&&ii&&(6&r.shapeFlag?ii[ii.indexOf(e)]=r:ii.push(r)),r.patchFlag=-2,r}if(P(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=iy(t);e&&!M(e)&&(t.class=ec(e)),L(n)&&(t_(n)&&!E(n)&&(n=T({},n)),t.style=ei(n))}let o=M(e)?1:r1(e)?128:e.__isTeleport?64:L(e)?4:2*!!P(e);return ig(e,t,n,r,i,o,l,!0)};function iy(e){return e?t_(e)||rC(e)?T({},e):e:null}function ib(e,t,n=!1,r=!1){let{props:i,ref:l,patchFlag:s,children:o,transition:a}=e,c=t?ik(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&ih(c),ref:t&&t.ref?n&&l?E(l)?l.concat(im(t)):[l,im(t)]:im(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==r9?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ib(e.ssContent),ssFallback:e.ssFallback&&ib(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&nC(u,a.clone(u)),u}function i_(e=" ",t=0){return iv(r7,null,e,t)}function iS(e){return null==e||"boolean"==typeof e?iv(ie):E(e)?iv(r9,null,e.slice()):id(e)?ix(e):iv(r7,null,String(e))}function ix(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:ib(e)}function iC(e,t){let n=0,{shapeFlag:r}=e;if(null==t)t=null;else if(E(t))n=16;else if("object"==typeof t)if(65&r){let n=t.default;n&&(n._c&&(n._d=!1),iC(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;r||rC(t)?3===r&&t8&&(1===t8.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t8}else P(t)?(t={default:t,_ctx:t8},n=32):(t=String(t),64&r?(n=16,t=[i_(t)]):n=8);e.children=t,e.shapeFlag|=n}function ik(...e){let t={};for(let n=0;niA||t8;c=e=>{iA=e},u=e=>{iP=e};let iI=e=>{let t=iA;return c(e),e.scope.on(),()=>{e.scope.off(),c(t)}},iR=()=>{iA&&iA.scope.off(),c(null)};function iO(e){return 4&e.vnode.shapeFlag}let iP=!1;function iM(e,t,n){P(t)?e.render=t:L(t)&&(e.setupState=tO(t)),iL(e,n)}function i$(e){d=e,p=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,rr))}}function iL(e,t,n){let r=e.type;if(!e.render){if(!t&&d&&!r.render){let t=r.template||ra(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:s}=r,o=T(T({isCustomElement:n,delimiters:l},i),s);r.render=d(t,o)}}e.render=r.render||S,p&&p(e)}{let t=iI(e);eM();try{!function(e){let t=ra(e),n=e.proxy,r=e.ctx;rs=!1,t.beforeCreate&&ro(t.beforeCreate,e,"bc");let{data:i,computed:l,methods:s,watch:o,provide:a,inject:c,created:u,beforeMount:d,mounted:p,beforeUpdate:h,updated:f,activated:m,deactivated:g,beforeDestroy:y,beforeUnmount:b,destroyed:_,unmounted:x,render:C,renderTracked:k,renderTriggered:T,errorCaptured:N,serverPrefetch:w,expose:A,inheritAttrs:I,components:R,directives:O,filters:$}=t;if(c&&function(e,t,n=S){for(let n in E(e)&&(e=rp(e)),e){let r,i=e[n];tT(r=L(i)?"default"in i?r_(i.from||n,i.default,!0):r_(i.from||n):r_(i))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(c,r,null),s)for(let e in s){let t=s[e];P(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);L(t)&&(e.data=th(t))}if(rs=!0,l)for(let e in l){let t=l[e],i=P(t)?t.bind(n,n):P(t.get)?t.get.bind(n,n):S,s=iU({get:i,set:!P(t)&&P(t.set)?t.set.bind(n):S});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,r,i){var l,s,o,a,c,u,d;let p=i.includes(".")?rK(r,i):()=>r[i];if(M(t)){let e=n[t];P(e)&&(l=p,s=e,rq(l,s,void 0))}else if(P(t)){o=p,a=t.bind(r),rq(o,a,void 0)}else if(L(t))if(E(t))t.forEach(t=>e(t,n,r,i));else{let e=P(t.handler)?t.handler.bind(r):n[t.handler];P(e)&&(c=p,u=e,d=t,rq(c,u,d))}}(o[e],r,n,e);if(a){let e=P(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{rb(t,e[t])})}function D(e,t){E(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(u&&ro(u,e,"c"),D(nG,d),D(nX,p),D(nQ,h),D(nZ,f),D(nj,m),D(nH,g),D(n6,N),D(n3,k),D(n2,T),D(nY,b),D(n0,x),D(n1,w),E(A))if(A.length){let t=e.exposed||(e.exposed={});A.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});C&&e.render===S&&(e.render=C),null!=I&&(e.inheritAttrs=I),R&&(e.components=R),O&&(e.directives=O)}(e)}finally{e$(),t()}}}let iD={get:(e,t)=>(eq(e,"get",""),e[t])};function iF(e){return{attrs:new Proxy(e.attrs,iD),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function iV(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tO(tx(e.exposed)),{get:(t,n)=>n in t?t[n]:n in re?re[n](e):void 0,has:(e,t)=>t in e||t in re})):e.proxy}function iB(e,t=!0){return P(e)?e.displayName||e.name:e.name||t&&e.__name}let iU=(e,t)=>(function(e,t,n=!1){let r,i;return P(e)?r=e:(r=e.get,i=e.set),new tF(r,i,n)})(e,0,iP);function ij(e,t,n){let r=arguments.length;return 2!==r?(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&id(n)&&(n=[n]),iv(e,t,n)):!L(t)||E(t)?iv(e,null,t):id(t)?iv(e,null,[t]):iv(e,t)}function iH(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e0&&ii&&ii.push(e),!0}let iq="3.5.20",iW="undefined"!=typeof window&&window.trustedTypes;if(iW)try{g=iW.createPolicy("vue",{createHTML:e=>e})}catch(e){}let iK=g?e=>g.createHTML(e):e=>e,iz="undefined"!=typeof document?document:null,iJ=iz&&iz.createElement("template"),iG="transition",iX="animation",iQ=Symbol("_vtc"),iZ={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},iY=T({},nm,iZ),i0=((t=(e,{slots:t})=>ij(ny,i3(e),t)).displayName="Transition",t.props=iY,t),i1=(e,t=[])=>{E(e)?e.forEach(e=>e(...t)):e&&e(...t)},i2=e=>!!e&&(E(e)?e.some(e=>e.length>1):e.length>1);function i3(e){let t={};for(let n in e)n in iZ||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:r,duration:i,enterFromClass:l=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=l,appearActiveClass:c=s,appearToClass:u=o,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,f=function(e){if(null==e)return null;{if(L(e))return[function(e){return et(e)}(e.enter),function(e){return et(e)}(e.leave)];let t=function(e){return et(e)}(e);return[t,t]}}(i),m=f&&f[0],g=f&&f[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:S,onLeaveCancelled:x,onBeforeAppear:C=y,onAppear:k=b,onAppearCancelled:N=_}=t,w=(e,t,n,r)=>{e._enterCancelled=r,i4(e,t?u:o),i4(e,t?c:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,i4(e,d),i4(e,h),i4(e,p),t&&t()},E=e=>(t,n)=>{let i=e?k:b,s=()=>w(t,e,n);i1(i,[t,s]),i8(()=>{i4(t,e?a:l),i6(t,e?u:o),i2(i)||i9(t,r,m,s)})};return T(t,{onBeforeEnter(e){i1(y,[e]),i6(e,l),i6(e,s)},onBeforeAppear(e){i1(C,[e]),i6(e,a),i6(e,c)},onEnter:E(!1),onAppear:E(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);i6(e,d),e._enterCancelled?(i6(e,p),ln()):(ln(),i6(e,p)),i8(()=>{e._isLeaving&&(i4(e,d),i6(e,h),i2(S)||i9(e,r,g,n))}),i1(S,[e,n])},onEnterCancelled(e){w(e,!1,void 0,!0),i1(_,[e])},onAppearCancelled(e){w(e,!0,void 0,!0),i1(N,[e])},onLeaveCancelled(e){A(e),i1(x,[e])}})}function i6(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[iQ]||(e[iQ]=new Set)).add(t)}function i4(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[iQ];n&&(n.delete(t),n.size||(e[iQ]=void 0))}function i8(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let i5=0;function i9(e,t,n,r){let i=e._endId=++i5,l=()=>{i===e._endId&&r()};if(null!=n)return setTimeout(l,n);let{type:s,timeout:o,propCount:a}=i7(e,t);if(!s)return r();let c=s+"end",u=0,d=()=>{e.removeEventListener(c,p),l()},p=t=>{t.target===e&&++u>=a&&d()};setTimeout(()=>{u(n[e]||"").split(", "),i=r(`${iG}Delay`),l=r(`${iG}Duration`),s=le(i,l),o=r(`${iX}Delay`),a=r(`${iX}Duration`),c=le(o,a),u=null,d=0,p=0;t===iG?s>0&&(u=iG,d=s,p=l.length):t===iX?c>0&&(u=iX,d=c,p=a.length):p=(u=(d=Math.max(s,c))>0?s>c?iG:iX:null)?u===iG?l.length:a.length:0;let h=u===iG&&/\b(transform|all)(,|$)/.test(r(`${iG}Property`).toString());return{type:u,timeout:d,propCount:p,hasTransform:h}}function le(e,t){for(;e.lengthlt(t)+lt(e[n])))}function lt(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function ln(){return document.body.offsetHeight}let lr=Symbol("_vod"),li=Symbol("_vsh");function ll(e,t){e.style.display=t?e[lr]:"none",e[li]=!t}let ls=Symbol("");function lo(e,t){if(1===e.nodeType){let r=e.style,i="";for(let e in t){var n;let l=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);r.setProperty(`--${e}`,l),i+=`--${e}: ${l};`}r[ls]=i}}let la=/(^|;)\s*display\s*:/,lc=/\s*!important$/;function lu(e,t,n){if(E(n))n.forEach(n=>lu(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let r=function(e,t){let n=lp[t];if(n)return n;let r=K(t);if("filter"!==r&&r in e)return lp[t]=r;r=G(r);for(let n=0;n111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),lx={};function lC(e,t,n){let r=nT(e,t);B(r)&&T(r,t);class i extends lT{constructor(e){super(r,e,n)}}return i.def=r,i}let lk="undefined"!=typeof HTMLElement?HTMLElement:class{};class lT extends lk{constructor(e,t={},n=l1){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&n!==l1?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow({mode:"open"}),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.parentNode||e.host);)if(e instanceof lT){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,tY(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null)})}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e{for(let t of e)this._setAttr(t.attributeName)}),this._ob.observe(this,{attributes:!0});let e=(e,t=!1)=>{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:r,styles:i}=e;if(r&&!E(r))for(let e in r){let t=r[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=et(this._props[e])),(n||(n=Object.create(null)))[K(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(i),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)A(this,e)||Object.defineProperty(this,e,{get:()=>tI(t[e])})}_resolveProps(e){let{props:t}=e,n=E(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(K))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!0)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):lx,r=K(e);t&&this._numberProps&&this._numberProps[r]&&(n=et(n)),this._setProp(r,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!1){if(t!==this._props[e]&&(t===lx?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),r&&this._instance&&this._update(),n)){let n=this._ob;n&&n.disconnect(),!0===t?this.setAttribute(J(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(J(e),t+""):t||this.removeAttribute(J(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),l0(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=iv(this._def,T(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{this.dispatchEvent(new CustomEvent(e,B(t[0])?T({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),J(e)!==e&&t(J(e),n)},this._setParent()}),t}_applyStyles(e,t){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let n=this._nonce;for(let t=e.length-1;t>=0;t--){let r=document.createElement("style");n&&r.setAttribute("nonce",n),r.textContent=e[t],this.shadowRoot.prepend(r)}}_parseSlots(){let e,t=this._slots={};for(;e=this.firstChild;){let n=1===e.nodeType&&e.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(e),this.removeChild(e)}}_renderSlots(){let e=(this._teleportTarget||this).querySelectorAll("slot"),t=this._instance.type.__scopeId;for(let n=0;n{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let r=e.cloneNode(),i=e[iQ];i&&i.forEach(e=>{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display="none";let l=1===t.nodeType?t:t.parentNode;l.appendChild(r);let{hasTransform:s}=i7(r);return l.removeChild(r),s}(n[0].el,i.vnode.el,t)){n=[];return}n.forEach(lO),n.forEach(lP);let r=n.filter(lM);ln(),r.forEach(e=>{let n=e.el,r=n.style;i6(n,t),r.transform=r.webkitTransform=r.transitionDuration="";let i=n[lE]=e=>{(!e||e.target===n)&&(!e||/transform$/.test(e.propertyName))&&(n.removeEventListener("transitionend",i),n[lE]=null,i4(n,t))};n.addEventListener("transitionend",i)}),n=[]}),()=>{let s=tS(e),o=i3(s),a=s.tag||r9;if(n=[],r)for(let e=0;e{let t=e.props["onUpdate:modelValue"]||!1;return E(t)?e=>Z(t,e):t};function lL(e){e.target.composing=!0}function lD(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let lF=Symbol("_assign"),lV={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[lF]=l$(i);let l=r||i.props&&"number"===i.props.type;lg(e,t?"change":"input",t=>{if(t.target.composing)return;let r=e.value;n&&(r=r.trim()),l&&(r=ee(r)),e[lF](r)}),n&&lg(e,"change",()=>{e.value=e.value.trim()}),t||(lg(e,"compositionstart",lL),lg(e,"compositionend",lD),lg(e,"change",lD))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:l}},s){if(e[lF]=l$(s),e.composing)return;let o=(l||"number"===e.type)&&!/^0\d/.test(e.value)?ee(e.value):e.value,a=null==t?"":t;if(o!==a){if(document.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===a))return;e.value=a}}},lB={deep:!0,created(e,t,n){e[lF]=l$(n),lg(e,"change",()=>{let t=e._modelValue,n=lW(e),r=e.checked,i=e[lF];if(E(t)){let e=eg(t,n),l=-1!==e;if(r&&!l)i(t.concat(n));else if(!r&&l){let n=[...t];n.splice(e,1),i(n)}}else if(R(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(lK(e,r))})},mounted:lU,beforeUpdate(e,t,n){e[lF]=l$(n),lU(e,t,n)}};function lU(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,E(t))i=eg(t,r.props.value)>-1;else if(R(t))i=t.has(r.props.value);else{if(t===n)return;i=em(t,lK(e,!0))}e.checked!==i&&(e.checked=i)}let lj={created(e,{value:t},n){e.checked=em(t,n.props.value),e[lF]=l$(n),lg(e,"change",()=>{e[lF](lW(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[lF]=l$(r),t!==n&&(e.checked=em(t,r.props.value))}},lH={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i=R(t);lg(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?ee(lW(e)):lW(e));e[lF](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,tY(()=>{e._assigning=!1})}),e[lF]=l$(r)},mounted(e,{value:t}){lq(e,t)},beforeUpdate(e,t,n){e[lF]=l$(n)},updated(e,{value:t}){e._assigning||lq(e,t)}};function lq(e,t){let n=e.multiple,r=E(t);if(!n||r||R(t)){for(let i=0,l=e.options.length;iString(e)===String(s)):l.selected=eg(t,s)>-1}else l.selected=t.has(s);else if(em(lW(l),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}n||-1===e.selectedIndex||(e.selectedIndex=-1)}}function lW(e){return"_value"in e?e._value:e.value}function lK(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}function lz(e,t,n,r,i){let l=function(e,t){switch(e){case"SELECT":return lH;case"TEXTAREA":return lV;default:switch(t){case"checkbox":return lB;case"radio":return lj;default:return lV}}}(e.tagName,n.props&&n.props.type)[i];l&&l(e,t,n,r)}let lJ=["ctrl","shift","alt","meta"],lG={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>lJ.some(n=>e[`${n}Key`]&&!t.includes(n))},lX={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},lQ=T({patchProp:(e,t,n,r,i,l)=>{let s="svg"===i;if("class"===t){var o=r;let t=e[iQ];t&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let r=e.style,i=M(n),l=!1;if(n&&!i){if(t)if(M(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&lu(r,t,"")}else for(let e in t)null==n[e]&&lu(r,e,"");for(let e in n)"display"===e&&(l=!0),lu(r,e,n[e])}else if(i){if(t!==n){let e=r[ls];e&&(n+=";"+e),r.cssText=n,l=la.test(n)}}else t&&e.removeAttribute("style");lr in e&&(e[lr]=l?r.display:"",e[li]&&(r.display="none"))}(e,n,r):C(t)?k(t)||function(e,t,n,r,i=null){let l=e[lv]||(e[lv]={}),s=l[t];if(r&&s)s.value=r;else{let[n,o]=function(e){let t;if(ly.test(e)){let n;for(t={};n=e.match(ly);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):J(e.slice(2)),t]}(t);if(r)lg(e,n,l[t]=function(e,t){let n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();tq(function(e,t){if(!E(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,n.value),t,5,[e])};return n.value=e,n.attached=lb||(l_.then(()=>lb=0),lb=Date.now()),n}(r,i),o);else s&&(e.removeEventListener(n,s,o),l[t]=void 0)}}(e,t,0,r,l):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,r){if(r)return!!("innerHTML"===t||"textContent"===t||t in e&&lS(t)&&P(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(lS(t)&&M(n))&&t in e}(e,t,r,s))?e._isVueCE&&(/[A-Z]/.test(t)||!M(r))?lm(e,K(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),lf(e,t,r,s)):(lm(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||lf(e,t,r,s,l,"value"!==t))}},{insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i="svg"===t?iz.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?iz.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?iz.createElement(e,{is:n}):iz.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>iz.createTextNode(e),createComment:e=>iz.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iz.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,l){let s=n?n.previousSibling:t.lastChild;if(i&&(i===l||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==l&&(i=i.nextSibling););else{iJ.innerHTML=iK("svg"===r?`${e}`:"mathml"===r?`${e}`:e);let i=iJ.content;if("svg"===r||"mathml"===r){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}}),lZ=!1;function lY(){return h=lZ?h:r$(lQ),lZ=!0,h}let l0=(...e)=>{(h||(h=rL(lQ))).render(...e)},l1=(...e)=>{let t=(h||(h=rL(lQ))).createApp(...e),{mount:n}=t;return t.mount=e=>{let r=l6(e);if(!r)return;let i=t._component;P(i)||i.render||i.template||(i.template=r.innerHTML),1===r.nodeType&&(r.textContent="");let l=n(r,!1,l3(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t},l2=(...e)=>{let t=lY().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=l6(e);if(t)return n(t,!0,l3(t))},t};function l3(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function l6(e){return M(e)?document.querySelector(e):e}let l4=Symbol(""),l8=Symbol(""),l5=Symbol(""),l9=Symbol(""),l7=Symbol(""),se=Symbol(""),st=Symbol(""),sn=Symbol(""),sr=Symbol(""),si=Symbol(""),sl=Symbol(""),ss=Symbol(""),so=Symbol(""),sa=Symbol(""),sc=Symbol(""),su=Symbol(""),sd=Symbol(""),sp=Symbol(""),sh=Symbol(""),sf=Symbol(""),sm=Symbol(""),sg=Symbol(""),sv=Symbol(""),sy=Symbol(""),sb=Symbol(""),s_=Symbol(""),sS=Symbol(""),sx=Symbol(""),sC=Symbol(""),sk=Symbol(""),sT=Symbol(""),sN=Symbol(""),sw=Symbol(""),sA=Symbol(""),sE=Symbol(""),sI=Symbol(""),sR=Symbol(""),sO=Symbol(""),sP=Symbol(""),sM={[l4]:"Fragment",[l8]:"Teleport",[l5]:"Suspense",[l9]:"KeepAlive",[l7]:"BaseTransition",[se]:"openBlock",[st]:"createBlock",[sn]:"createElementBlock",[sr]:"createVNode",[si]:"createElementVNode",[sl]:"createCommentVNode",[ss]:"createTextVNode",[so]:"createStaticVNode",[sa]:"resolveComponent",[sc]:"resolveDynamicComponent",[su]:"resolveDirective",[sd]:"resolveFilter",[sp]:"withDirectives",[sh]:"renderList",[sf]:"renderSlot",[sm]:"createSlots",[sg]:"toDisplayString",[sv]:"mergeProps",[sy]:"normalizeClass",[sb]:"normalizeStyle",[s_]:"normalizeProps",[sS]:"guardReactiveProps",[sx]:"toHandlers",[sC]:"camelize",[sk]:"capitalize",[sT]:"toHandlerKey",[sN]:"setBlockTracking",[sw]:"pushScopeId",[sA]:"popScopeId",[sE]:"withCtx",[sI]:"unref",[sR]:"isRef",[sO]:"withMemo",[sP]:"isMemoSame"},s$={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function sL(e,t,n,r,i,l,s,o=!1,a=!1,c=!1,u=s$){var d,p,h,f;return e&&(o?(e.helper(se),e.helper((d=e.inSSR,p=c,d||p?st:sn))):e.helper((h=e.inSSR,f=c,h||f?sr:si)),s&&e.helper(sp)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:l,directives:s,isBlock:o,disableTracking:a,isComponent:c,loc:u}}function sD(e,t=s$){return{type:17,loc:t,elements:e}}function sF(e,t=s$){return{type:15,loc:t,properties:e}}function sV(e,t){return{type:16,loc:s$,key:M(e)?sB(e,!0):e,value:t}}function sB(e,t=!1,n=s$,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function sU(e,t=s$){return{type:8,loc:t,children:e}}function sj(e,t=[],n=s$){return{type:14,loc:n,callee:e,arguments:t}}function sH(e,t,n=!1,r=!1,i=s$){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function sq(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:s$}}function sW(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,l;e.isBlock=!0,n((i=e.isComponent,r||i?sr:si)),t(se),t((l=e.isComponent,r||l?st:sn))}}let sK=new Uint8Array([123,123]),sz=new Uint8Array([125,125]);function sJ(e){return e>=97&&e<=122||e>=65&&e<=90}function sG(e){return 32===e||10===e||9===e||12===e||13===e}function sX(e){return 47===e||62===e||sG(e)}function sQ(e){let t=new Uint8Array(e.length);for(let n=0;n4===e.type&&e.isStatic;function s3(e){switch(e){case"Teleport":case"teleport":return l8;case"Suspense":case"suspense":return l5;case"KeepAlive":case"keep-alive":return l9;case"BaseTransition":case"base-transition":return l7}}let s6=/^$|^\d|[^\$\w\xA0-\uFFFF]/,s4=e=>!s6.test(e),s8=/[A-Za-z_$\xA0-\uFFFF]/,s5=/[\.\?\w$\xA0-\uFFFF]/,s9=/\s+[.[]\s*|\s*[.[]\s+/g,s7=e=>4===e.type?e.content:e.loc.source,oe=e=>{let t=s7(e).trim().replace(s9,e=>e.trim()),n=0,r=[],i=0,l=0,s=null;for(let e=0;e|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/;function on(e,t,n=!1){for(let r=0;r4===e.key.type&&e.key.content===r)}return n}function oh(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let of=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/,om={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:x,isPreTag:x,isIgnoreNewlineTag:x,isCustomElement:x,onError:sY,onWarn:s0,comments:!1,prefixIdentifiers:!1},og=om,ov=null,oy="",ob=null,o_=null,oS="",ox=-1,oC=-1,ok=0,oT=!1,oN=null,ow=[],oA=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=sK,this.delimiterClose=sz,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=sK,this.delimiterClose=sz}getPos(e){let t=1,n=e+1;for(let r=this.newlines.length-1;r>=0;r--){let i=this.newlines[r];if(e>i){t=r+2,n=e-i;break}}return{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?sX(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||sG(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=e||(28===this.state?this.currentSequence===sZ.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(ow,{onerr:oq,ontext(e,t){oP(oR(e,t),e,t)},ontextentity(e,t,n){oP(e,t,n)},oninterpolation(e,t){if(oT)return oP(oR(e,t),e,t);let n=e+oA.delimiterOpen.length,r=t-oA.delimiterClose.length;for(;sG(oy.charCodeAt(n));)n++;for(;sG(oy.charCodeAt(r-1));)r--;let i=oR(n,r);i.includes("&")&&(i=og.decodeEntities(i,!1)),oB({type:5,content:oH(i,!1,oU(n,r)),loc:oU(e,t)})},onopentagname(e,t){let n=oR(e,t);ob={type:1,tag:n,ns:og.getNamespace(n,ow[0],og.ns),tagType:0,props:[],children:[],loc:oU(e-1,t),codegenNode:void 0}},onopentagend(e){oO(e)},onclosetag(e,t){let n=oR(e,t);if(!og.isVoidTag(n)){let r=!1;for(let e=0;e0&&ow[0].loc.start.offset;for(let n=0;n<=e;n++)oM(ow.shift(),t,n(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){ob&&o_&&(oj(o_.loc,t),0!==e&&(oS.includes("&")&&(oS=og.decodeEntities(oS,!0)),6===o_.type?("class"===o_.name&&(oS=oV(oS).trim()),o_.value={type:2,content:oS,loc:1===e?oU(ox,oC):oU(ox-1,oC+1)},oA.inSFCRoot&&"template"===ob.tag&&"lang"===o_.name&&oS&&"html"!==oS&&oA.enterRCDATA(sQ("{let i=t.start.offset+n,l=i+e.length;return oH(e,!1,oU(i,l),0,+!!r)},o={source:s(l.trim(),n.indexOf(l,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},a=i.trim().replace(oI,"").trim(),c=i.indexOf(a),u=a.match(oE);if(u){let e;a=a.replace(oE,"").trim();let t=u[1].trim();if(t&&(e=n.indexOf(t,c+a.length),o.key=s(t,e,!0)),u[2]){let r=u[2].trim();r&&(o.index=s(r,n.indexOf(r,o.key?e+t.length:c+a.length),!0))}}return a&&(o.value=s(a,c,!0)),o}(o_.exp)))),(7!==o_.type||"pre"!==o_.name)&&ob.props.push(o_)),oS="",ox=oC=-1},oncomment(e,t){og.comments&&oB({type:3,content:oR(e,t),loc:oU(e-4,t+3)})},onend(){let e=oy.length;for(let t=0;t64&&n<91||s3(e)||og.isBuiltInComponent&&og.isBuiltInComponent(e)||og.isNativeTag&&!og.isNativeTag(e))return!0;for(let e=0;e=0;)n--;return n}let oL=new Set(["if","else","else-if","for","slot"]),oD=/\r\n/g;function oF(e){let t="preserve"!==og.whitespace,n=!1;for(let r=0;r3!==e.type);return 1!==t.length||1!==t[0].type||oc(t[0])?null:t[0]}function oK(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let r=n.get(e);if(void 0!==r)return r;let i=e.codegenNode;if(13!==i.type||i.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==i.patchFlag)return n.set(e,0),0;{let r=3,c=oJ(e,t);if(0===c)return n.set(e,0),0;c1)for(let i=0;i{l--};for(;lt===e:t=>e.test(t);return(e,r)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(oo))return;let l=[];for(let s=0;s`${sM[e]}: _${sM[e]}`;function o0(e,t,{helper:n,push:r,newline:i,isTS:l}){let s=n("component"===t?sa:su);for(let n=0;n3;t.push("["),n&&t.indent(),o2(e,t,n),n&&t.deindent(),t.push("]")}function o2(e,t,n=!1,r=!0){let{push:i,newline:l}=t;for(let s=0;se||"null")}([a,c,u,i,p]),t),l(")"),f&&l(")"),h&&(l(", "),o3(h,t),l(")"))}(e,t);break;case 14:var m=e,g=t;let{push:y,helper:b,pure:_}=g,S=M(m.callee)?m.callee:b(m.callee);_&&y(oZ),y(S+"(",-2,m),o2(m.arguments,g),y(")");break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:l}=t,{properties:s}=e;if(!s.length)return n("{}",-2,e);let o=s.length>1;n(o?"{":"{ "),o&&r();for(let e=0;e "),(R||I)&&(k("{"),T()),A?(R&&k("return "),E(A)?o1(A,C):o3(A,C)):I&&o3(I,C),(R||I)&&(N(),k("}")),O&&k(")");break;case 19:var P=e,L=t;let{test:D,consequent:F,alternate:V,newline:B}=P,{push:U,indent:j,deindent:H,newline:q}=L;if(4===D.type){let e=!s4(D.content);e&&U("("),o6(D,L),e&&U(")")}else U("("),o3(D,L),U(")");B&&j(),L.indentLevel++,B||U(" "),U("? "),o3(F,L),L.indentLevel--,B&&q(),B||U(" "),U(": ");let W=19===V.type;!W&&L.indentLevel++,o3(V,L),!W&&L.indentLevel--,B&&H(!0);break;case 20:var K=e,z=t;let{push:J,helper:G,indent:X,deindent:Q,newline:Z}=z,{needPauseTracking:Y,needArraySpread:ee}=K;ee&&J("[...("),J(`_cache[${K.index}] || (`),Y&&(X(),J(`${G(sN)}(-1`),K.inVOnce&&J(", true"),J("),"),Z(),J("(")),J(`_cache[${K.index}] = `),o3(K.value,z),Y&&(J(`).cacheIndex = ${K.index},`),Z(),J(`${G(sN)}(1),`),Z(),J(`_cache[${K.index}]`),Q()),J(")"),ee&&J(")]");break;case 21:o2(e.body,t,!0,!1)}}function o6(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function o4(e,t){for(let n=0;n(function(e,t,n,r){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(s1(28,t.loc)),t.exp=sB("true",!1,r)}if("if"===t.name){var i;let l=o5(e,t),s={type:9,loc:oU((i=e.loc).start.offset,i.end.offset),branches:[l]};if(n.replaceNode(s),r)return r(s,l,!0)}else{let i=n.parent.children,l=i.indexOf(e);for(;l-- >=-1;){let s=i[l];if(s&&3===s.type||s&&2===s.type&&!s.content.trim().length){n.removeNode(s);continue}if(s&&9===s.type){("else-if"===t.name||"else"===t.name)&&void 0===s.branches[s.branches.length-1].condition&&n.onError(s1(30,e.loc)),n.removeNode();let i=o5(e,t);s.branches.push(i);let l=r&&r(s,i,!1);oX(i,n),l&&l(),n.currentNode=null}else n.onError(s1(30,e.loc));break}}})(e,t,n,(e,t,r)=>{let i=n.parent.children,l=i.indexOf(e),s=0;for(;l-- >=0;){let e=i[l];e&&9===e.type&&(s+=e.branches.length)}return()=>{r?e.codegenNode=o9(t,s,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=o9(t,s+e.branches.length-1,n)}}));function o5(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!on(e,"for")?e.children:[e],userKey:or(e,"key"),isTemplateIf:n}}function o9(e,t,n){return e.condition?sq(e.condition,o7(e,t,n),sj(n.helper(sl),['""',"true"])):o7(e,t,n)}function o7(e,t,n){let{helper:r}=n,i=sV("key",sB(`${t}`,!1,s$,2)),{children:l}=e,s=l[0];if(1!==l.length||1!==s.type)if(1!==l.length||11!==s.type)return sL(n,r(l4),sF([i]),l,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=s.codegenNode;return od(e,i,n),e}{let e=s.codegenNode,t=14===e.type&&e.callee===sO?e.arguments[1].returns:e;return 13===t.type&&sW(t,n),od(t,i,n),e}}let ae=(e,t,n)=>{let{modifiers:r,loc:i}=e,l=e.arg,{exp:s}=e;if(s&&4===s.type&&!s.content.trim()&&(s=void 0),!s){if(4!==l.type||!l.isStatic)return n.onError(s1(52,l.loc)),{props:[sV(l,sB("",!0,i))]};at(e),s=e.exp}return 4!==l.type?(l.children.unshift("("),l.children.push(') || ""')):l.isStatic||(l.content=l.content?`${l.content} || ""`:'""'),r.some(e=>"camel"===e.content)&&(4===l.type?l.isStatic?l.content=K(l.content):l.content=`${n.helperString(sC)}(${l.content})`:(l.children.unshift(`${n.helperString(sC)}(`),l.children.push(")"))),!n.inSSR&&(r.some(e=>"prop"===e.content)&&an(l,"."),r.some(e=>"attr"===e.content)&&an(l,"^")),{props:[sV(l,s)]}},at=(e,t)=>{let n=e.arg;e.exp=sB(K(n.content),!1,n.loc)},an=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},ar=oQ("for",(e,t,n)=>{let{helper:r,removeHelper:i}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(s1(31,t.loc));let i=t.forParseResult;if(!i)return void n.onError(s1(32,t.loc));ai(i);let{addIdentifiers:l,removeIdentifiers:s,scopes:o}=n,{source:a,value:c,key:u,index:d}=i,p={type:11,loc:t.loc,source:a,valueAlias:c,keyAlias:u,objectIndexAlias:d,parseResult:i,children:oa(e)?e.children:[e]};n.replaceNode(p),o.vFor++;let h=r&&r(p);return()=>{o.vFor--,h&&h()}}(e,t,n,t=>{let l=sj(r(sh),[t.source]),s=oa(e),o=on(e,"memo"),a=or(e,"key",!1,!0);a&&7===a.type&&!a.exp&&at(a);let c=a&&(6===a.type?a.value?sB(a.value.content,!0):void 0:a.exp),u=a&&c?sV("key",c):null,d=4===t.source.type&&t.source.constType>0,p=d?64:a?128:256;return t.codegenNode=sL(n,r(l4),void 0,l,p,void 0,void 0,!0,!d,!1,e.loc),()=>{let a,{children:p}=t,h=1!==p.length||1!==p[0].type,f=oc(e)?e:s&&1===e.children.length&&oc(e.children[0])?e.children[0]:null;if(f)a=f.codegenNode,s&&u&&od(a,u,n);else if(h)a=sL(n,r(l4),u?sF([u]):void 0,e.children,64,void 0,void 0,!0,void 0,!1);else{var m,g,y,b,_,S,x,C;a=p[0].codegenNode,s&&u&&od(a,u,n),!d!==a.isBlock&&(a.isBlock?(i(se),i((m=n.inSSR,g=a.isComponent,m||g?st:sn))):i((y=n.inSSR,b=a.isComponent,y||b?sr:si))),(a.isBlock=!d,a.isBlock)?(r(se),r((_=n.inSSR,S=a.isComponent,_||S?st:sn))):r((x=n.inSSR,C=a.isComponent,x||C?sr:si))}if(o){let e=sH(al(t.parseResult,[sB("_cached")]));e.body={type:21,body:[sU(["const _memo = (",o.exp,")"]),sU(["if (_cached",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(sP)}(_cached, _memo)) return _cached`]),sU(["const _item = ",a]),sB("_item.memo = _memo"),sB("return _item")],loc:s$},l.arguments.push(e,sB("_cache"),sB(String(n.cached.length))),n.cached.push(null)}else l.arguments.push(sH(al(t.parseResult),a,!0))}})});function ai(e,t){e.finalized||(e.finalized=!0)}function al({value:e,key:t,index:n},r=[]){var i=[e,t,n,...r];let l=i.length;for(;l--&&!i[l];);return i.slice(0,l+1).map((e,t)=>e||sB("_".repeat(t+1),!1))}let as=sB("undefined",!1),ao=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=on(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}};function aa(e,t,n){let r=[sV("name",e),sV("fn",t)];return null!=n&&r.push(sV("key",sB(String(n),!0))),sF(r)}function ac(e){return 2!==e.type&&12!==e.type||(2===e.type?!!e.content.trim():ac(e.content))}let au=new WeakMap,ad=(e,t)=>function(){let n,r,i,l,s;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:o,props:a}=e,c=1===e.tagType,u=c?function(e,t,n=!1){let{tag:r}=e,i=af(r),l=or(e,"is",!1,!0);if(l)if(i){let e;if(6===l.type?e=l.value&&sB(l.value.content,!0):(e=l.exp)||(e=sB("is",!1,l.arg.loc)),e)return sj(t.helper(sc),[e])}else 6===l.type&&l.value.content.startsWith("vue:")&&(r=l.value.content.slice(4));let s=s3(r)||t.isBuiltInComponent(r);return s?(n||t.helper(s),s):(t.helper(sa),t.components.add(r),oh(r,"component"))}(e,t):`"${o}"`,d=L(u)&&u.callee===sc,p=0,h=d||u===l8||u===l5||!c&&("svg"===o||"foreignObject"===o||"math"===o);if(a.length>0){let r=ap(e,t,void 0,c,d);n=r.props,p=r.patchFlag,l=r.dynamicPropNames;let i=r.directives;s=i&&i.length?sD(i.map(e=>(function(e,t){let n=[],r=au.get(e);r?n.push(t.helperString(r)):(t.helper(su),t.directives.add(e.name),n.push(oh(e.name,"directive")));let{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=sB("true",!1,i);n.push(sF(e.modifiers.map(e=>sV(e,t)),i))}return sD(n,e.loc)})(e,t))):void 0,r.shouldUseBlock&&(h=!0)}if(e.children.length>0)if(u===l9&&(h=!0,p|=1024),c&&u!==l8&&u!==l9){let{slots:n,hasDynamicSlots:i}=function(e,t,n=(e,t,n,r)=>sH(e,n,!1,!0,n.length?n[0].loc:r)){t.helper(sE);let{children:r,loc:i}=e,l=[],s=[],o=t.scopes.vSlot>0||t.scopes.vFor>0,a=on(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!s2(e)&&(o=!0),l.push(sV(e||sB("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,d=[],p=new Set,h=0;for(let e=0;esV("default",n(e,void 0,t,i));c?d.length&&d.some(e=>ac(e))&&(u?t.onError(s1(39,d[0].loc)):l.push(e(void 0,d))):l.push(e(void 0,r))}let f=o?2:!function e(t){for(let n=0;n0,f=!1,m=0,g=!1,y=!1,b=!1,_=!1,S=!1,x=!1,k=[],T=e=>{u.length&&(d.push(sF(ah(u),a)),u=[]),e&&d.push(e)},N=()=>{t.scopes.vFor>0&&u.push(sV(sB("ref_for",!0),sB("true")))},w=({key:e,value:n})=>{if(s2(e)){let l=e.content,s=C(l);s&&(!r||i)&&"onclick"!==l.toLowerCase()&&"onUpdate:modelValue"!==l&&!j(l)&&(_=!0),s&&j(l)&&(x=!0),s&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&oK(n,t)>0||("ref"===l?g=!0:"class"===l?y=!0:"style"===l?b=!0:"key"===l||k.includes(l)||k.push(l),r&&("class"===l||"style"===l)&&!k.includes(l)&&k.push(l))}else S=!0};for(let i=0;i"prop"===e.content)&&(m|=32);let x=t.directiveTransforms[n];if(x){let{props:n,needRuntime:r}=x(s,e,t);l||n.forEach(w),_&&i&&!s2(i)?T(sF(n,a)):u.push(...n),r&&(p.push(s),$(r)&&au.set(s,r))}else!H(n)&&(p.push(s),h&&(f=!0))}}if(d.length?(T(),s=d.length>1?sj(t.helper(sv),d,a):d[0]):u.length&&(s=sF(ah(u),a)),S?m|=16:(y&&!r&&(m|=2),b&&!r&&(m|=4),k.length&&(m|=8),_&&(m|=32)),!f&&(0===m||32===m)&&(g||x||p.length>0)&&(m|=512),!t.inSSR&&s)switch(s.type){case 15:let A=-1,E=-1,I=!1;for(let e=0;e{if(oc(e)){let{children:n,loc:r}=e,{slotName:i,slotProps:l}=function(e,t){let n,r='"default"',i=[];for(let t=0;t0){let{props:r,directives:l}=ap(e,t,i,!1,!1);n=r,l.length&&t.onError(s1(36,l[0].loc))}return{slotName:r,slotProps:n}}(e,t),s=[t.prefixIdentifiers?"_ctx.$slots":"$slots",i,"{}","undefined","true"],o=2;l&&(s[2]=l,o=3),n.length&&(s[3]=sH([],n,!1,!1,r),o=4),t.scopeId&&!t.slotted&&(o=5),s.splice(o),e.codegenNode=sj(t.helper(sf),s,r)}},ag=(e,t,n,r)=>{let i,{loc:l,modifiers:s,arg:o}=e;if(!e.exp&&!s.length,4===o.type)if(o.isStatic){let e=o.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),i=sB(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?X(K(e)):`on:${e}`,!0,o.loc)}else i=sU([`${n.helperString(sT)}(`,o,")"]);else(i=o).children.unshift(`${n.helperString(sT)}(`),i.children.push(")");let a=e.exp;a&&!a.content.trim()&&(a=void 0);let c=n.cacheHandlers&&!a&&!n.inVOnce;if(a){let e,t=oe(a),n=!(t||(e=a,ot.test(s7(e)))),r=a.content.includes(";");(n||c&&t)&&(a=sU([`${n?"$event":"(...args)"} => ${r?"{":"("}`,a,r?"}":")"]))}let u={props:[sV(i,a||sB("() => {}",!1,l))]};return r&&(u=r(u)),c&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach(e=>e.key.isHandlerKey=!0),u},av=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,r=e.children,i=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name]))))for(let e=0;e{if(1===e.type&&on(e,"once",!0)&&!ay.has(e)&&!t.inVOnce&&!t.inSSR)return ay.add(e),t.inVOnce=!0,t.helper(sN),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},a_=(e,t,n)=>{let r,{exp:i,arg:l}=e;if(!i)return n.onError(s1(41,e.loc)),aS();let s=i.loc.source.trim(),o=4===i.type?i.content:s,a=n.bindingMetadata[s];if("props"===a||"props-aliased"===a)return i.loc,aS();if(!o.trim()||!oe(i))return n.onError(s1(42,i.loc)),aS();let c=l||sB("modelValue",!0),u=l?s2(l)?`onUpdate:${K(l.content)}`:sU(['"onUpdate:" + ',l]):"onUpdate:modelValue",d=n.isTS?"($event: any)":"$event";r=sU([`${d} => ((`,i,") = $event)"]);let p=[sV(c,e.exp),sV(u,r)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(s4(e)?e:JSON.stringify(e))+": true").join(", "),n=l?s2(l)?`${l.content}Modifiers`:sU([l,' + "Modifiers"']):"modelModifiers";p.push(sV(n,sB(`{ ${t} }`,!1,e.loc,2)))}return aS(p)};function aS(e=[]){return{props:e}}let ax=new WeakSet,aC=(e,t)=>{if(1===e.type){let n=on(e,"memo");if(!(!n||ax.has(e))&&!t.inSSR)return ax.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&sW(r,t),e.codegenNode=sj(t.helper(sO),[n.exp,sH(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}},ak=Symbol(""),aT=Symbol(""),aN=Symbol(""),aw=Symbol(""),aA=Symbol(""),aE=Symbol(""),aI=Symbol(""),aR=Symbol(""),aO=Symbol(""),aP=Symbol("");Object.getOwnPropertySymbols(r={[ak]:"vModelRadio",[aT]:"vModelCheckbox",[aN]:"vModelText",[aw]:"vModelSelect",[aA]:"vModelDynamic",[aE]:"withModifiers",[aI]:"withKeys",[aR]:"vShow",[aO]:"Transition",[aP]:"TransitionGroup"}).forEach(e=>{sM[e]=r[e]});let aM={parseMode:"html",isVoidTag:eh,isNativeTag:e=>eu(e)||ed(e)||ep(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,t=!1){return(f||(f=document.createElement("div")),t)?(f.innerHTML=`
    `,f.children[0].getAttribute("foo")):(f.innerHTML=e,f.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?aO:"TransitionGroup"===e||"transition-group"===e?aP:void 0,getNamespace(e,t,n){let r=t?t.ns:n;if(t&&2===r)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(r=0);else t&&1===r&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(r=0);if(0===r){if("svg"===e)return 1;if("math"===e)return 2}return r}},a$=y("passive,once,capture"),aL=y("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),aD=y("left,right"),aF=y("onkeyup,onkeydown,onkeypress"),aV=(e,t)=>s2(e)&&"onclick"===e.content.toLowerCase()?sB(t,!0):4!==e.type?sU(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,aB=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},aU=[e=>{1===e.type&&e.props.forEach((t,n)=>{let r,i;6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:sB("style",!0,t.loc),exp:(r=t.value.content,i=t.loc,sB(JSON.stringify(ea(r)),!1,i,3)),modifiers:[],loc:t.loc})})}],aj={cloak:()=>({props:[]}),html:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s1(53,i)),t.children.length&&(n.onError(s1(54,i)),t.children.length=0),{props:[sV(sB("innerHTML",!0,i),r||sB("",!0))]}},text:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s1(55,i)),t.children.length&&(n.onError(s1(56,i)),t.children.length=0),{props:[sV(sB("textContent",!0),r?oK(r,n)>0?r:sj(n.helperString(sg),[r],i):sB("",!0))]}},model:(e,t,n)=>{let r=a_(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(s1(58,e.arg.loc));let{tag:i}=t,l=n.isCustomElement(i);if("input"===i||"textarea"===i||"select"===i||l){let s=aN,o=!1;if("input"===i||l){let r=or(t,"type");if(r){if(7===r.type)s=aA;else if(r.value)switch(r.value.content){case"radio":s=ak;break;case"checkbox":s=aT;break;case"file":o=!0,n.onError(s1(59,e.loc))}}else t.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))&&(s=aA)}else"select"===i&&(s=aw);o||(r.needRuntime=n.helper(s))}else n.onError(s1(57,e.loc));return r.props=r.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),r},on:(e,t,n)=>ag(e,t,n,t=>{let{modifiers:r}=e;if(!r.length)return t;let{key:i,value:l}=t.props[0],{keyModifiers:s,nonKeyModifiers:o,eventOptionModifiers:a}=((e,t,n,r)=>{let i=[],l=[],s=[];for(let n=0;n{let{exp:r,loc:i}=e;return r||n.onError(s1(61,i)),{props:[],needRuntime:n.helper(aR)}}},aH=Object.create(null);function aq(e,t){if(!M(e))if(!e.nodeType)return S;else e=e.innerHTML;let n=e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t),r=aH[n];if(r)return r;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let i=T({hoistStatic:!0,onError:void 0,onWarn:S},t);i.isCustomElement||"undefined"==typeof customElements||(i.isCustomElement=e=>!!customElements.get(e));let{code:l}=function(e,t={}){return function(e,t={}){let n=t.onError||sY,r="module"===t.mode;!0===t.prefixIdentifiers?n(s1(47)):r&&n(s1(48)),t.cacheHandlers&&n(s1(49)),t.scopeId&&!r&&n(s1(50));let i=T({},t,{prefixIdentifiers:!1}),l=M(e)?function(e,t){if(oA.reset(),ob=null,o_=null,oS="",ox=-1,oC=-1,ow.length=0,oy=e,og=T({},om),t){let e;for(e in t)null!=t[e]&&(og[e]=t[e])}oA.mode="html"===og.parseMode?1:2*("sfc"===og.parseMode),oA.inXML=1===og.ns||2===og.ns;let n=t&&t.delimiters;n&&(oA.delimiterOpen=sQ(n[0]),oA.delimiterClose=sQ(n[1]));let r=ov=function(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:s$}}([],e);return oA.parse(oy),r.loc=oU(0,e.length),r.children=oF(r.children),ov=null,r}(e,i):e,[s,o]=[[ab,o8,aC,ar,am,ad,ao,av],{on:ag,bind:ae,model:a_}];var a=T({},i,{nodeTransforms:[...s,...t.nodeTransforms||[]],directiveTransforms:T({},o,t.directiveTransforms||{})});let c=function(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,hmr:i=!1,cacheHandlers:l=!1,nodeTransforms:s=[],directiveTransforms:o={},transformHoist:a=null,isBuiltInComponent:c=S,isCustomElement:u=S,expressionPlugins:d=[],scopeId:p=null,slotted:h=!0,ssr:f=!1,inSSR:m=!1,ssrCssVars:g="",bindingMetadata:y=b,inline:_=!1,isTS:x=!1,onError:C=sY,onWarn:k=s0,compatConfig:T}){let N=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),w={filename:t,selfName:N&&G(K(N[1])),prefixIdentifiers:n,hoistStatic:r,hmr:i,cacheHandlers:l,nodeTransforms:s,directiveTransforms:o,transformHoist:a,isBuiltInComponent:c,isCustomElement:u,expressionPlugins:d,scopeId:p,slotted:h,ssr:f,inSSR:m,ssrCssVars:g,bindingMetadata:y,inline:_,isTS:x,onError:C,onWarn:k,compatConfig:T,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=w.helpers.get(e)||0;return w.helpers.set(e,t+1),e},removeHelper(e){let t=w.helpers.get(e);if(t){let n=t-1;n?w.helpers.set(e,n):w.helpers.delete(e)}},helperString:e=>`_${sM[w.helper(e)]}`,replaceNode(e){w.parent.children[w.childIndex]=w.currentNode=e},removeNode(e){let t=w.parent.children,n=e?t.indexOf(e):w.currentNode?w.childIndex:-1;e&&e!==w.currentNode?w.childIndex>n&&(w.childIndex--,w.onNodeRemoved()):(w.currentNode=null,w.onNodeRemoved()),w.parent.children.splice(n,1)},onNodeRemoved:S,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){M(e)&&(e=sB(e)),w.hoists.push(e);let t=sB(`_hoisted_${w.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=function(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:s$}}(w.cached.length,e,t,n);return w.cached.push(r),r}};return w}(l,a);return oX(l,c),a.hoistStatic&&function e(t,n,r,i=!1,l=!1){let{children:s}=t,o=[];for(let n=0;n0){if(e>=2){a.codegenNode.patchFlag=-1,o.push(a);continue}}else{let e=a.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&oJ(a,r)>=2){let t=oG(a);t&&(e.props=r.hoist(t))}e.dynamicProps&&(e.dynamicProps=r.hoist(e.dynamicProps))}}}else if(12===a.type&&(i?0:oK(a,r))>=2){14===a.codegenNode.type&&a.codegenNode.arguments.length>0&&a.codegenNode.arguments.push("-1"),o.push(a);continue}if(1===a.type){let n=1===a.tagType;n&&r.scopes.vSlot++,e(a,t,r,!1,l),n&&r.scopes.vSlot--}else if(11===a.type)e(a,t,r,1===a.children.length,!0);else if(9===a.type)for(let n=0;ne.key===t||e.key.content===t);return n&&n.value}}o.length&&r.transformHoist&&r.transformHoist(s,r,t)}(l,void 0,c,!!oW(l)),a.ssr||function(e,t){let{helper:n}=t,{children:r}=e;if(1===r.length){let n=oW(e);if(n&&n.codegenNode){let r=n.codegenNode;13===r.type&&sW(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=sL(t,n(l4),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(l,c),l.helpers=new Set([...c.helpers.keys()]),l.components=[...c.components],l.directives=[...c.directives],l.imports=c.imports,l.hoists=c.hoists,l.temps=c.temps,l.cached=c.cached,l.transformed=!0,function(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:i="template.vue.html",scopeId:l=null,optimizeImports:s=!1,runtimeGlobalName:o="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:d=!1,inSSR:p=!1}){let h={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:l,optimizeImports:s,runtimeGlobalName:o,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:d,inSSR:p,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${sM[e]}`,push(e,t=-2,n){h.code+=e},indent(){f(++h.indentLevel)},deindent(e=!1){e?--h.indentLevel:f(--h.indentLevel)},newline(){f(h.indentLevel)}};function f(e){h.push(` -`+" ".repeat(e),0)}return h}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:r,push:i,prefixIdentifiers:l,indent:s,deindent:o,newline:a,scopeId:c,ssr:u}=n,d=Array.from(e.helpers),p=d.length>0,h=!l&&"module"!==r;var f=e,m=n;let{ssr:g,prefixIdentifiers:y,push:b,newline:_,runtimeModuleName:S,runtimeGlobalName:x,ssrRuntimeModuleName:C}=m,k=Array.from(f.helpers);if(k.length>0&&(b(`const _Vue = ${x} -`,-1),f.hoists.length)){let e=[sr,si,sl,ss,so].filter(e=>k.includes(e)).map(oY).join(", ");b(`const { ${e} } = _Vue -`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:r}=t;r();for(let i=0;i0)&&a()),e.directives.length&&(o0(e.directives,"directive",n),e.temps>0&&a()),e.temps>0){i("let ");for(let t=0;t0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(i(` -`,0),a()),u||i("return "),e.codegenNode?o3(e.codegenNode,n):i("null"),h&&(o(),i("}")),o(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(l,i)}(e,T({},aM,t,{nodeTransforms:[aB,...aU,...t.nodeTransforms||[]],directiveTransforms:T({},aj,t.directiveTransforms||{}),transformHoist:null}))}(e,i),s=Function(l)();return s._rc=!0,aH[n]=s}return i$(aq),e.BaseTransition=ny,e.BaseTransitionPropsValidators=nm,e.Comment=ie,e.DeprecationTypes=null,e.EffectScope=eS,e.ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},e.ErrorTypeStrings=null,e.Fragment=r9,e.KeepAlive={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=iE(),r=n.ctx,i=new Map,l=new Set,s=null,o=n.suspense,{renderer:{p:a,m:c,um:u,o:{createElement:d}}}=r,p=d("div");function h(e){nW(e),u(e,n,o,!0)}function f(e){i.forEach((t,n)=>{let r=iB(t.type);r&&!e(r)&&m(n)})}function m(e){let t=i.get(e);!t||s&&ip(t,s)?s&&nW(s):h(t),i.delete(e),l.delete(e)}r.activate=(e,t,n,r,i)=>{let l=e.component;c(e,t,n,0,o),a(l.vnode,e,t,n,l,o,r,e.slotScopeIds,i),rM(()=>{l.isDeactivated=!1,l.a&&Z(l.a);let t=e.props&&e.props.onVnodeMounted;t&&iT(t,l.parent,e)},o)},r.deactivate=e=>{let t=e.component;rU(t.m),rU(t.a),c(e,p,null,1,o),rM(()=>{t.da&&Z(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&iT(n,t.parent,e),t.isDeactivated=!0},o)},rq(()=>[e.include,e.exclude],([e,t])=>{e&&f(t=>nU(e,t)),t&&f(e=>!nU(t,e))},{flush:"post",deep:!0});let g=null,y=()=>{null!=g&&(r1(n.subTree.type)?rM(()=>{i.set(g,nK(n.subTree))},n.subTree.suspense):i.set(g,nK(n.subTree)))};return nX(y),nZ(y),nY(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=nK(t);if(e.type===i.type&&e.key===i.key){nW(i);let e=i.component.da;e&&rM(e,r);return}h(e)})}),()=>{if(g=null,!t.default)return s=null;let n=t.default(),r=n[0];if(n.length>1)return s=null,n;if(!id(r)||!(4&r.shapeFlag)&&!(128&r.shapeFlag))return s=null,r;let o=nK(r);if(o.type===ie)return s=null,o;let a=o.type,c=iB(nF(o)?o.type.__asyncResolved||{}:a),{include:u,exclude:d,max:p}=e;if(u&&(!c||!nU(u,c))||d&&c&&nU(d,c))return o.shapeFlag&=-257,s=o,r;let h=null==o.key?a:o.key,f=i.get(h);return o.el&&(o=ib(o),128&r.shapeFlag&&(r.ssContent=o)),g=h,f?(o.el=f.el,o.component=f.component,o.transition&&nC(o,o.transition),o.shapeFlag|=512,l.delete(h),l.add(h)):(l.add(h),p&&l.size>parseInt(p,10)&&m(l.values().next().value)),o.shapeFlag|=256,s=o,r1(r.type)?r:o}}},e.ReactiveEffect=eC,e.Static=it,e.Suspense={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,l,s,o,a,c){if(null==e){var u=t,d=n,p=r,h=i,f=l,m=s,g=o,y=a,b=c;let{p:e,o:{createElement:_}}=b,S=_("div"),x=u.suspense=r6(u,f,h,d,S,p,m,g,y,b);e(null,x.pendingBranch=u.ssContent,S,null,h,x,m,g),x.deps>0?(r3(u,"onPending"),r3(u,"onFallback"),e(null,u.ssFallback,d,p,h,null,m,g),r5(x,u.ssFallback)):x.resolve(!1,!0)}else{if(l&&l.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,r,i,l,s,o,{p:a,um:c,o:{createElement:u}}){let d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;let p=t.ssContent,h=t.ssFallback,{activeBranch:f,pendingBranch:m,isInFallback:g,isHydrating:y}=d;if(m)d.pendingBranch=p,ip(p,m)?(a(m,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():g&&!y&&(a(f,h,n,r,i,null,l,s,o),r5(d,h))):(d.pendingId=r2++,y?(d.isHydrating=!1,d.activeBranch=m):c(m,i,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u("div"),g?(a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():(a(f,h,n,r,i,null,l,s,o),r5(d,h))):f&&ip(p,f)?(a(f,p,n,r,i,d,l,s,o),d.resolve(!0)):(a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0&&d.resolve()));else if(f&&ip(p,f))a(f,p,n,r,i,d,l,s,o),r5(d,p);else if(r3(t,"onPending"),d.pendingBranch=p,512&p.shapeFlag?d.pendingId=p.component.suspenseId:d.pendingId=r2++,a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0)d.resolve();else{let{timeout:e,pendingId:t}=d;e>0?setTimeout(()=>{d.pendingId===t&&d.fallback(h)},e):0===e&&d.fallback(h)}}(e,t,n,r,i,s,o,a,c)}},hydrate:function(e,t,n,r,i,l,s,o,a){let c=t.suspense=r6(t,r,n,e.parentNode,document.createElement("div"),null,i,l,s,o,!0),u=a(e,c.pendingBranch=t.ssContent,n,c,l,s);return 0===c.deps&&c.resolve(!1,!0),u},normalize:function(e){let{shapeFlag:t,children:n}=e,r=32&t;e.ssContent=r4(r?n.default:n),e.ssFallback=r?r4(n.fallback):iv(ie)}},e.Teleport=no,e.Text=r7,e.TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},e.Transition=i0,e.TransitionGroup=lR,e.TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},e.VueElement=lT,e.assertNumber=function(e,t){},e.callWithAsyncErrorHandling=tq,e.callWithErrorHandling=tH,e.camelize=K,e.capitalize=G,e.cloneVNode=ib,e.compatUtils=null,e.compile=aq,e.computed=iU,e.createApp=l1,e.createBlock=iu,e.createCommentVNode=function(e="",t=!1){return t?(il(),iu(ie,null,e)):iv(ie,null,e)},e.createElementBlock=function(e,t,n,r,i,l){return ic(ig(e,t,n,r,i,l,!0))},e.createElementVNode=ig,e.createHydrationRenderer=r$,e.createPropsRestProxy=function(e,t){let n={};for(let r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n},e.createRenderer=function(e){return rL(e)},e.createSSRApp=l2,e.createSlots=function(e,t){for(let n=0;n{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e},e.createStaticVNode=function(e,t){let n=iv(it,null,e);return n.staticCount=t,n},e.createTextVNode=i_,e.createVNode=iv,e.customRef=tM,e.defineAsyncComponent=function(e){let t;P(e)&&(e={loader:e});let{loader:n,loadingComponent:r,errorComponent:i,delay:l=200,hydrate:s,timeout:o,suspensible:a=!0,onError:c}=e,u=null,d=0,p=()=>{let e;return u||(e=u=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t((d++,u=null,p())),()=>n(e),d+1)});throw e}).then(n=>e!==u&&u?u:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nT({name:"AsyncComponentWrapper",__asyncLoader:p,__asyncHydrate(e,n,r){let i=!1;(n.bu||(n.bu=[])).push(()=>i=!0);let l=()=>{i||r()},o=s?()=>{let t=s(l,t=>(function(e,t){if(nR(e)&&"["===e.data){let n=1,r=e.nextSibling;for(;r;){if(1===r.nodeType){if(!1===t(r))break}else if(nR(r))if("]"===r.data){if(0==--n)break}else"["===r.data&&n++;r=r.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:l;t?o():p().then(()=>!n.isUnmounted&&o())},get __asyncResolved(){return t},setup(){let e=iA;if(nN(e),t)return()=>nV(t,e);let n=t=>{u=null,tW(t,e,13,!i)};if(a&&e.suspense)return p().then(t=>()=>nV(t,e)).catch(e=>(n(e),()=>i?iv(i,{error:e}):null));let s=tN(!1),c=tN(),d=tN(!!l);return l&&setTimeout(()=>{d.value=!1},l),null!=o&&setTimeout(()=>{if(!s.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),c.value=e}},o),p().then(()=>{s.value=!0,e.parent&&nB(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),c.value=e}),()=>s.value&&t?nV(t,e):c.value&&i?iv(i,{error:c.value}):r&&!d.value?iv(r):void 0}})},e.defineComponent=nT,e.defineCustomElement=lC,e.defineEmits=function(){return null},e.defineExpose=function(e){},e.defineModel=function(){},e.defineOptions=function(e){},e.defineProps=function(){return null},e.defineSSRCustomElement=(e,t)=>lC(e,t,l2),e.defineSlots=function(){return null},e.devtools=void 0,e.effect=function(e,t){e.effect instanceof eC&&(e=e.effect.fn);let n=new eC(e);t&&T(n,t);try{n.run()}catch(e){throw n.stop(),e}let r=n.run.bind(n);return r.effect=n,r},e.effectScope=function(e){return new eS(e)},e.getCurrentInstance=iE,e.getCurrentScope=function(){return l},e.getCurrentWatcher=function(){return m},e.getTransitionRawChildren=nk,e.guardReactiveProps=iy,e.h=ij,e.handleError=tW,e.hasInjectionContext=function(){return!!(iE()||ry)},e.hydrate=(...e)=>{lY().hydrate(...e)},e.hydrateOnIdle=(e=1e4)=>t=>{let n=nL(t,{timeout:e});return()=>nD(n)},e.hydrateOnInteraction=(e=[])=>(t,n)=>{M(e)&&(e=[e]);let r=!1,i=e=>{r||(r=!0,l(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},l=()=>{n(t=>{for(let n of e)t.removeEventListener(n,i)})};return n(t=>{for(let n of e)t.addEventListener(n,i,{once:!0})}),l},e.hydrateOnMediaQuery=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},e.hydrateOnVisible=e=>(t,n)=>{let r=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){r.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:l,innerWidth:s}=window;return(t>0&&t0&&r0&&n0&&ir.disconnect()},e.initCustomFormatter=function(){},e.initDirectivesForSSR=S,e.inject=r_,e.isMemoSame=iH,e.isProxy=t_,e.isReactive=tv,e.isReadonly=ty,e.isRef=tT,e.isRuntimeOnly=()=>!d,e.isShallow=tb,e.isVNode=id,e.markRaw=tx,e.mergeDefaults=function(e,t){let n=rl(e);for(let e in t){if(e.startsWith("__skip"))continue;let r=n[e];r?E(r)||P(r)?r=n[e]={type:r,default:t[e]}:r.default=t[e]:null===r&&(r=n[e]={default:t[e]}),r&&t[`__skip_${e}`]&&(r.skipFactory=!0)}return n},e.mergeModels=function(e,t){return e&&t?E(e)&&E(t)?e.concat(t):T({},rl(e),rl(t)):e||t},e.mergeProps=ik,e.nextTick=tY,e.normalizeClass=ec,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!M(t)&&(e.class=ec(t)),n&&(e.style=ei(n)),e},e.normalizeStyle=ei,e.onActivated=nj,e.onBeforeMount=nG,e.onBeforeUnmount=nY,e.onBeforeUpdate=nQ,e.onDeactivated=nH,e.onErrorCaptured=n6,e.onMounted=nX,e.onRenderTracked=n3,e.onRenderTriggered=n2,e.onScopeDispose=function(e,t=!1){l&&l.cleanups.push(e)},e.onServerPrefetch=n1,e.onUnmounted=n0,e.onUpdated=nZ,e.onWatcherCleanup=tU,e.openBlock=il,e.popScopeId=function(){t5=null},e.provide=rb,e.proxyRefs=tO,e.pushScopeId=function(e){t5=e},e.queuePostFlushCb=t2,e.reactive=th,e.readonly=tm,e.ref=tN,e.registerRuntimeCompiler=i$,e.render=l0,e.renderList=function(e,t,n,r){let i,l=n&&n[r],s=E(e);if(s||M(e)){let n=s&&tv(e),r=!1,o=!1;n&&(r=!tb(e),o=ty(e),e=ez(e)),i=Array(e.length);for(let n=0,s=e.length;nt(e,n,void 0,l&&l[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,s=n.length;r!id(t)||t.type!==ie&&(t.type!==r9||!!e(t.children)))?t:null}(l(n)),o=n.key||s&&s.key,a=iu(r9,{key:(o&&!$(o)?o:`_${t}`)+(!s&&r?"_fb":"")},s||(r?r():[]),s&&1===e._?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),l&&l._c&&(l._d=!0),a},e.resolveComponent=function(e,t){return n5(n4,e,!0,t)||e},e.resolveDirective=function(e){return n5("directives",e)},e.resolveDynamicComponent=function(e){return M(e)?n5(n4,e,!1)||e:e||n8},e.resolveFilter=null,e.resolveTransitionHooks=n_,e.setBlockTracking=ia,e.setDevtoolsHook=S,e.setTransitionHooks=nC,e.shallowReactive=tf,e.shallowReadonly=function(e){return tg(e,!0,te,ta,tp)},e.shallowRef=tw,e.ssrContextKey=rj,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=ey,e.toHandlerKey=X,e.toHandlers=function(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:X(r)]=e[r];return n},e.toRaw=tS,e.toRef=function(e,t,n){return tT(e)?e:P(e)?new tL(e):L(e)&&arguments.length>1?tD(e,t,n):tN(e)},e.toRefs=function(e){let t=E(e)?Array(e.length):{};for(let n in e)t[n]=tD(e,n);return t},e.toValue=function(e){return P(e)?e():tI(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=tI,e.useAttrs=function(){return ri().attrs},e.useCssModule=function(e="$style"){return b},e.useCssVars=function(e){let t=iE();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>lo(e,n))},r=()=>{let r=e(t.proxy);t.ce?lo(t.ce,r):function e(t,n){if(128&t.shapeFlag){let r=t.suspense;t=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{e(r.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)lo(t.el,n);else if(t.type===r9)t.children.forEach(t=>e(t,n));else if(t.type===it){let{el:e,anchor:r}=t;for(;e&&(lo(e,n),e!==r);)e=e.nextSibling}}(t.subTree,r),n(r)};nQ(()=>{t2(r)}),nX(()=>{rq(r,S,{flush:"post"});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),n0(()=>e.disconnect())})},e.useHost=lN,e.useId=function(){let e=iE();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""},e.useModel=function(e,t,n=b){let r=iE(),i=K(t),l=J(t),s=rz(e,i),o=tM((s,o)=>{let a,c,u=b;return rH(()=>{let t=e[i];Q(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!Q(s,a)&&!(u!==b&&Q(e,u)))return;let d=r.vnode.props;d&&(t in d||i in d||l in d)&&(`onUpdate:${t}`in d||`onUpdate:${i}`in d||`onUpdate:${l}`in d)||(a=e,o()),r.emit(`update:${t}`,s),Q(e,s)&&Q(e,u)&&!Q(s,c)&&o(),u=e,c=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||b:o,done:!1}:{done:!0}}},o},e.useSSRContext=()=>{},e.useShadowRoot=function(){let e=lN();return e&&e.shadowRoot},e.useSlots=function(){return ri().slots},e.useTemplateRef=function(e){let t=iE(),n=tw(null);return t&&Object.defineProperty(t.refs===b?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n},e.useTransitionState=nh,e.vModelCheckbox=lB,e.vModelDynamic={created(e,t,n){lz(e,t,n,null,"created")},mounted(e,t,n){lz(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){lz(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){lz(e,t,n,r,"updated")}},e.vModelRadio=lj,e.vModelSelect=lH,e.vModelText=lV,e.vShow={name:"show",beforeMount(e,{value:t},{transition:n}){e[lr]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):ll(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),ll(e,!0),r.enter(e)):r.leave(e,()=>{ll(e,!1)}):ll(e,t))},beforeUnmount(e,{value:t}){ll(e,t)}},e.version=iq,e.warn=S,e.watch=function(e,t,n){return rq(e,t,n)},e.watchEffect=function(e,t){return rq(e,null,t)},e.watchPostEffect=function(e,t){return rq(e,null,{flush:"post"})},e.watchSyncEffect=rH,e.withAsyncContext=function(e){let t=iE(),n=e();return iR(),D(n)&&(n=n.catch(e=>{throw iI(t),e})),[n,()=>iI(t)]},e.withCtx=t7,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){if(null===t8)return e;let n=iV(t8),r=e.dirs||(e.dirs=[]);for(let e=0;e{let n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=n=>{if(!("key"in n))return;let r=J(n.key);if(t.some(e=>e===r||lX[e]===r))return e(n)})},e.withMemo=function(e,t,n,r){let i=n[r];if(i&&iH(i,e))return i;let l=t();return l.memo=e.slice(),l.cacheIndex=r,n[r]=l},e.withModifiers=(e,t)=>{let n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(n,...r)=>{for(let e=0;et7,e}({}); \ No newline at end of file +**/var Vue=function(e){"use strict";var t,n,r;let i,l,s,o,a,c,u,d,p,h,f,m,g;function y(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let b={},_=[],S=()=>{},x=()=>!1,C=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),k=e=>e.startsWith("onUpdate:"),T=Object.assign,N=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},w=Object.prototype.hasOwnProperty,A=(e,t)=>w.call(e,t),E=Array.isArray,I=e=>"[object Map]"===V(e),R=e=>"[object Set]"===V(e),O=e=>"[object Date]"===V(e),M=e=>"function"==typeof e,P=e=>"string"==typeof e,L=e=>"symbol"==typeof e,$=e=>null!==e&&"object"==typeof e,D=e=>($(e)||M(e))&&M(e.then)&&M(e.catch),F=Object.prototype.toString,V=e=>F.call(e),B=e=>"[object Object]"===V(e),U=e=>P(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,j=y(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),H=y("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),q=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},W=/-\w/g,K=q(e=>e.replace(W,e=>e.slice(1).toUpperCase())),z=/\B([A-Z])/g,J=q(e=>e.replace(z,"-$1").toLowerCase()),G=q(e=>e.charAt(0).toUpperCase()+e.slice(1)),X=q(e=>e?`on${G(e)}`:""),Q=(e,t)=>!Object.is(e,t),Z=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ee=e=>{let t=parseFloat(e);return isNaN(t)?e:t},et=e=>{let t=P(e)?Number(e):NaN;return isNaN(t)?e:t},en=()=>i||(i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}),er=y("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function ei(e){if(E(e)){let t={};for(let n=0;n{if(e){let n=e.split(es);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ec(e){let t="";if(P(e))t=e;else if(E(e))for(let n=0;nem(e,t))}let ev=e=>!!(e&&!0===e.__v_isRef),ey=e=>P(e)?e:null==e?"":E(e)||$(e)&&(e.toString===F||!M(e.toString))?ev(e)?ey(e.value):JSON.stringify(e,eb,2):String(e),eb=(e,t)=>{if(ev(t))return eb(e,t.value);if(I(t))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[e_(t,r)+" =>"]=n,e),{})};if(R(t))return{[`Set(${t.size})`]:[...t.values()].map(e=>e_(e))};if(L(t))return e_(t);if($(t)&&!E(t)&&!B(t))return String(t);return t},e_=(e,t="")=>{var n;return L(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class eS{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=l,!e&&l&&(this.index=(l.scopes||(l.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0==--this._on&&(l=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t0)){if(a){let e=a;for(a=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;o;){let t=o;for(o=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function ew(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eA(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),eR(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function eE(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eI(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function eI(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eD)||(e.globalVersion=eD,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!eE(e))))return;e.flags|=2;let t=e.dep,n=s,r=eO;s=e,eO=!0;try{ew(e);let n=e.fn(e._value);(0===t.version||Q(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{s=n,eO=r,eA(e),e.flags&=-3}}function eR(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)eR(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let eO=!0,eM=[];function eP(){eM.push(eO),eO=!1}function eL(){let e=eM.pop();eO=void 0===e||e}function e$(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=s;s=void 0;try{t()}finally{s=e}}}let eD=0;class eF{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class eV{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!s||!eO||s===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==s)t=this.activeLink=new eF(s,this),s.deps?(t.prevDep=s.depsTail,s.depsTail.nextDep=t,s.depsTail=t):s.deps=s.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=s.depsTail,t.nextDep=void 0,s.depsTail.nextDep=t,s.depsTail=t,s.deps===t&&(s.deps=e)}return t}trigger(e){this.version++,eD++,this.notify(e)}notify(e){ek++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{eN()}}}let eB=new WeakMap,eU=Symbol(""),ej=Symbol(""),eH=Symbol("");function eq(e,t,n){if(eO&&s){let t=eB.get(e);t||eB.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new eV),r.map=t,r.key=n),r.track()}}function eW(e,t,n,r,i,l){let s=eB.get(e);if(!s)return void eD++;let o=e=>{e&&e.trigger()};if(ek++,"clear"===t)s.forEach(o);else{let i=E(e),l=i&&U(n);if(i&&"length"===n){let e=Number(r);s.forEach((t,n)=>{("length"===n||n===eH||!L(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),l&&o(s.get(eH)),t){case"add":i?l&&o(s.get("length")):(o(s.get(eU)),I(e)&&o(s.get(ej)));break;case"delete":!i&&(o(s.get(eU)),I(e)&&o(s.get(ej)));break;case"set":I(e)&&o(s.get(eU))}}eN()}function eK(e){let t=tS(e);return t===e?t:(eq(t,"iterate",eH),tb(e)?t:t.map(tC))}function ez(e){return eq(e=tS(e),"iterate",eH),e}let eJ={__proto__:null,[Symbol.iterator](){return eG(this,Symbol.iterator,tC)},concat(...e){return eK(this).concat(...e.map(e=>E(e)?eK(e):e))},entries(){return eG(this,"entries",e=>(e[1]=tC(e[1]),e))},every(e,t){return eQ(this,"every",e,t,void 0,arguments)},filter(e,t){return eQ(this,"filter",e,t,e=>e.map(tC),arguments)},find(e,t){return eQ(this,"find",e,t,tC,arguments)},findIndex(e,t){return eQ(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return eQ(this,"findLast",e,t,tC,arguments)},findLastIndex(e,t){return eQ(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return eQ(this,"forEach",e,t,void 0,arguments)},includes(...e){return eY(this,"includes",e)},indexOf(...e){return eY(this,"indexOf",e)},join(e){return eK(this).join(e)},lastIndexOf(...e){return eY(this,"lastIndexOf",e)},map(e,t){return eQ(this,"map",e,t,void 0,arguments)},pop(){return e0(this,"pop")},push(...e){return e0(this,"push",e)},reduce(e,...t){return eZ(this,"reduce",e,t)},reduceRight(e,...t){return eZ(this,"reduceRight",e,t)},shift(){return e0(this,"shift")},some(e,t){return eQ(this,"some",e,t,void 0,arguments)},splice(...e){return e0(this,"splice",e)},toReversed(){return eK(this).toReversed()},toSorted(e){return eK(this).toSorted(e)},toSpliced(...e){return eK(this).toSpliced(...e)},unshift(...e){return e0(this,"unshift",e)},values(){return eG(this,"values",tC)}};function eG(e,t,n){let r=ez(e),i=r[t]();return r===e||tb(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.value&&(e.value=n(e.value)),e}),i}let eX=Array.prototype;function eQ(e,t,n,r,i,l){let s=ez(e),o=s!==e&&!tb(e),a=s[t];if(a!==eX[t]){let t=a.apply(e,l);return o?tC(t):t}let c=n;s!==e&&(o?c=function(t,r){return n.call(this,tC(t),r,e)}:n.length>2&&(c=function(t,r){return n.call(this,t,r,e)}));let u=a.call(s,c,r);return o&&i?i(u):u}function eZ(e,t,n,r){let i=ez(e),l=n;return i!==e&&(tb(e)?n.length>3&&(l=function(t,r,i){return n.call(this,t,r,i,e)}):l=function(t,r,i){return n.call(this,t,tC(r),i,e)}),i[t](l,...r)}function eY(e,t,n){let r=tS(e);eq(r,"iterate",eH);let i=r[t](...n);return(-1===i||!1===i)&&t_(n[0])?(n[0]=tS(n[0]),r[t](...n)):i}function e0(e,t,n=[]){eP(),ek++;let r=tS(e)[t].apply(e,n);return eN(),eL(),r}let e1=y("__proto__,__v_isRef,__isVue"),e2=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(L));function e6(e){L(e)||(e=String(e));let t=tS(this);return eq(t,"has",e),t.hasOwnProperty(e)}class e3{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;if("__v_raw"===t)return n===(r?i?tp:td:i?tu:tc).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let l=E(e);if(!r){let e;if(l&&(e=eJ[t]))return e;if("hasOwnProperty"===t)return e6}let s=Reflect.get(e,t,tT(e)?e:n);return(L(t)?e2.has(t):e1(t))||(r||eq(e,"get",t),i)?s:tT(s)?l&&U(t)?s:s.value:$(s)?r?tm(s):th(s):s}}class e4 extends e3{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t];if(!this._isShallow){let t=ty(i);if(tb(n)||ty(n)||(i=tS(i),n=tS(n)),!E(e)&&tT(i)&&!tT(n))if(t)return!0;else return i.value=n,!0}let l=E(e)&&U(t)?Number(t)e,tn=e=>Reflect.getPrototypeOf(e);function tr(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function ti(e,t){let n=function(e,t){let n={get(n){let r=this.__v_raw,i=tS(r),l=tS(n);e||(Q(n,l)&&eq(i,"get",n),eq(i,"get",l));let{has:s}=tn(i),o=t?tt:e?tk:tC;return s.call(i,n)?o(r.get(n)):s.call(i,l)?o(r.get(l)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||eq(tS(t),"iterate",eU),t.size},has(t){let n=this.__v_raw,r=tS(n),i=tS(t);return e||(Q(t,i)&&eq(r,"has",t),eq(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,l=i.__v_raw,s=tS(l),o=t?tt:e?tk:tC;return e||eq(s,"iterate",eU),l.forEach((e,t)=>n.call(r,o(e),o(t),i))}};return T(n,e?{add:tr("add"),set:tr("set"),delete:tr("delete"),clear:tr("clear")}:{add(e){t||tb(e)||ty(e)||(e=tS(e));let n=tS(this);return tn(n).has.call(n,e)||(n.add(e),eW(n,"add",e,e)),this},set(e,n){t||tb(n)||ty(n)||(n=tS(n));let r=tS(this),{has:i,get:l}=tn(r),s=i.call(r,e);s||(e=tS(e),s=i.call(r,e));let o=l.call(r,e);return r.set(e,n),s?Q(n,o)&&eW(r,"set",e,n):eW(r,"add",e,n),this},delete(e){let t=tS(this),{has:n,get:r}=tn(t),i=n.call(t,e);i||(e=tS(e),i=n.call(t,e)),r&&r.call(t,e);let l=t.delete(e);return i&&eW(t,"delete",e,void 0),l},clear(){let e=tS(this),t=0!==e.size,n=e.clear();return t&&eW(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i=this.__v_raw,l=tS(i),s=I(l),o="entries"===r||r===Symbol.iterator&&s,a=i[r](...n),c=t?tt:e?tk:tC;return e||eq(l,"iterate","keys"===r&&s?ej:eU),{next(){let{value:e,done:t}=a.next();return t?{value:e,done:t}:{value:o?[c(e[0]),c(e[1])]:c(e),done:t}},[Symbol.iterator](){return this}}}}),n}(e,t);return(t,r,i)=>"__v_isReactive"===r?!e:"__v_isReadonly"===r?e:"__v_raw"===r?t:Reflect.get(A(n,r)&&r in t?n:t,r,i)}let tl={get:ti(!1,!1)},ts={get:ti(!1,!0)},to={get:ti(!0,!1)},ta={get:ti(!0,!0)},tc=new WeakMap,tu=new WeakMap,td=new WeakMap,tp=new WeakMap;function th(e){return ty(e)?e:tg(e,!1,e5,tl,tc)}function tf(e){return tg(e,!1,e7,ts,tu)}function tm(e){return tg(e,!0,e9,to,td)}function tg(e,t,n,r,i){var l;if(!$(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let s=(l=e).__v_skip||!Object.isExtensible(l)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}(V(l).slice(8,-1));if(0===s)return e;let o=i.get(e);if(o)return o;let a=new Proxy(e,2===s?r:n);return i.set(e,a),a}function tv(e){return ty(e)?tv(e.__v_raw):!!(e&&e.__v_isReactive)}function ty(e){return!!(e&&e.__v_isReadonly)}function tb(e){return!!(e&&e.__v_isShallow)}function t_(e){return!!e&&!!e.__v_raw}function tS(e){let t=e&&e.__v_raw;return t?tS(t):e}function tx(e){return!A(e,"__v_skip")&&Object.isExtensible(e)&&Y(e,"__v_skip",!0),e}let tC=e=>$(e)?th(e):e,tk=e=>$(e)?tm(e):e;function tT(e){return!!e&&!0===e.__v_isRef}function tN(e){return tA(e,!1)}function tw(e){return tA(e,!0)}function tA(e,t){return tT(e)?e:new tE(e,t)}class tE{constructor(e,t){this.dep=new eV,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:tS(e),this._value=t?e:tC(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tb(e)||ty(e);Q(e=n?e:tS(e),t)&&(this._rawValue=e,this._value=n?e:tC(e),this.dep.trigger())}}function tI(e){return tT(e)?e.value:e}let tR={get:(e,t,n)=>"__v_raw"===t?e:tI(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return tT(i)&&!tT(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tO(e){return tv(e)?e:new Proxy(e,tR)}class tM{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new eV,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tP(e){return new tM(e)}class tL{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0}get value(){let e=this._object[this._key];return this._value=void 0===e?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return function(e,t){let n=eB.get(e);return n&&n.get(t)}(tS(this._object),this._key)}}class t${constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function tD(e,t,n){let r=e[t];return tT(r)?r:new tL(e,t,n)}class tF{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eV(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eD-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&s!==this)return eT(this,!0),!0}get value(){let e=this.dep.track();return eI(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tV={},tB=new WeakMap;function tU(e,t=!1,n=m){if(n){let t=tB.get(n);t||tB.set(n,t=[]),t.push(e)}}function tj(e,t=1/0,n){if(t<=0||!$(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,tT(e))tj(e.value,t,n);else if(E(e))for(let r=0;r{tj(e,t,n)});else if(B(e)){for(let r in e)tj(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&tj(e[r],t,n)}return e}function tH(e,t,n,r){try{return r?e(...r):e()}catch(e){tW(e,t,n)}}function tq(e,t,n,r){if(M(e)){let i=tH(e,t,n,r);return i&&D(i)&&i.catch(e=>{tW(e,t,n)}),i}if(E(e)){let i=[];for(let l=0;l=t4(n)?tK.push(e):tK.splice(function(e){let t=tz+1,n=tK.length;for(;t>>1,i=tK[r],l=t4(i);lt4(e)-t4(t));if(tJ.length=0,tG)return void tG.push(...e);for(tX=0,tG=e;tXnull==e.id?2&e.flags?-1:1/0:e.id,t8=null,t5=null;function t9(e){let t=t8;return t8=e,t5=e&&e.type.__scopeId||null,t}function t7(e,t=t8,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&id(-1);let l=t9(t);try{i=e(...n)}finally{t9(l),r._d&&id(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function ne(e,t,n,r){let i=e.dirs,l=t&&t.dirs;for(let s=0;se&&(e.disabled||""===e.disabled),nr=e=>e&&(e.defer||""===e.defer),ni=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,nl=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,ns=(e,t)=>{let n=e&&e.to;return P(n)?t?t(n):null:n},no={name:"Teleport",__isTeleport:!0,process(e,t,n,r,i,l,s,o,a,c){let{mc:u,pc:d,pbc:p,o:{insert:h,querySelector:f,createText:m}}=c,g=nn(t.props),{shapeFlag:y,children:b,dynamicChildren:_}=t;if(null==e){let e=t.el=m(""),c=t.anchor=m("");h(e,n,r),h(c,n,r);let d=(e,t)=>{16&y&&(i&&i.isCE&&(i.ce._teleportTarget=e),u(b,e,t,i,l,s,o,a))},p=()=>{let e=t.target=ns(t.props,f),n=nu(e,t,m,h);e&&("svg"!==s&&ni(e)?s="svg":"mathml"!==s&&nl(e)&&(s="mathml"),g||(d(e,n),nc(t,!1)))};g&&(d(n,c),nc(t,!0)),nr(t.props)?(t.el.__isMounted=!1,r$(()=>{p(),delete t.el.__isMounted},l)):p()}else{if(nr(t.props)&&!1===e.el.__isMounted)return void r$(()=>{no.process(e,t,n,r,i,l,s,o,a,c)},l);t.el=e.el,t.targetStart=e.targetStart;let u=t.anchor=e.anchor,h=t.target=e.target,m=t.targetAnchor=e.targetAnchor,y=nn(e.props),b=y?n:h,S=y?u:m;if("svg"===s||ni(h)?s="svg":("mathml"===s||nl(h))&&(s="mathml"),_?(p(e.dynamicChildren,_,b,i,l,s,o),rj(e,t,!0)):a||d(e,t,b,S,i,l,s,o,!1),g)y?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):na(t,n,u,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=ns(t.props,f);e&&na(t,e,null,c,0)}else y&&na(t,h,m,c,1);nc(t,g)}},remove(e,t,n,{um:r,o:{remove:i}},l){let{shapeFlag:s,children:o,anchor:a,targetStart:c,targetAnchor:u,target:d,props:p}=e;if(d&&(i(c),i(u)),l&&i(a),16&s){let e=l||!nn(p);for(let i=0;i{e.isMounted=!0}),n1(()=>{e.isUnmounting=!0}),e}let nf=[Function,Array],nm={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:nf,onEnter:nf,onAfterEnter:nf,onEnterCancelled:nf,onBeforeLeave:nf,onLeave:nf,onAfterLeave:nf,onLeaveCancelled:nf,onBeforeAppear:nf,onAppear:nf,onAfterAppear:nf,onAppearCancelled:nf},ng=e=>{let t=e.subTree;return t.component?ng(t.component):t};function nv(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==ii){t=n;break}}return t}let ny={name:"BaseTransition",props:nm,setup(e,{slots:t}){let n=iO(),r=nh();return()=>{let i=t.default&&nk(t.default(),!0);if(!i||!i.length)return;let l=nv(i),s=tS(e),{mode:o}=s;if(r.isLeaving)return nS(l);let a=nx(l);if(!a)return nS(l);let c=n_(a,s,r,n,e=>c=e);a.type!==ii&&nC(a,c);let u=n.subTree&&nx(n.subTree);if(u&&u.type!==ii&&!ig(u,a)&&ng(n).type!==ii){let e=n_(u,s,r,n);if(nC(u,e),"out-in"===o&&a.type!==ii)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,u=void 0},nS(l);"in-out"===o&&a.type!==ii?e.delayLeave=(e,t,n)=>{nb(r,u)[String(u.key)]=u,e[nd]=()=>{t(),e[nd]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{n(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return l}}};function nb(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function n_(e,t,n,r,i){let{appear:l,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:h,onAfterLeave:f,onLeaveCancelled:m,onBeforeAppear:g,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,S=String(e.key),x=nb(n,e),C=(e,t)=>{e&&tq(e,r,9,t)},k=(e,t)=>{let n=t[1];C(e,t),E(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:s,persisted:o,beforeEnter(t){let r=a;if(!n.isMounted)if(!l)return;else r=g||a;t[nd]&&t[nd](!0);let i=x[S];i&&ig(e,i)&&i.el[nd]&&i.el[nd](),C(r,[t])},enter(e){let t=c,r=u,i=d;if(!n.isMounted)if(!l)return;else t=y||c,r=b||u,i=_||d;let s=!1,o=e[np]=t=>{s||(s=!0,t?C(i,[e]):C(r,[e]),T.delayedLeave&&T.delayedLeave(),e[np]=void 0)};t?k(t,[e,o]):o()},leave(t,r){let i=String(e.key);if(t[np]&&t[np](!0),n.isUnmounting)return r();C(p,[t]);let l=!1,s=t[nd]=n=>{l||(l=!0,r(),n?C(m,[t]):C(f,[t]),t[nd]=void 0,x[i]===e&&delete x[i])};x[i]=e,h?k(h,[t,s]):s()},clone(e){let l=n_(e,t,n,r,i);return i&&i(l),l}};return T}function nS(e){if(nj(e))return(e=ix(e)).children=null,e}function nx(e){if(!nj(e))return e.type.__isTeleport&&e.children?nv(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&M(n.default))return n.default()}}function nC(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nC(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nk(e,t=!1,n){let r=[],i=0;for(let l=0;l1)for(let e=0;enA(e,t&&(E(t)?t[l]:t),n,r,i));if(nB(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&nA(e,t,n,r.component.subTree);return}let l=4&r.shapeFlag?ij(r.component):r.el,s=i?null:l,{i:o,r:a}=e,c=t&&t.r,u=o.refs===b?o.refs={}:o.refs,d=o.setupState,p=tS(d),h=d===b?x:e=>A(p,e);if(null!=c&&c!==a&&((nE(t),P(c))?(u[c]=null,h(c)&&(d[c]=null)):tT(c)&&(c.value=null,t.k&&(u[t.k]=null))),M(a))tH(a,o,12,[s,u]);else{let t=P(a),r=tT(a);if(t||r){let o=()=>{if(e.f){let n=t?h(a)?d[a]:u[a]:a.value;if(i)E(n)&&N(n,l);else if(E(n))n.includes(l)||n.push(l);else if(t)u[a]=[l],h(a)&&(d[a]=u[a]);else{let t=[l];a.value=t,e.k&&(u[e.k]=t)}}else t?(u[a]=s,h(a)&&(d[a]=s)):r&&(a.value=s,e.k&&(u[e.k]=s))};if(s){let t=()=>{o(),nw.delete(e)};t.id=-1,nw.set(e,t),r$(t,n)}else nE(e),o()}}}function nE(e){let t=nw.get(e);t&&(t.flags|=8,nw.delete(e))}let nI=!1,nR=()=>{nI||(console.error("Hydration completed but contains mismatches."),nI=!0)},nO=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},nM=e=>8===e.nodeType;function nP(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:l,parentNode:s,remove:o,insert:a,createComment:c}}=e,u=(n,r,o,c,b,_=!1)=>{_=_||!!r.dynamicChildren;let S=nM(n)&&"["===n.data,x=()=>f(n,r,o,c,b,S),{type:C,ref:k,shapeFlag:T,patchFlag:N}=r,w=n.nodeType;r.el=n,-2===N&&(_=!1,r.dynamicChildren=null);let A=null;switch(C){case ir:3!==w?""===r.children?(a(r.el=i(""),s(n),n),A=n):A=x():(n.data!==r.children&&(nR(),n.data=r.children),A=l(n));break;case ii:y(n)?(A=l(n),g(r.el=n.content.firstChild,n,o)):A=8!==w||S?x():l(n);break;case il:if(S&&(w=(n=l(n)).nodeType),1===w||3===w){A=n;let e=!r.children.length;for(let t=0;t{s=s||!!t.dynamicChildren;let{type:a,props:c,patchFlag:u,shapeFlag:d,dirs:h,transition:f}=t,m="input"===a||"option"===a;if(m||-1!==u){let a;h&&ne(t,null,n,"created");let b=!1;if(y(e)){b=rU(null,f)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(b){let e=r.getAttribute("class");e&&(r.$cls=e),f.beforeEnter(r)}g(r,e,n),t.el=e=r}if(16&d&&!(c&&(c.innerHTML||c.textContent))){let r=p(e.firstChild,t,e,n,i,l,s);for(;r;){nD(e,1)||nR();let t=r;r=r.nextSibling,o(t)}}else if(8&d){let n=t.children;` +`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1)),e.textContent!==n&&(nD(e,0)||nR(),e.textContent=t.children)}if(c){if(m||!s||48&u){let t=e.tagName.includes("-");for(let i in c)(m&&(i.endsWith("value")||"indeterminate"===i)||C(i)&&!j(i)||"."===i[0]||t)&&r(e,i,null,c[i],void 0,n)}else if(c.onClick)r(e,"onClick",null,c.onClick,void 0,n);else if(4&u&&tv(c.style))for(let e in c.style)c.style[e]}(a=c&&c.onVnodeBeforeMount)&&iA(a,n,t),h&&ne(t,null,n,"beforeMount"),((a=c&&c.onVnodeMounted)||h||b)&&r7(()=>{a&&iA(a,n,t),b&&f.enter(e),h&&ne(t,null,n,"mounted")},i)}return e.nextSibling},p=(e,t,r,s,o,c,d)=>{d=d||!!t.dynamicChildren;let p=t.children,h=p.length;for(let t=0;t{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let d=s(e),h=p(l(e),t,d,n,r,i,o);return h&&nM(h)&&"]"===h.data?l(t.anchor=h):(nR(),a(t.anchor=c("]"),d,h),h)},f=(e,t,r,i,a,c)=>{if(nD(e.parentElement,1)||nR(),t.el=null,c){let t=m(e);for(;;){let n=l(e);if(n&&n!==t)o(n);else break}}let u=l(e),d=s(e);return o(e),n(null,t,d,u,r,i,nO(d),a),r&&(r.vnode.el=t.el,r6(r,t.el)),u},m=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=l(e))&&nM(e)&&(e.data===t&&r++,e.data===n))if(0===r)return l(e);else r--;return e},g=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),t3(),t._vnode=e;return}u(t.firstChild,e,null,null,null),t3(),t._vnode=e},u]}let nL="data-allow-mismatch",n$={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function nD(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nL);)e=e.parentElement;let n=e&&e.getAttribute(nL);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(n$[t])}}let nF=en().requestIdleCallback||(e=>setTimeout(e,1)),nV=en().cancelIdleCallback||(e=>clearTimeout(e)),nB=e=>!!e.type.__asyncLoader;function nU(e,t){let{ref:n,props:r,children:i,ce:l}=t.vnode,s=i_(e,r,i);return s.ref=n,s.ce=l,delete t.vnode.ce,s}let nj=e=>e.type.__isKeepAlive;function nH(e,t){return E(e)?e.some(e=>nH(e,t)):P(e)?e.split(",").includes(t):"[object RegExp]"===V(e)&&(e.lastIndex=0,e.test(t))}function nq(e,t){nK(e,"a",t)}function nW(e,t){nK(e,"da",t)}function nK(e,t,n=iR){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(nG(t,r,n),n){let e=n.parent;for(;e&&e.parent;)nj(e.parent.vnode)&&function(e,t,n,r){let i=nG(t,e,r,!0);n2(()=>{N(r[t],i)},n)}(r,t,n,e),e=e.parent}}function nz(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function nJ(e){return 128&e.shapeFlag?e.ssContent:e}function nG(e,t,n=iR,r=!1){if(n){let i=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...r)=>{eP();let i=iM(n),l=tq(t,n,e,r);return i(),eL(),l});return r?i.unshift(l):i.push(l),l}}let nX=e=>(t,n=iR)=>{i$&&"sp"!==e||nG(e,(...e)=>t(...e),n)},nQ=nX("bm"),nZ=nX("m"),nY=nX("bu"),n0=nX("u"),n1=nX("bum"),n2=nX("um"),n6=nX("sp"),n3=nX("rtg"),n4=nX("rtc");function n8(e,t=iR){nG("ec",e,t)}let n5="components",n9=Symbol.for("v-ndc");function n7(e,t,n=!0,r=!1){let i=t8||iR;if(i){let n=i.type;if(e===n5){let e=iH(n,!1);if(e&&(e===t||e===K(t)||e===G(K(t))))return n}let l=re(i[e]||n[e],t)||re(i.appContext[e],t);return!l&&r?n:l}}function re(e,t){return e&&(e[t]||e[K(t)]||e[G(K(t))])}let rt=e=>e?iL(e)?ij(e):rt(e.parent):null,rn=T(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>rt(e.parent),$root:e=>rt(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ru(e),$forceUpdate:e=>e.f||(e.f=()=>{t0(e.update)}),$nextTick:e=>e.n||(e.n=tY.bind(e.proxy)),$watch:e=>rz.bind(e)}),rr=(e,t)=>e!==b&&!e.__isScriptSetup&&A(e,t),ri={get({_:e},t){let n,r,i;if("__v_skip"===t)return!0;let{ctx:l,setupState:s,data:o,props:a,accessCache:c,type:u,appContext:d}=e;if("$"!==t[0]){let r=c[t];if(void 0!==r)switch(r){case 1:return s[t];case 2:return o[t];case 4:return l[t];case 3:return a[t]}else{if(rr(s,t))return c[t]=1,s[t];if(o!==b&&A(o,t))return c[t]=2,o[t];if((n=e.propsOptions[0])&&A(n,t))return c[t]=3,a[t];if(l!==b&&A(l,t))return c[t]=4,l[t];ra&&(c[t]=0)}}let p=rn[t];return p?("$attrs"===t&&eq(e.attrs,"get",""),p(e)):(r=u.__cssModules)&&(r=r[t])?r:l!==b&&A(l,t)?(c[t]=4,l[t]):A(i=d.config.globalProperties,t)?i[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:l}=e;return rr(i,t)?(i[t]=n,!0):r!==b&&A(r,t)?(r[t]=n,!0):!A(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:l,type:s}},o){let a,c;return!!(n[o]||e!==b&&"$"!==o[0]&&A(e,o)||rr(t,o)||(a=l[0])&&A(a,o)||A(r,o)||A(rn,o)||A(i.config.globalProperties,o)||(c=s.__cssModules)&&c[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:A(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},rl=T({},ri,{get(e,t){if(t!==Symbol.unscopables)return ri.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!er(t)});function rs(e){let t=iO();return t.setupContext||(t.setupContext=iU(t))}function ro(e){return E(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let ra=!0;function rc(e,t,n){tq(E(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function ru(e){let t,n=e.type,{mixins:r,extends:i}=n,{mixins:l,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:l.length||r||i?(t={},l.length&&l.forEach(e=>rd(t,e,o,!0)),rd(t,n,o)):t=n,$(n)&&s.set(n,t),t}function rd(e,t,n,r=!1){let{mixins:i,extends:l}=t;for(let s in l&&rd(e,l,n,!0),i&&i.forEach(t=>rd(e,t,n,!0)),t)if(r&&"expose"===s);else{let r=rp[s]||n&&n[s];e[s]=r?r(e[s],t[s]):t[s]}return e}let rp={data:rh,props:rv,emits:rv,methods:rg,computed:rg,beforeCreate:rm,created:rm,beforeMount:rm,mounted:rm,beforeUpdate:rm,updated:rm,beforeDestroy:rm,beforeUnmount:rm,destroyed:rm,unmounted:rm,activated:rm,deactivated:rm,errorCaptured:rm,serverPrefetch:rm,components:rg,directives:rg,watch:function(e,t){if(!e)return t;if(!t)return e;let n=T(Object.create(null),e);for(let r in t)n[r]=rm(e[r],t[r]);return n},provide:rh,inject:function(e,t){return rg(rf(e),rf(t))}};function rh(e,t){return t?e?function(){return T(M(e)?e.call(this,this):e,M(t)?t.call(this,this):t)}:t:e}function rf(e){if(E(e)){let t={};for(let n=0;n1)return n&&M(t)?t.call(r&&r.proxy):t}}let rC={},rk=()=>Object.create(rC),rT=e=>Object.getPrototypeOf(e)===rC;function rN(e,t,n,r){let i,[l,s]=e.propsOptions,o=!1;if(t)for(let a in t){let c;if(j(a))continue;let u=t[a];l&&A(l,c=K(a))?s&&s.includes(c)?(i||(i={}))[c]=u:n[c]=u:rZ(e.emitsOptions,a)||a in r&&u===r[a]||(r[a]=u,o=!0)}if(s){let t=tS(n),r=i||b;for(let i=0;i"_"===e||"_ctx"===e||"$stable"===e,rR=e=>E(e)?e.map(ik):[ik(e)],rO=(e,t,n)=>{if(t._n)return t;let r=t7((...e)=>rR(t(...e)),n);return r._c=!1,r},rM=(e,t,n)=>{let r=e._ctx;for(let n in e){if(rI(n))continue;let i=e[n];if(M(i))t[n]=rO(n,i,r);else if(null!=i){let e=rR(i);t[n]=()=>e}}},rP=(e,t)=>{let n=rR(t);e.slots.default=()=>n},rL=(e,t,n)=>{for(let r in t)(n||!rI(r))&&(e[r]=t[r])},r$=r7;function rD(e){return rF(e,nP)}function rF(e,t){var n;let r,i;en().__VUE__=!0;let{insert:l,remove:s,patchProp:o,createElement:a,createText:c,createComment:d,setText:p,setElementText:h,parentNode:f,nextSibling:m,setScopeId:g=S,insertStaticContent:y}=e,x=(e,t,n,r=null,i=null,l=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!ig(e,t)&&(r=es(e),ee(e,i,l,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:c,ref:u,shapeFlag:d}=t;switch(c){case ir:C(e,t,n,r);break;case ii:k(e,t,n,r);break;case il:null==e&&N(t,n,r,s);break;case it:V(e,t,n,r,i,l,s,o,a);break;default:1&d?w(e,t,n,r,i,l,s,o,a):6&d?B(e,t,n,r,i,l,s,o,a):64&d?c.process(e,t,n,r,i,l,s,o,a,ec):128&d&&c.process(e,t,n,r,i,l,s,o,a,ec)}null!=u&&i?nA(u,e&&e.ref,l,t||e,!t):null==u&&e&&null!=e.ref&&nA(e.ref,null,l,e,!0)},C=(e,t,n,r)=>{if(null==e)l(t.el=c(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&p(n,t.children)}},k=(e,t,n,r)=>{null==e?l(t.el=d(t.children||""),n,r):t.el=e.el},N=(e,t,n,r)=>{[e.el,e.anchor]=y(e.children,t,n,r,e.el,e.anchor)},w=(e,t,n,r,i,l,s,o,a)=>{"svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e?I(t,n,r,i,l,s,o,a):P(e,t,i,l,s,o,a)},I=(e,t,n,r,i,s,c,u)=>{let d,p,{props:f,shapeFlag:m,transition:g,dirs:y}=e;if(d=e.el=a(e.type,s,f&&f.is,f),8&m?h(d,e.children):16&m&&O(e.children,d,null,r,i,rV(e,s),c,u),y&&ne(e,null,r,"created"),R(d,e,e.scopeId,c,r),f){for(let e in f)"value"===e||j(e)||o(d,e,null,f[e],s,r);"value"in f&&o(d,"value",null,f.value,s),(p=f.onVnodeBeforeMount)&&iA(p,r,e)}y&&ne(e,null,r,"beforeMount");let b=rU(i,g);b&&g.beforeEnter(d),l(d,t,n),((p=f&&f.onVnodeMounted)||b||y)&&r$(()=>{p&&iA(p,r,e),b&&g.enter(d),y&&ne(e,null,r,"mounted")},i)},R=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let c=a;c{let a,c=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:p}=t;u|=16&e.patchFlag;let f=e.props||b,m=t.props||b;if(n&&rB(n,!1),(a=m.onVnodeBeforeUpdate)&&iA(a,n,t,e),p&&ne(t,e,n,"beforeUpdate"),n&&rB(n,!0),(f.innerHTML&&null==m.innerHTML||f.textContent&&null==m.textContent)&&h(c,""),d?L(e.dynamicChildren,d,c,n,r,rV(t,i),l):s||z(e,t,c,null,n,r,rV(t,i),l,!1),u>0){if(16&u)F(c,f,m,n,i);else if(2&u&&f.class!==m.class&&o(c,"class",null,m.class,i),4&u&&o(c,"style",f.style,m.style,i),8&u){let e=t.dynamicProps;for(let t=0;t{a&&iA(a,n,t,e),p&&ne(t,e,n,"updated")},r)},L=(e,t,n,r,i,l,s)=>{for(let o=0;o{if(t!==n){if(t!==b)for(let l in t)j(l)||l in n||o(e,l,t[l],null,i,r);for(let l in n){if(j(l))continue;let s=n[l],a=t[l];s!==a&&"value"!==l&&o(e,l,a,s,i,r)}"value"in n&&o(e,"value",t.value,n.value,i)}},V=(e,t,n,r,i,s,o,a,u)=>{let d=t.el=e?e.el:c(""),p=t.anchor=e?e.anchor:c(""),{patchFlag:h,dynamicChildren:f,slotScopeIds:m}=t;m&&(a=a?a.concat(m):m),null==e?(l(d,n,r),l(p,n,r),O(t.children||[],n,p,i,s,o,a,u)):h>0&&64&h&&f&&e.dynamicChildren?(L(e.dynamicChildren,f,n,i,s,o,a),(null!=t.key||i&&t===i.subTree)&&rj(e,t,!0)):z(e,t,n,p,i,s,o,a,u)},B=(e,t,n,r,i,l,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?i.ctx.activate(t,n,r,s,a):U(t,n,r,i,l,s,a):H(e,t,a)},U=(e,t,n,r,i,l,s)=>{let o=e.component=function(e,t,n){let r=e.type,i=(t?t.appContext:e.appContext)||iE,l={uid:iI++,vnode:e,type:r,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new eS(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,r=!1){let i=r?rA:n.propsCache,l=i.get(t);if(l)return l;let s=t.props,o={},a=[],c=!1;if(!M(t)){let i=t=>{c=!0;let[r,i]=e(t,n,!0);T(o,r),i&&a.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}if(!s&&!c)return $(t)&&i.set(t,_),_;if(E(s))for(let e=0;e{let r=e(t,n,!0);r&&(a=!0,T(o,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return s||a?(E(s)?s.forEach(e=>o[e]=null):T(o,s),$(t)&&i.set(t,o),o):($(t)&&i.set(t,null),null)}(r,i),emit:null,emitted:null,propsDefaults:b,inheritAttrs:r.inheritAttrs,ctx:b,data:b,props:b,attrs:b,slots:b,refs:b,setupState:b,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return l.ctx={_:l},l.root=t?t.root:l,l.emit=rX.bind(null,l),e.ce&&e.ce(l),l}(e,r,i);if(nj(e)&&(o.ctx.renderer=ec),function(e,t=!1,n=!1){t&&u(t);let{props:r,children:i}=e.vnode,l=iL(e);!function(e,t,n,r=!1){let i={},l=rk();for(let n in e.propsDefaults=Object.create(null),rN(e,t,i,l),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:tf(i):e.type.props?e.props=i:e.props=l,e.attrs=l}(e,r,l,t);var s=n||t;let o=e.slots=rk();if(32&e.vnode.shapeFlag){let e=i._;e?(rL(o,i,s),s&&Y(o,"_",e,!0)):rM(i,o)}else i&&rP(e,i);l&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ri);let{setup:r}=n;if(r){eP();let n=e.setupContext=r.length>1?iU(e):null,i=iM(e),l=tH(r,e,0,[e.props,n]),s=D(l);if(eL(),i(),(s||e.sp)&&!nB(e)&&nN(e),s){if(l.then(iP,iP),t)return l.then(n=>{iD(e,n,t)}).catch(t=>{tW(t,e,0)});e.asyncDep=l}else iD(e,l,t)}else iV(e,t)}(e,t),t&&u(!1)}(o,!1,s),o.asyncDep){if(i&&i.registerDep(o,q,s),!e.el){let r=o.subTree=i_(ii);k(null,r,t,n),e.placeholder=r.el}}else q(o,e,t,n,i,l,s)},H=(e,t,n)=>{let r=t.component=e.component;if(function(e,t,n){let{props:r,children:i,component:l}=e,{props:s,children:o,patchFlag:a}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!i||!!o)&&(!o||!o.$stable)||r!==s&&(r?!s||r2(r,s,c):!!s);if(1024&a)return!0;if(16&a)return r?r2(r,s,c):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t{let a=()=>{if(e.isMounted){let t,{next:n,bu:r,u:i,parent:c,vnode:u}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=u.el,W(e,n,o)),t.asyncDep.then(()=>{e.isUnmounted||a()});return}}let d=n;rB(e,!1),n?(n.el=u.el,W(e,n,o)):n=u,r&&Z(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&iA(t,c,n,u),rB(e,!0);let p=rY(e),h=e.subTree;e.subTree=p,x(h,p,f(h.el),es(h),e,l,s),n.el=p.el,null===d&&r6(e,p.el),i&&r$(i,l),(t=n.props&&n.props.onVnodeUpdated)&&r$(()=>iA(t,c,n,u),l)}else{let o,{el:a,props:c}=t,{bm:u,m:d,parent:p,root:h,type:f}=e,m=nB(t);if(rB(e,!1),u&&Z(u),!m&&(o=c&&c.onVnodeBeforeMount)&&iA(o,p,t),rB(e,!0),a&&i){let t=()=>{e.subTree=rY(e),i(a,e.subTree,e,l,null)};m&&f.__asyncHydrate?f.__asyncHydrate(a,e,t):t()}else{h.ce&&!1!==h.ce._def.shadowRoot&&h.ce._injectChildStyle(f);let i=e.subTree=rY(e);x(null,i,n,r,e,l,s),t.el=i.el}if(d&&r$(d,l),!m&&(o=c&&c.onVnodeMounted)){let e=t;r$(()=>iA(o,p,e),l)}(256&t.shapeFlag||p&&nB(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&r$(e.a,l),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new eC(a);e.scope.off();let u=e.update=c.run.bind(c),d=e.job=c.runIfDirty.bind(c);d.i=e,d.id=e.uid,c.scheduler=()=>t0(d),rB(e,!0),u()},W=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){let{props:i,attrs:l,vnode:{patchFlag:s}}=e,o=tS(i),[a]=e.propsOptions,c=!1;if((r||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let r=0;r{let{vnode:r,slots:i}=e,l=!0,s=b;if(32&r.shapeFlag){let e=t._;e?n&&1===e?l=!1:rL(i,t,n):(l=!t.$stable,rM(t,i)),s=t}else t&&(rP(e,t),s={default:1});if(l)for(let e in i)rI(e)||null!=s[e]||delete i[e]})(e,t.children,n),eP(),t6(e),eL()},z=(e,t,n,r,i,l,s,o,a=!1)=>{let c=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:p,shapeFlag:f}=t;if(p>0){if(128&p)return void X(c,d,n,r,i,l,s,o,a);else if(256&p)return void G(c,d,n,r,i,l,s,o,a)}8&f?(16&u&&el(c,i,l),d!==c&&h(n,d)):16&u?16&f?X(c,d,n,r,i,l,s,o,a):el(c,i,l,!0):(8&u&&h(n,""),16&f&&O(d,n,r,i,l,s,o,a))},G=(e,t,n,r,i,l,s,o,a)=>{let c;e=e||_,t=t||_;let u=e.length,d=t.length,p=Math.min(u,d);for(c=0;cd?el(e,i,l,!0,!1,p):O(t,n,r,i,l,s,o,a,p)},X=(e,t,n,r,i,l,s,o,a)=>{let c=0,u=t.length,d=e.length-1,p=u-1;for(;c<=d&&c<=p;){let r=e[c],u=t[c]=a?iT(t[c]):ik(t[c]);if(ig(r,u))x(r,u,n,null,i,l,s,o,a);else break;c++}for(;c<=d&&c<=p;){let r=e[d],c=t[p]=a?iT(t[p]):ik(t[p]);if(ig(r,c))x(r,c,n,null,i,l,s,o,a);else break;d--,p--}if(c>d){if(c<=p){let e=p+1,d=ep)for(;c<=d;)ee(e[c],i,l,!0),c++;else{let h,f=c,m=c,g=new Map;for(c=m;c<=p;c++){let e=t[c]=a?iT(t[c]):ik(t[c]);null!=e.key&&g.set(e.key,c)}let y=0,b=p-m+1,S=!1,C=0,k=Array(b);for(c=0;c=b){ee(u,i,l,!0);continue}if(null!=u.key)r=g.get(u.key);else for(h=m;h<=p;h++)if(0===k[h-m]&&ig(u,t[h])){r=h;break}void 0===r?ee(u,i,l,!0):(k[r-m]=c+1,r>=C?C=r:S=!0,x(u,t[r],n,null,i,l,s,o,a),y++)}let T=S?function(e){let t,n,r,i,l,s=e.slice(),o=[0],a=e.length;for(t=0;t>1]]0&&(s[t]=o[r-1]),o[r]=t)}}for(r=o.length,i=o[r-1];r-- >0;)o[r]=i,i=s[i];return o}(k):_;for(h=T.length-1,c=b-1;c>=0;c--){let e=m+c,d=t[e],p=t[e+1],f=e+1{let{el:o,type:a,transition:c,children:u,shapeFlag:d}=e;if(6&d)return void Q(e.component.subTree,t,n,r);if(128&d)return void e.suspense.move(t,n,r);if(64&d)return void a.move(e,t,n,ec);if(a===it){l(o,t,n);for(let e=0;e{let i;for(;e&&e!==t;)i=m(e),l(e,n,r),e=i;l(t,n,r)})(e,t,n);if(2!==r&&1&d&&c)if(0===r)c.beforeEnter(o),l(o,t,n),r$(()=>c.enter(o),i);else{let{leave:r,delayLeave:i,afterLeave:a}=c,u=()=>{e.ctx.isUnmounted?s(o):l(o,t,n)},d=()=>{o._isLeaving&&o[nd](!0),r(o,()=>{u(),a&&a()})};i?i(o,u,d):d()}else l(o,t,n)},ee=(e,t,n,r=!1,i=!1)=>{let l,{type:s,props:o,ref:a,children:c,dynamicChildren:u,shapeFlag:d,patchFlag:p,dirs:h,cacheIndex:f}=e;if(-2===p&&(i=!1),null!=a&&(eP(),nA(a,null,n,e,!0),eL()),null!=f&&(t.renderCache[f]=void 0),256&d)return void t.ctx.deactivate(e);let m=1&d&&h,g=!nB(e);if(g&&(l=o&&o.onVnodeBeforeUnmount)&&iA(l,t,e),6&d)ei(e.component,n,r);else{if(128&d)return void e.suspense.unmount(n,r);m&&ne(e,null,t,"beforeUnmount"),64&d?e.type.remove(e,t,n,ec,r):u&&!u.hasOnce&&(s!==it||p>0&&64&p)?el(u,t,n,!1,!0):(s===it&&384&p||!i&&16&d)&&el(c,t,n),r&&et(e)}(g&&(l=o&&o.onVnodeUnmounted)||m)&&r$(()=>{l&&iA(l,t,e),m&&ne(e,null,t,"unmounted")},n)},et=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===it)return void er(n,r);if(t===il)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=m(e),s(e),e=n;s(t)})(e);let l=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,s=()=>t(n,l);r?r(e.el,l,s):s()}else l()},er=(e,t)=>{let n;for(;e!==t;)n=m(e),s(e),e=n;s(t)},ei=(e,t,n)=>{let{bum:r,scope:i,job:l,subTree:s,um:o,m:a,a:c}=e;rH(a),rH(c),r&&Z(r),i.stop(),l&&(l.flags|=8,ee(s,e,t,n)),o&&r$(o,t),r$(()=>{e.isUnmounted=!0},t)},el=(e,t,n,r=!1,i=!1,l=0)=>{for(let s=l;s{if(6&e.shapeFlag)return es(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=m(e.anchor||e.el),n=t&&t[nt];return n?m(n):t},eo=!1,ea=(e,t,n)=>{null==e?t._vnode&&ee(t._vnode,null,null,!0):x(t._vnode||null,e,t,null,null,null,n),t._vnode=e,eo||(eo=!0,t6(),t3(),eo=!1)},ec={p:x,um:ee,m:Q,r:et,mt:U,mc:O,pc:z,pbc:L,n:es,o:e};return t&&([r,i]=t(ec)),{render:ea,hydrate:r,createApp:(n=r,function(e,t=null){M(e)||(e=T({},e)),null==t||$(t)||(t=null);let r=ry(),i=new WeakSet,l=[],s=!1,o=r.app={_uid:rb++,_component:e,_props:t,_container:null,_context:r,_instance:null,version:iz,get config(){return r.config},set config(v){},use:(e,...t)=>(i.has(e)||(e&&M(e.install)?(i.add(e),e.install(o,...t)):M(e)&&(i.add(e),e(o,...t))),o),mixin:e=>(r.mixins.includes(e)||r.mixins.push(e),o),component:(e,t)=>t?(r.components[e]=t,o):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,o):r.directives[e],mount(i,l,a){if(!s){let c=o._ceVNode||i_(e,t);return c.appContext=r,!0===a?a="svg":!1===a&&(a=void 0),l&&n?n(c,i):ea(c,i,a),s=!0,o._container=i,i.__vue_app__=o,ij(c.component)}},onUnmount(e){l.push(e)},unmount(){s&&(tq(l,o._instance,16),ea(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,o),runWithContext(e){let t=r_;r_=o;try{return e()}finally{r_=t}}};return o})}}function rV({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rB({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rU(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rj(e,t,n=!1){let r=e.children,i=t.children;if(E(r)&&E(i))for(let e=0;etq(e,s,t,n);let o=!1;return"post"===r?i.scheduler=e=>{r$(e,s&&s.suspense)}:"sync"!==r&&(o=!0,i.scheduler=(e,t)=>{t?e():t0(e)}),i.augmentJob=e=>{t&&(e.flags|=4),o&&(e.flags|=2,s&&(e.id=s.uid,e.i=s))},function(e,t,n=b){let r,i,s,o,{immediate:a,deep:c,once:u,scheduler:d,augmentJob:p,call:h}=n,f=e=>c?e:tb(e)||!1===c||0===c?tj(e,1):tj(e),g=!1,y=!1;if(tT(e)?(i=()=>e.value,g=tb(e)):tv(e)?(i=()=>f(e),g=!0):E(e)?(y=!0,g=e.some(e=>tv(e)||tb(e)),i=()=>e.map(e=>tT(e)?e.value:tv(e)?f(e):M(e)?h?h(e,2):e():void 0)):i=M(e)?t?h?()=>h(e,2):e:()=>{if(s){eP();try{s()}finally{eL()}}let t=m;m=r;try{return h?h(e,3,[o]):e(o)}finally{m=t}}:S,t&&c){let e=i,t=!0===c?1/0:c;i=()=>tj(e(),t)}let _=l,x=()=>{r.stop(),_&&_.active&&N(_.effects,r)};if(u&&t){let e=t;t=(...t)=>{e(...t),x()}}let C=y?Array(e.length).fill(tV):tV,k=e=>{if(1&r.flags&&(r.dirty||e))if(t){let e=r.run();if(c||g||(y?e.some((e,t)=>Q(e,C[t])):Q(e,C))){s&&s();let n=m;m=r;try{let n=[e,C===tV?void 0:y&&C[0]===tV?[]:C,o];C=e,h?h(t,3,n):t(...n)}finally{m=n}}}else r.run()};return p&&p(k),(r=new eC(i)).scheduler=d?()=>d(k,!1):k,o=e=>tU(e,!1,r),s=r.onStop=()=>{let e=tB.get(r);if(e){if(h)h(e,4);else for(let t of e)t();tB.delete(r)}},t?a?k(!0):C=r.run():d?d(k.bind(null,!0),!0):r.run(),x.pause=r.pause.bind(r),x.resume=r.resume.bind(r),x.stop=x,x}(e,t,i)}function rz(e,t,n){let r,i=this.proxy,l=P(e)?e.includes(".")?rJ(i,e):()=>i[e]:e.bind(i,i);M(t)?r=t:(r=t.handler,n=t);let s=iM(this),o=rK(l,r.bind(i),n);return s(),o}function rJ(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;e"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${K(t)}Modifiers`]||e[`${J(t)}Modifiers`];function rX(e,t,...n){let r;if(e.isUnmounted)return;let i=e.vnode.props||b,l=n,s=t.startsWith("update:"),o=s&&rG(i,t.slice(7));o&&(o.trim&&(l=n.map(e=>P(e)?e.trim():e)),o.number&&(l=n.map(ee)));let a=i[r=X(t)]||i[r=X(K(t))];!a&&s&&(a=i[r=X(J(t))]),a&&tq(a,e,6,l);let c=i[r+"Once"];if(c){if(e.emitted){if(e.emitted[r])return}else e.emitted={};e.emitted[r]=!0,tq(c,e,6,l)}}let rQ=new WeakMap;function rZ(e,t){return!!e&&!!C(t)&&(A(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||A(e,J(t))||A(e,t))}function rY(e){let t,n,{type:r,vnode:i,proxy:l,withProxy:s,propsOptions:[o],slots:a,attrs:c,emit:u,render:d,renderCache:p,props:h,data:f,setupState:m,ctx:g,inheritAttrs:y}=e,b=t9(e);try{if(4&i.shapeFlag){let e=s||l;t=ik(d.call(e,e,p,h,m,f,g)),n=c}else t=ik(r.length>1?r(h,{attrs:c,slots:a,emit:u}):r(h,null)),n=r.props?c:r0(c)}catch(n){is.length=0,tW(n,e,1),t=i_(ii)}let _=t;if(n&&!1!==y){let e=Object.keys(n),{shapeFlag:t}=_;e.length&&7&t&&(o&&e.some(k)&&(n=r1(n,o)),_=ix(_,n,!1,!0))}return i.dirs&&((_=ix(_,null,!1,!0)).dirs=_.dirs?_.dirs.concat(i.dirs):i.dirs),i.transition&&nC(_,i.transition),t=_,t9(b),t}let r0=e=>{let t;for(let n in e)("class"===n||"style"===n||C(n))&&((t||(t={}))[n]=e[n]);return t},r1=(e,t)=>{let n={};for(let r in e)k(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function r2(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;ie.__isSuspense,r4=0;function r8(e,t){let n=e.props&&e.props[t];M(n)&&n()}function r5(e,t,n,r,i,l,s,o,a,c,u=!1){let d,{p:p,m:h,um:f,n:m,o:{parentNode:g,remove:y}}=c,b=function(e){let t=e.props&&e.props.suspensible;return null!=t&&!1!==t}(e);b&&t&&t.pendingBranch&&(d=t.pendingId,t.deps++);let _=e.props?et(e.props.timeout):void 0,S=l,x={vnode:e,parent:t,parentComponent:n,namespace:s,container:r,hiddenContainer:i,deps:0,pendingId:r4++,timeout:"number"==typeof _?_:-1,activeBranch:null,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:r,activeBranch:i,pendingBranch:s,pendingId:o,effects:a,parentComponent:c,container:u}=x,p=!1;x.isHydrating?x.isHydrating=!1:!e&&((p=i&&s.transition&&"out-in"===s.transition.mode)&&(i.transition.afterLeave=()=>{o===x.pendingId&&(h(s,u,l===S?m(i):l,0),t2(a))}),i&&(g(i.el)===u&&(l=m(i)),f(i,c,x,!0)),p||h(s,u,l,0)),ie(x,s),x.pendingBranch=null,x.isInFallback=!1;let y=x.parent,_=!1;for(;y;){if(y.pendingBranch){y.effects.push(...a),_=!0;break}y=y.parent}_||p||t2(a),x.effects=[],b&&t&&t.pendingBranch&&d===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),r8(r,"onResolve")},fallback(e){if(!x.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:r,container:i,namespace:l}=x;r8(t,"onFallback");let s=m(n),c=()=>{x.isInFallback&&(p(null,e,i,s,r,null,l,o,a),ie(x,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(n.transition.afterLeave=c),x.isInFallback=!0,f(n,r,null,!0),u||c()},move(e,t,n){x.activeBranch&&h(x.activeBranch,e,t,n),x.container=e},next:()=>x.activeBranch&&m(x.activeBranch),registerDep(e,t,n){let r=!!x.pendingBranch;r&&x.deps++;let i=e.vnode.el;e.asyncDep.catch(t=>{tW(t,e,0)}).then(l=>{if(e.isUnmounted||x.isUnmounted||x.pendingId!==e.suspenseId)return;e.asyncResolved=!0;let{vnode:o}=e;iD(e,l,!1),i&&(o.el=i);let a=!i&&e.subTree.el;t(e,o,g(i||e.subTree.el),i?null:m(e.subTree),x,s,n),a&&y(a),r6(e,o.el),r&&0==--x.deps&&x.resolve()})},unmount(e,t){x.isUnmounted=!0,x.activeBranch&&f(x.activeBranch,n,e,t),x.pendingBranch&&f(x.pendingBranch,n,e,t)}};return x}function r9(e){let t;if(M(e)){let n=iu&&e._c;n&&(e._d=!1,ia()),e=e(),n&&(e._d=!0,t=io,ic())}return E(e)&&(e=function(e,t=!0){let n;for(let t=0;tt!==e)),e}function r7(e,t){t&&t.pendingBranch?E(e)?t.effects.push(...e):t.effects.push(e):t2(e)}function ie(e,t){e.activeBranch=t;let{vnode:n,parentComponent:r}=e,i=t.el;for(;!i&&t.component;)i=(t=t.component.subTree).el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,r6(r,i))}let it=Symbol.for("v-fgt"),ir=Symbol.for("v-txt"),ii=Symbol.for("v-cmt"),il=Symbol.for("v-stc"),is=[],io=null;function ia(e=!1){is.push(io=e?null:[])}function ic(){is.pop(),io=is[is.length-1]||null}let iu=1;function id(e,t=!1){iu+=e,e<0&&io&&t&&(io.hasOnce=!0)}function ip(e){return e.dynamicChildren=iu>0?io||_:null,ic(),iu>0&&io&&io.push(e),e}function ih(e,t,n,r,i){return ip(i_(e,t,n,r,i,!0))}function im(e){return!!e&&!0===e.__v_isVNode}function ig(e,t){return e.type===t.type&&e.key===t.key}let iv=({key:e})=>null!=e?e:null,iy=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?P(e)||tT(e)||M(e)?{i:t8,r:e,k:t,f:!!n}:e:null);function ib(e,t=null,n=null,r=0,i=null,l=+(e!==it),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&iv(t),ref:t&&iy(t),scopeId:t5,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:t8};return o?(iN(a,n),128&l&&e.normalize(a)):n&&(a.shapeFlag|=P(n)?8:16),iu>0&&!s&&io&&(a.patchFlag>0||6&l)&&32!==a.patchFlag&&io.push(a),a}let i_=function(e,t=null,n=null,r=0,i=null,l=!1){var s;if(e&&e!==n9||(e=ii),im(e)){let r=ix(e,t,!0);return n&&iN(r,n),iu>0&&!l&&io&&(6&r.shapeFlag?io[io.indexOf(e)]=r:io.push(r)),r.patchFlag=-2,r}if(M(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=iS(t);e&&!P(e)&&(t.class=ec(e)),$(n)&&(t_(n)&&!E(n)&&(n=T({},n)),t.style=ei(n))}let o=P(e)?1:r3(e)?128:e.__isTeleport?64:$(e)?4:2*!!M(e);return ib(e,t,n,r,i,o,l,!0)};function iS(e){return e?t_(e)||rT(e)?T({},e):e:null}function ix(e,t,n=!1,r=!1){let{props:i,ref:l,patchFlag:s,children:o,transition:a}=e,c=t?iw(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&iv(c),ref:t&&t.ref?n&&l?E(l)?l.concat(iy(t)):[l,iy(t)]:iy(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==it?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ix(e.ssContent),ssFallback:e.ssFallback&&ix(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&nC(u,a.clone(u)),u}function iC(e=" ",t=0){return i_(ir,null,e,t)}function ik(e){return null==e||"boolean"==typeof e?i_(ii):E(e)?i_(it,null,e.slice()):im(e)?iT(e):i_(ir,null,String(e))}function iT(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:ix(e)}function iN(e,t){let n=0,{shapeFlag:r}=e;if(null==t)t=null;else if(E(t))n=16;else if("object"==typeof t)if(65&r){let n=t.default;n&&(n._c&&(n._d=!1),iN(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;r||rT(t)?3===r&&t8&&(1===t8.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t8}else M(t)?(t={default:t,_ctx:t8},n=32):(t=String(t),64&r?(n=16,t=[iC(t)]):n=8);e.children=t,e.shapeFlag|=n}function iw(...e){let t={};for(let n=0;niR||t8;c=e=>{iR=e},u=e=>{i$=e};let iM=e=>{let t=iR;return c(e),e.scope.on(),()=>{e.scope.off(),c(t)}},iP=()=>{iR&&iR.scope.off(),c(null)};function iL(e){return 4&e.vnode.shapeFlag}let i$=!1;function iD(e,t,n){M(t)?e.render=t:$(t)&&(e.setupState=tO(t)),iV(e,n)}function iF(e){d=e,p=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,rl))}}function iV(e,t,n){let r=e.type;if(!e.render){if(!t&&d&&!r.render){let t=r.template||ru(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:s}=r,o=T(T({isCustomElement:n,delimiters:l},i),s);r.render=d(t,o)}}e.render=r.render||S,p&&p(e)}{let t=iM(e);eP();try{!function(e){let t=ru(e),n=e.proxy,r=e.ctx;ra=!1,t.beforeCreate&&rc(t.beforeCreate,e,"bc");let{data:i,computed:l,methods:s,watch:o,provide:a,inject:c,created:u,beforeMount:d,mounted:p,beforeUpdate:h,updated:f,activated:m,deactivated:g,beforeUnmount:y,unmounted:b,render:_,renderTracked:x,renderTriggered:C,errorCaptured:k,serverPrefetch:T,expose:N,inheritAttrs:w,components:A,directives:I}=t;if(c&&function(e,t,n=S){for(let n in E(e)&&(e=rf(e)),e){let r,i=e[n];tT(r=$(i)?"default"in i?rx(i.from||n,i.default,!0):rx(i.from||n):rx(i))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(c,r,null),s)for(let e in s){let t=s[e];M(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);$(t)&&(e.data=th(t))}if(ra=!0,l)for(let e in l){let t=l[e],i=M(t)?t.bind(n,n):M(t.get)?t.get.bind(n,n):S,s=iq({get:i,set:!M(t)&&M(t.set)?t.set.bind(n):S});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,r,i){var l,s,o,a,c,u,d;let p=i.includes(".")?rJ(r,i):()=>r[i];if(P(t)){let e=n[t];M(e)&&(l=p,s=e,rK(l,s,void 0))}else if(M(t)){o=p,a=t.bind(r),rK(o,a,void 0)}else if($(t))if(E(t))t.forEach(t=>e(t,n,r,i));else{let e=M(t.handler)?t.handler.bind(r):n[t.handler];M(e)&&(c=p,u=e,d=t,rK(c,u,d))}}(o[e],r,n,e);if(a){let e=M(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{rS(t,e[t])})}function R(e,t){E(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(u&&rc(u,e,"c"),R(nQ,d),R(nZ,p),R(nY,h),R(n0,f),R(nq,m),R(nW,g),R(n8,k),R(n4,x),R(n3,C),R(n1,y),R(n2,b),R(n6,T),E(N))if(N.length){let t=e.exposed||(e.exposed={});N.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});_&&e.render===S&&(e.render=_),null!=w&&(e.inheritAttrs=w),A&&(e.components=A),I&&(e.directives=I)}(e)}finally{eL(),t()}}}let iB={get:(e,t)=>(eq(e,"get",""),e[t])};function iU(e){return{attrs:new Proxy(e.attrs,iB),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function ij(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tO(tx(e.exposed)),{get:(t,n)=>n in t?t[n]:n in rn?rn[n](e):void 0,has:(e,t)=>t in e||t in rn})):e.proxy}function iH(e,t=!0){return M(e)?e.displayName||e.name:e.name||t&&e.__name}let iq=(e,t)=>(function(e,t,n=!1){let r,i;return M(e)?r=e:(r=e.get,i=e.set),new tF(r,i,n)})(e,0,i$);function iW(e,t,n){let r=(e,t,n)=>{id(-1);try{return i_(e,t,n)}finally{id(1)}},i=arguments.length;return 2!==i?(i>3?n=Array.prototype.slice.call(arguments,2):3===i&&im(n)&&(n=[n]),r(e,t,n)):!$(t)||E(t)?r(e,null,t):im(t)?r(e,null,[t]):r(e,t)}function iK(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e0&&io&&io.push(e),!0}let iz="3.5.21",iJ="undefined"!=typeof window&&window.trustedTypes;if(iJ)try{g=iJ.createPolicy("vue",{createHTML:e=>e})}catch(e){}let iG=g?e=>g.createHTML(e):e=>e,iX="undefined"!=typeof document?document:null,iQ=iX&&iX.createElement("template"),iZ="transition",iY="animation",i0=Symbol("_vtc"),i1={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},i2=T({},nm,i1),i6=((t=(e,{slots:t})=>iW(ny,i8(e),t)).displayName="Transition",t.props=i2,t),i3=(e,t=[])=>{E(e)?e.forEach(e=>e(...t)):e&&e(...t)},i4=e=>!!e&&(E(e)?e.some(e=>e.length>1):e.length>1);function i8(e){let t={};for(let n in e)n in i1||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:r,duration:i,enterFromClass:l=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=l,appearActiveClass:c=s,appearToClass:u=o,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,f=function(e){if(null==e)return null;{if($(e))return[function(e){return et(e)}(e.enter),function(e){return et(e)}(e.leave)];let t=function(e){return et(e)}(e);return[t,t]}}(i),m=f&&f[0],g=f&&f[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:S,onLeaveCancelled:x,onBeforeAppear:C=y,onAppear:k=b,onAppearCancelled:N=_}=t,w=(e,t,n,r)=>{e._enterCancelled=r,i9(e,t?u:o),i9(e,t?c:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,i9(e,d),i9(e,h),i9(e,p),t&&t()},E=e=>(t,n)=>{let i=e?k:b,s=()=>w(t,e,n);i3(i,[t,s]),i7(()=>{i9(t,e?a:l),i5(t,e?u:o),i4(i)||lt(t,r,m,s)})};return T(t,{onBeforeEnter(e){i3(y,[e]),i5(e,l),i5(e,s)},onBeforeAppear(e){i3(C,[e]),i5(e,a),i5(e,c)},onEnter:E(!1),onAppear:E(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);i5(e,d),e._enterCancelled?(i5(e,p),ll()):(ll(),i5(e,p)),i7(()=>{e._isLeaving&&(i9(e,d),i5(e,h),i4(S)||lt(e,r,g,n))}),i3(S,[e,n])},onEnterCancelled(e){w(e,!1,void 0,!0),i3(_,[e])},onAppearCancelled(e){w(e,!0,void 0,!0),i3(N,[e])},onLeaveCancelled(e){A(e),i3(x,[e])}})}function i5(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[i0]||(e[i0]=new Set)).add(t)}function i9(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[i0];n&&(n.delete(t),n.size||(e[i0]=void 0))}function i7(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let le=0;function lt(e,t,n,r){let i=e._endId=++le,l=()=>{i===e._endId&&r()};if(null!=n)return setTimeout(l,n);let{type:s,timeout:o,propCount:a}=ln(e,t);if(!s)return r();let c=s+"end",u=0,d=()=>{e.removeEventListener(c,p),l()},p=t=>{t.target===e&&++u>=a&&d()};setTimeout(()=>{u(n[e]||"").split(", "),i=r(`${iZ}Delay`),l=r(`${iZ}Duration`),s=lr(i,l),o=r(`${iY}Delay`),a=r(`${iY}Duration`),c=lr(o,a),u=null,d=0,p=0;t===iZ?s>0&&(u=iZ,d=s,p=l.length):t===iY?c>0&&(u=iY,d=c,p=a.length):p=(u=(d=Math.max(s,c))>0?s>c?iZ:iY:null)?u===iZ?l.length:a.length:0;let h=u===iZ&&/\b(?:transform|all)(?:,|$)/.test(r(`${iZ}Property`).toString());return{type:u,timeout:d,propCount:p,hasTransform:h}}function lr(e,t){for(;e.lengthli(t)+li(e[n])))}function li(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function ll(){return document.body.offsetHeight}let ls=Symbol("_vod"),lo=Symbol("_vsh");function la(e,t){e.style.display=t?e[ls]:"none",e[lo]=!t}let lc=Symbol("");function lu(e,t){if(1===e.nodeType){let r=e.style,i="";for(let e in t){var n;let l=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);r.setProperty(`--${e}`,l),i+=`--${e}: ${l};`}r[lc]=i}}let ld=/(?:^|;)\s*display\s*:/,lp=/\s*!important$/;function lh(e,t,n){if(E(n))n.forEach(n=>lh(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let r=function(e,t){let n=lm[t];if(n)return n;let r=K(t);if("filter"!==r&&r in e)return lm[t]=r;r=G(r);for(let n=0;n111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),lT={};function lN(e,t,n){let r=nT(e,t);B(r)&&(r=T({},r,t));class i extends lA{constructor(e){super(r,e,n)}}return i.def=r,i}let lw="undefined"!=typeof HTMLElement?HTMLElement:class{};class lA extends lw{constructor(e,t={},n=l3){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&n!==l3?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow({mode:"open"}),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.parentNode||e.host);)if(e instanceof lA){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,tY(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null)})}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e{for(let t of e)this._setAttr(t.attributeName)}),this._ob.observe(this,{attributes:!0});let e=(e,t=!1)=>{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:r,styles:i}=e;if(r&&!E(r))for(let e in r){let t=r[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=et(this._props[e])),(n||(n=Object.create(null)))[K(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(i),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)A(this,e)||Object.defineProperty(this,e,{get:()=>tI(t[e])})}_resolveProps(e){let{props:t}=e,n=E(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(K))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!0)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):lT,r=K(e);t&&this._numberProps&&this._numberProps[r]&&(n=et(n)),this._setProp(r,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!1){if(t!==this._props[e]&&(t===lT?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),r&&this._instance&&this._update(),n)){let n=this._ob;n&&n.disconnect(),!0===t?this.setAttribute(J(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(J(e),t+""):t||this.removeAttribute(J(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),l6(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=i_(this._def,T(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{this.dispatchEvent(new CustomEvent(e,B(t[0])?T({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),J(e)!==e&&t(J(e),n)},this._setParent()}),t}_applyStyles(e,t){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let n=this._nonce;for(let t=e.length-1;t>=0;t--){let r=document.createElement("style");n&&r.setAttribute("nonce",n),r.textContent=e[t],this.shadowRoot.prepend(r)}}_parseSlots(){let e,t=this._slots={};for(;e=this.firstChild;){let n=1===e.nodeType&&e.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(e),this.removeChild(e)}}_renderSlots(){let e=(this._teleportTarget||this).querySelectorAll("slot"),t=this._instance.type.__scopeId;for(let n=0;n{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let r=e.cloneNode(),i=e[i0];i&&i.forEach(e=>{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display="none";let l=1===t.nodeType?t:t.parentNode;l.appendChild(r);let{hasTransform:s}=ln(r);return l.removeChild(r),s}(n[0].el,i.vnode.el,t)){n=[];return}n.forEach(lL),n.forEach(l$);let r=n.filter(lD);ll(),r.forEach(e=>{let n=e.el,r=n.style;i5(n,t),r.transform=r.webkitTransform=r.transitionDuration="";let i=n[lO]=e=>{(!e||e.target===n)&&(!e||e.propertyName.endsWith("transform"))&&(n.removeEventListener("transitionend",i),n[lO]=null,i9(n,t))};n.addEventListener("transitionend",i)}),n=[]}),()=>{let s=tS(e),o=i8(s),a=s.tag||it;if(n=[],r)for(let e=0;e{let t=e.props["onUpdate:modelValue"]||!1;return E(t)?e=>Z(t,e):t};function lV(e){e.target.composing=!0}function lB(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let lU=Symbol("_assign"),lj={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[lU]=lF(i);let l=r||i.props&&"number"===i.props.type;lb(e,t?"change":"input",t=>{if(t.target.composing)return;let r=e.value;n&&(r=r.trim()),l&&(r=ee(r)),e[lU](r)}),n&&lb(e,"change",()=>{e.value=e.value.trim()}),t||(lb(e,"compositionstart",lV),lb(e,"compositionend",lB),lb(e,"change",lB))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:l}},s){if(e[lU]=lF(s),e.composing)return;let o=(l||"number"===e.type)&&!/^0\d/.test(e.value)?ee(e.value):e.value,a=null==t?"":t;if(o!==a){if(document.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===a))return;e.value=a}}},lH={deep:!0,created(e,t,n){e[lU]=lF(n),lb(e,"change",()=>{let t=e._modelValue,n=lJ(e),r=e.checked,i=e[lU];if(E(t)){let e=eg(t,n),l=-1!==e;if(r&&!l)i(t.concat(n));else if(!r&&l){let n=[...t];n.splice(e,1),i(n)}}else if(R(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(lG(e,r))})},mounted:lq,beforeUpdate(e,t,n){e[lU]=lF(n),lq(e,t,n)}};function lq(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,E(t))i=eg(t,r.props.value)>-1;else if(R(t))i=t.has(r.props.value);else{if(t===n)return;i=em(t,lG(e,!0))}e.checked!==i&&(e.checked=i)}let lW={created(e,{value:t},n){e.checked=em(t,n.props.value),e[lU]=lF(n),lb(e,"change",()=>{e[lU](lJ(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[lU]=lF(r),t!==n&&(e.checked=em(t,r.props.value))}},lK={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i=R(t);lb(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?ee(lJ(e)):lJ(e));e[lU](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,tY(()=>{e._assigning=!1})}),e[lU]=lF(r)},mounted(e,{value:t}){lz(e,t)},beforeUpdate(e,t,n){e[lU]=lF(n)},updated(e,{value:t}){e._assigning||lz(e,t)}};function lz(e,t){let n=e.multiple,r=E(t);if(!n||r||R(t)){for(let i=0,l=e.options.length;iString(e)===String(s)):l.selected=eg(t,s)>-1}else l.selected=t.has(s);else if(em(lJ(l),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}n||-1===e.selectedIndex||(e.selectedIndex=-1)}}function lJ(e){return"_value"in e?e._value:e.value}function lG(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}function lX(e,t,n,r,i){let l=function(e,t){switch(e){case"SELECT":return lK;case"TEXTAREA":return lj;default:switch(t){case"checkbox":return lH;case"radio":return lW;default:return lj}}}(e.tagName,n.props&&n.props.type)[i];l&&l(e,t,n,r)}let lQ=["ctrl","shift","alt","meta"],lZ={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>lQ.some(n=>e[`${n}Key`]&&!t.includes(n))},lY={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},l0=T({patchProp:(e,t,n,r,i,l)=>{let s="svg"===i;if("class"===t){var o=r;let t=e[i0];t&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let r=e.style,i=P(n),l=!1;if(n&&!i){if(t)if(P(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&lh(r,t,"")}else for(let e in t)null==n[e]&&lh(r,e,"");for(let e in n)"display"===e&&(l=!0),lh(r,e,n[e])}else if(i){if(t!==n){let e=r[lc];e&&(n+=";"+e),r.cssText=n,l=ld.test(n)}}else t&&e.removeAttribute("style");ls in e&&(e[ls]=l?r.display:"",e[lo]&&(r.display="none"))}(e,n,r):C(t)?k(t)||function(e,t,n,r,i=null){let l=e[l_]||(e[l_]={}),s=l[t];if(r&&s)s.value=r;else{let[n,o]=function(e){let t;if(lS.test(e)){let n;for(t={};n=e.match(lS);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):J(e.slice(2)),t]}(t);if(r)lb(e,n,l[t]=function(e,t){let n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();tq(function(e,t){if(!E(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,n.value),t,5,[e])};return n.value=e,n.attached=lx||(lC.then(()=>lx=0),lx=Date.now()),n}(r,i),o);else s&&(e.removeEventListener(n,s,o),l[t]=void 0)}}(e,t,0,r,l):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,r){if(r)return!!("innerHTML"===t||"textContent"===t||t in e&&lk(t)&&M(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(lk(t)&&P(n))&&t in e}(e,t,r,s))?e._isVueCE&&(/[A-Z]/.test(t)||!P(r))?ly(e,K(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),lv(e,t,r,s)):(ly(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||lv(e,t,r,s,l,"value"!==t))}},{insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i="svg"===t?iX.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?iX.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?iX.createElement(e,{is:n}):iX.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>iX.createTextNode(e),createComment:e=>iX.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iX.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,l){let s=n?n.previousSibling:t.lastChild;if(i&&(i===l||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==l&&(i=i.nextSibling););else{iQ.innerHTML=iG("svg"===r?`${e}`:"mathml"===r?`${e}`:e);let i=iQ.content;if("svg"===r||"mathml"===r){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}}),l1=!1;function l2(){return h=l1?h:rD(l0),l1=!0,h}let l6=(...e)=>{(h||(h=rF(l0))).render(...e)},l3=(...e)=>{let t=(h||(h=rF(l0))).createApp(...e),{mount:n}=t;return t.mount=e=>{let r=l5(e);if(!r)return;let i=t._component;M(i)||i.render||i.template||(i.template=r.innerHTML),1===r.nodeType&&(r.textContent="");let l=n(r,!1,l8(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t},l4=(...e)=>{let t=l2().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=l5(e);if(t)return n(t,!0,l8(t))},t};function l8(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function l5(e){return P(e)?document.querySelector(e):e}let l9=Symbol(""),l7=Symbol(""),se=Symbol(""),st=Symbol(""),sn=Symbol(""),sr=Symbol(""),si=Symbol(""),sl=Symbol(""),ss=Symbol(""),so=Symbol(""),sa=Symbol(""),sc=Symbol(""),su=Symbol(""),sd=Symbol(""),sp=Symbol(""),sh=Symbol(""),sf=Symbol(""),sm=Symbol(""),sg=Symbol(""),sv=Symbol(""),sy=Symbol(""),sb=Symbol(""),s_=Symbol(""),sS=Symbol(""),sx=Symbol(""),sC=Symbol(""),sk=Symbol(""),sT=Symbol(""),sN=Symbol(""),sw=Symbol(""),sA=Symbol(""),sE=Symbol(""),sI=Symbol(""),sR=Symbol(""),sO=Symbol(""),sM=Symbol(""),sP=Symbol(""),sL=Symbol(""),s$=Symbol(""),sD={[l9]:"Fragment",[l7]:"Teleport",[se]:"Suspense",[st]:"KeepAlive",[sn]:"BaseTransition",[sr]:"openBlock",[si]:"createBlock",[sl]:"createElementBlock",[ss]:"createVNode",[so]:"createElementVNode",[sa]:"createCommentVNode",[sc]:"createTextVNode",[su]:"createStaticVNode",[sd]:"resolveComponent",[sp]:"resolveDynamicComponent",[sh]:"resolveDirective",[sf]:"resolveFilter",[sm]:"withDirectives",[sg]:"renderList",[sv]:"renderSlot",[sy]:"createSlots",[sb]:"toDisplayString",[s_]:"mergeProps",[sS]:"normalizeClass",[sx]:"normalizeStyle",[sC]:"normalizeProps",[sk]:"guardReactiveProps",[sT]:"toHandlers",[sN]:"camelize",[sw]:"capitalize",[sA]:"toHandlerKey",[sE]:"setBlockTracking",[sI]:"pushScopeId",[sR]:"popScopeId",[sO]:"withCtx",[sM]:"unref",[sP]:"isRef",[sL]:"withMemo",[s$]:"isMemoSame"},sF={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function sV(e,t,n,r,i,l,s,o=!1,a=!1,c=!1,u=sF){var d,p,h,f;return e&&(o?(e.helper(sr),e.helper((d=e.inSSR,p=c,d||p?si:sl))):e.helper((h=e.inSSR,f=c,h||f?ss:so)),s&&e.helper(sm)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:l,directives:s,isBlock:o,disableTracking:a,isComponent:c,loc:u}}function sB(e,t=sF){return{type:17,loc:t,elements:e}}function sU(e,t=sF){return{type:15,loc:t,properties:e}}function sj(e,t){return{type:16,loc:sF,key:P(e)?sH(e,!0):e,value:t}}function sH(e,t=!1,n=sF,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function sq(e,t=sF){return{type:8,loc:t,children:e}}function sW(e,t=[],n=sF){return{type:14,loc:n,callee:e,arguments:t}}function sK(e,t,n=!1,r=!1,i=sF){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function sz(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:sF}}function sJ(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,l;e.isBlock=!0,n((i=e.isComponent,r||i?ss:so)),t(sr),t((l=e.isComponent,r||l?si:sl))}}let sG=new Uint8Array([123,123]),sX=new Uint8Array([125,125]);function sQ(e){return e>=97&&e<=122||e>=65&&e<=90}function sZ(e){return 32===e||10===e||9===e||12===e||13===e}function sY(e){return 47===e||62===e||sZ(e)}function s0(e){let t=new Uint8Array(e.length);for(let n=0;n4===e.type&&e.isStatic;function s8(e){switch(e){case"Teleport":case"teleport":return l7;case"Suspense":case"suspense":return se;case"KeepAlive":case"keep-alive":return st;case"BaseTransition":case"base-transition":return sn}}let s5=/^$|^\d|[^\$\w\xA0-\uFFFF]/,s9=e=>!s5.test(e),s7=/[A-Za-z_$\xA0-\uFFFF]/,oe=/[\.\?\w$\xA0-\uFFFF]/,ot=/\s+[.[]\s*|\s*[.[]\s+/g,on=e=>4===e.type?e.content:e.loc.source,or=e=>{let t=on(e).trim().replace(ot,e=>e.trim()),n=0,r=[],i=0,l=0,s=null;for(let e=0;e|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/;function ol(e,t,n=!1){for(let r=0;r4===e.key.type&&e.key.content===r)}return n}function og(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let ov=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/,oy={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:x,isPreTag:x,isIgnoreNewlineTag:x,isCustomElement:x,onError:s2,onWarn:s6,comments:!1,prefixIdentifiers:!1},ob=oy,o_=null,oS="",ox=null,oC=null,ok="",oT=-1,oN=-1,ow=0,oA=!1,oE=null,oI=[],oR=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=sG,this.delimiterClose=sX,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=sG,this.delimiterClose=sX}getPos(e){let t=1,n=e+1;for(let r=this.newlines.length-1;r>=0;r--){let i=this.newlines[r];if(e>i){t=r+2,n=e-i;break}}return{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?sY(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||sZ(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=e||(28===this.state?this.currentSequence===s1.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(oI,{onerr:oz,ontext(e,t){o$(oP(e,t),e,t)},ontextentity(e,t,n){o$(e,t,n)},oninterpolation(e,t){if(oA)return o$(oP(e,t),e,t);let n=e+oR.delimiterOpen.length,r=t-oR.delimiterClose.length;for(;sZ(oS.charCodeAt(n));)n++;for(;sZ(oS.charCodeAt(r-1));)r--;let i=oP(n,r);i.includes("&")&&(i=ob.decodeEntities(i,!1)),oH({type:5,content:oK(i,!1,oq(n,r)),loc:oq(e,t)})},onopentagname(e,t){let n=oP(e,t);ox={type:1,tag:n,ns:ob.getNamespace(n,oI[0],ob.ns),tagType:0,props:[],children:[],loc:oq(e-1,t),codegenNode:void 0}},onopentagend(e){oL(e)},onclosetag(e,t){let n=oP(e,t);if(!ob.isVoidTag(n)){let r=!1;for(let e=0;e0&&oI[0].loc.start.offset;for(let n=0;n<=e;n++)oD(oI.shift(),t,n(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){ox&&oC&&(oW(oC.loc,t),0!==e&&(ok.includes("&")&&(ok=ob.decodeEntities(ok,!0)),6===oC.type?("class"===oC.name&&(ok=oj(ok).trim()),oC.value={type:2,content:ok,loc:1===e?oq(oT,oN):oq(oT-1,oN+1)},oR.inSFCRoot&&"template"===ox.tag&&"lang"===oC.name&&ok&&"html"!==ok&&oR.enterRCDATA(s0("{let i=t.start.offset+n,l=i+e.length;return oK(e,!1,oq(i,l),0,+!!r)},o={source:s(l.trim(),n.indexOf(l,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},a=i.trim().replace(oM,"").trim(),c=i.indexOf(a),u=a.match(oO);if(u){let e;a=a.replace(oO,"").trim();let t=u[1].trim();if(t&&(e=n.indexOf(t,c+a.length),o.key=s(t,e,!0)),u[2]){let r=u[2].trim();r&&(o.index=s(r,n.indexOf(r,o.key?e+t.length:c+a.length),!0))}}return a&&(o.value=s(a,c,!0)),o}(oC.exp)))),(7!==oC.type||"pre"!==oC.name)&&ox.props.push(oC)),ok="",oT=oN=-1},oncomment(e,t){ob.comments&&oH({type:3,content:oP(e,t),loc:oq(e-4,t+3)})},onend(){let e=oS.length;for(let t=0;t64&&n<91||s8(e)||ob.isBuiltInComponent&&ob.isBuiltInComponent(e)||ob.isNativeTag&&!ob.isNativeTag(e))return!0;for(let e=0;e=0;)n--;return n}let oV=new Set(["if","else","else-if","for","slot"]),oB=/\r\n/g;function oU(e){let t="preserve"!==ob.whitespace,n=!1;for(let r=0;r3!==e.type);return 1!==t.length||1!==t[0].type||op(t[0])?null:t[0]}function oG(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let r=n.get(e);if(void 0!==r)return r;let i=e.codegenNode;if(13!==i.type||i.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==i.patchFlag)return n.set(e,0),0;{let r=3,c=oQ(e,t);if(0===c)return n.set(e,0),0;c1)for(let i=0;i{l--};for(;lt===e:t=>e.test(t);return(e,r)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(ou))return;let l=[];for(let s=0;s`${sD[e]}: _${sD[e]}`;function o6(e,t,{helper:n,push:r,newline:i,isTS:l}){let s=n("component"===t?sd:sh);for(let n=0;n3;t.push("["),n&&t.indent(),o4(e,t,n),n&&t.deindent(),t.push("]")}function o4(e,t,n=!1,r=!0){let{push:i,newline:l}=t;for(let s=0;se||"null")}([a,c,u,i,p]),t),l(")"),f&&l(")"),h&&(l(", "),o8(h,t),l(")"))}(e,t);break;case 14:var m=e,g=t;let{push:y,helper:b,pure:_}=g,S=P(m.callee)?m.callee:b(m.callee);_&&y(o1),y(S+"(",-2,m),o4(m.arguments,g),y(")");break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:l}=t,{properties:s}=e;if(!s.length)return n("{}",-2,e);let o=s.length>1;n(o?"{":"{ "),o&&r();for(let e=0;e "),(R||I)&&(k("{"),T()),A?(R&&k("return "),E(A)?o3(A,C):o8(A,C)):I&&o8(I,C),(R||I)&&(N(),k("}")),O&&k(")");break;case 19:var M=e,$=t;let{test:D,consequent:F,alternate:V,newline:B}=M,{push:U,indent:j,deindent:H,newline:q}=$;if(4===D.type){let e=!s9(D.content);e&&U("("),o5(D,$),e&&U(")")}else U("("),o8(D,$),U(")");B&&j(),$.indentLevel++,B||U(" "),U("? "),o8(F,$),$.indentLevel--,B&&q(),B||U(" "),U(": ");let W=19===V.type;!W&&$.indentLevel++,o8(V,$),!W&&$.indentLevel--,B&&H(!0);break;case 20:var K=e,z=t;let{push:J,helper:G,indent:X,deindent:Q,newline:Z}=z,{needPauseTracking:Y,needArraySpread:ee}=K;ee&&J("[...("),J(`_cache[${K.index}] || (`),Y&&(X(),J(`${G(sE)}(-1`),K.inVOnce&&J(", true"),J("),"),Z(),J("(")),J(`_cache[${K.index}] = `),o8(K.value,z),Y&&(J(`).cacheIndex = ${K.index},`),Z(),J(`${G(sE)}(1),`),Z(),J(`_cache[${K.index}]`),Q()),J(")"),ee&&J(")]");break;case 21:o4(e.body,t,!0,!1)}}function o5(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function o9(e,t){for(let n=0;n(function(e,t,n,r){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(s3(28,t.loc)),t.exp=sH("true",!1,r)}if("if"===t.name){var i;let l=ae(e,t),s={type:9,loc:oq((i=e.loc).start.offset,i.end.offset),branches:[l]};if(n.replaceNode(s),r)return r(s,l,!0)}else{let i=n.parent.children,l=i.indexOf(e);for(;l-- >=-1;){let s=i[l];if(s&&3===s.type||s&&2===s.type&&!s.content.trim().length){n.removeNode(s);continue}if(s&&9===s.type){("else-if"===t.name||"else"===t.name)&&void 0===s.branches[s.branches.length-1].condition&&n.onError(s3(30,e.loc)),n.removeNode();let i=ae(e,t);s.branches.push(i);let l=r&&r(s,i,!1);oY(i,n),l&&l(),n.currentNode=null}else n.onError(s3(30,e.loc));break}}})(e,t,n,(e,t,r)=>{let i=n.parent.children,l=i.indexOf(e),s=0;for(;l-- >=0;){let e=i[l];e&&9===e.type&&(s+=e.branches.length)}return()=>{r?e.codegenNode=at(t,s,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=at(t,s+e.branches.length-1,n)}}));function ae(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!ol(e,"for")?e.children:[e],userKey:os(e,"key"),isTemplateIf:n}}function at(e,t,n){return e.condition?sz(e.condition,an(e,t,n),sW(n.helper(sa),['""',"true"])):an(e,t,n)}function an(e,t,n){let{helper:r}=n,i=sj("key",sH(`${t}`,!1,sF,2)),{children:l}=e,s=l[0];if(1!==l.length||1!==s.type)if(1!==l.length||11!==s.type)return sV(n,r(l9),sU([i]),l,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=s.codegenNode;return of(e,i,n),e}{let e=s.codegenNode,t=14===e.type&&e.callee===sL?e.arguments[1].returns:e;return 13===t.type&&sJ(t,n),of(t,i,n),e}}let ar=(e,t,n)=>{let{modifiers:r,loc:i}=e,l=e.arg,{exp:s}=e;if(s&&4===s.type&&!s.content.trim()&&(s=void 0),!s){if(4!==l.type||!l.isStatic)return n.onError(s3(52,l.loc)),{props:[sj(l,sH("",!0,i))]};ai(e),s=e.exp}return 4!==l.type?(l.children.unshift("("),l.children.push(') || ""')):l.isStatic||(l.content=l.content?`${l.content} || ""`:'""'),r.some(e=>"camel"===e.content)&&(4===l.type?l.isStatic?l.content=K(l.content):l.content=`${n.helperString(sN)}(${l.content})`:(l.children.unshift(`${n.helperString(sN)}(`),l.children.push(")"))),!n.inSSR&&(r.some(e=>"prop"===e.content)&&al(l,"."),r.some(e=>"attr"===e.content)&&al(l,"^")),{props:[sj(l,s)]}},ai=(e,t)=>{let n=e.arg;e.exp=sH(K(n.content),!1,n.loc)},al=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},as=o0("for",(e,t,n)=>{let{helper:r,removeHelper:i}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(s3(31,t.loc));let i=t.forParseResult;if(!i)return void n.onError(s3(32,t.loc));ao(i);let{scopes:l}=n,{source:s,value:o,key:a,index:c}=i,u={type:11,loc:t.loc,source:s,valueAlias:o,keyAlias:a,objectIndexAlias:c,parseResult:i,children:od(e)?e.children:[e]};n.replaceNode(u),l.vFor++;let d=r&&r(u);return()=>{l.vFor--,d&&d()}}(e,t,n,t=>{let l=sW(r(sg),[t.source]),s=od(e),o=ol(e,"memo"),a=os(e,"key",!1,!0);a&&7===a.type&&!a.exp&&ai(a);let c=a&&(6===a.type?a.value?sH(a.value.content,!0):void 0:a.exp),u=a&&c?sj("key",c):null,d=4===t.source.type&&t.source.constType>0,p=d?64:a?128:256;return t.codegenNode=sV(n,r(l9),void 0,l,p,void 0,void 0,!0,!d,!1,e.loc),()=>{let a,{children:p}=t,h=1!==p.length||1!==p[0].type,f=op(e)?e:s&&1===e.children.length&&op(e.children[0])?e.children[0]:null;if(f)a=f.codegenNode,s&&u&&of(a,u,n);else if(h)a=sV(n,r(l9),u?sU([u]):void 0,e.children,64,void 0,void 0,!0,void 0,!1);else{var m,g,y,b,_,S,x,C;a=p[0].codegenNode,s&&u&&of(a,u,n),!d!==a.isBlock&&(a.isBlock?(i(sr),i((m=n.inSSR,g=a.isComponent,m||g?si:sl))):i((y=n.inSSR,b=a.isComponent,y||b?ss:so))),(a.isBlock=!d,a.isBlock)?(r(sr),r((_=n.inSSR,S=a.isComponent,_||S?si:sl))):r((x=n.inSSR,C=a.isComponent,x||C?ss:so))}if(o){let e=sK(aa(t.parseResult,[sH("_cached")]));e.body={type:21,body:[sq(["const _memo = (",o.exp,")"]),sq(["if (_cached",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(s$)}(_cached, _memo)) return _cached`]),sq(["const _item = ",a]),sH("_item.memo = _memo"),sH("return _item")],loc:sF},l.arguments.push(e,sH("_cache"),sH(String(n.cached.length))),n.cached.push(null)}else l.arguments.push(sK(aa(t.parseResult),a,!0))}})});function ao(e,t){e.finalized||(e.finalized=!0)}function aa({value:e,key:t,index:n},r=[]){var i=[e,t,n,...r];let l=i.length;for(;l--&&!i[l];);return i.slice(0,l+1).map((e,t)=>e||sH("_".repeat(t+1),!1))}let ac=sH("undefined",!1),au=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=ol(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}};function ad(e,t,n){let r=[sj("name",e),sj("fn",t)];return null!=n&&r.push(sj("key",sH(String(n),!0))),sU(r)}function ap(e){return 2!==e.type&&12!==e.type||(2===e.type?!!e.content.trim():ap(e.content))}let ah=new WeakMap,af=(e,t)=>function(){let n,r,i,l,s;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:o,props:a}=e,c=1===e.tagType,u=c?function(e,t,n=!1){let{tag:r}=e,i=av(r),l=os(e,"is",!1,!0);if(l)if(i){let e;if(6===l.type?e=l.value&&sH(l.value.content,!0):(e=l.exp)||(e=sH("is",!1,l.arg.loc)),e)return sW(t.helper(sp),[e])}else 6===l.type&&l.value.content.startsWith("vue:")&&(r=l.value.content.slice(4));let s=s8(r)||t.isBuiltInComponent(r);return s?(n||t.helper(s),s):(t.helper(sd),t.components.add(r),og(r,"component"))}(e,t):`"${o}"`,d=$(u)&&u.callee===sp,p=0,h=d||u===l7||u===se||!c&&("svg"===o||"foreignObject"===o||"math"===o);if(a.length>0){let r=am(e,t,void 0,c,d);n=r.props,p=r.patchFlag,l=r.dynamicPropNames;let i=r.directives;s=i&&i.length?sB(i.map(e=>(function(e,t){let n=[],r=ah.get(e);r?n.push(t.helperString(r)):(t.helper(sh),t.directives.add(e.name),n.push(og(e.name,"directive")));let{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=sH("true",!1,i);n.push(sU(e.modifiers.map(e=>sj(e,t)),i))}return sB(n,e.loc)})(e,t))):void 0,r.shouldUseBlock&&(h=!0)}if(e.children.length>0)if(u===st&&(h=!0,p|=1024),c&&u!==l7&&u!==st){let{slots:n,hasDynamicSlots:i}=function(e,t,n=(e,t,n,r)=>sK(e,n,!1,!0,n.length?n[0].loc:r)){t.helper(sO);let{children:r,loc:i}=e,l=[],s=[],o=t.scopes.vSlot>0||t.scopes.vFor>0,a=ol(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!s4(e)&&(o=!0),l.push(sj(e||sH("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,d=[],p=new Set,h=0;for(let e=0;esj("default",n(e,void 0,t,i));c?d.length&&d.some(e=>ap(e))&&(u?t.onError(s3(39,d[0].loc)):l.push(e(void 0,d))):l.push(e(void 0,r))}let f=o?2:!function e(t){for(let n=0;n0,f=!1,m=0,g=!1,y=!1,b=!1,_=!1,S=!1,x=!1,k=[],T=e=>{u.length&&(d.push(sU(ag(u),a)),u=[]),e&&d.push(e)},N=()=>{t.scopes.vFor>0&&u.push(sj(sH("ref_for",!0),sH("true")))},w=({key:e,value:n})=>{if(s4(e)){let l=e.content,s=C(l);s&&(!r||i)&&"onclick"!==l.toLowerCase()&&"onUpdate:modelValue"!==l&&!j(l)&&(_=!0),s&&j(l)&&(x=!0),s&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&oG(n,t)>0||("ref"===l?g=!0:"class"===l?y=!0:"style"===l?b=!0:"key"===l||k.includes(l)||k.push(l),r&&("class"===l||"style"===l)&&!k.includes(l)&&k.push(l))}else S=!0};for(let i=0;i"prop"===e.content)&&(m|=32);let x=t.directiveTransforms[n];if(x){let{props:n,needRuntime:r}=x(s,e,t);l||n.forEach(w),_&&i&&!s4(i)?T(sU(n,a)):u.push(...n),r&&(p.push(s),L(r)&&ah.set(s,r))}else!H(n)&&(p.push(s),h&&(f=!0))}}if(d.length?(T(),s=d.length>1?sW(t.helper(s_),d,a):d[0]):u.length&&(s=sU(ag(u),a)),S?m|=16:(y&&!r&&(m|=2),b&&!r&&(m|=4),k.length&&(m|=8),_&&(m|=32)),!f&&(0===m||32===m)&&(g||x||p.length>0)&&(m|=512),!t.inSSR&&s)switch(s.type){case 15:let A=-1,E=-1,I=!1;for(let e=0;e{if(op(e)){let{children:n,loc:r}=e,{slotName:i,slotProps:l}=function(e,t){let n,r='"default"',i=[];for(let t=0;t0){let{props:r,directives:l}=am(e,t,i,!1,!1);n=r,l.length&&t.onError(s3(36,l[0].loc))}return{slotName:r,slotProps:n}}(e,t),s=[t.prefixIdentifiers?"_ctx.$slots":"$slots",i,"{}","undefined","true"],o=2;l&&(s[2]=l,o=3),n.length&&(s[3]=sK([],n,!1,!1,r),o=4),t.scopeId&&!t.slotted&&(o=5),s.splice(o),e.codegenNode=sW(t.helper(sv),s,r)}},ab=(e,t,n,r)=>{let i,{loc:l,modifiers:s,arg:o}=e;if(!e.exp&&!s.length,4===o.type)if(o.isStatic){let e=o.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),i=sH(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?X(K(e)):`on:${e}`,!0,o.loc)}else i=sq([`${n.helperString(sA)}(`,o,")"]);else(i=o).children.unshift(`${n.helperString(sA)}(`),i.children.push(")");let a=e.exp;a&&!a.content.trim()&&(a=void 0);let c=n.cacheHandlers&&!a&&!n.inVOnce;if(a){let e,t=or(a),n=!(t||(e=a,oi.test(on(e)))),r=a.content.includes(";");(n||c&&t)&&(a=sq([`${n?"$event":"(...args)"} => ${r?"{":"("}`,a,r?"}":")"]))}let u={props:[sj(i,a||sH("() => {}",!1,l))]};return r&&(u=r(u)),c&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach(e=>e.key.isHandlerKey=!0),u},a_=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,r=e.children,i=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name]))))for(let e=0;e{if(1===e.type&&ol(e,"once",!0)&&!aS.has(e)&&!t.inVOnce&&!t.inSSR)return aS.add(e),t.inVOnce=!0,t.helper(sE),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},aC=(e,t,n)=>{let r,{exp:i,arg:l}=e;if(!i)return n.onError(s3(41,e.loc)),ak();let s=i.loc.source.trim(),o=4===i.type?i.content:s,a=n.bindingMetadata[s];if("props"===a||"props-aliased"===a)return i.loc,ak();if(!o.trim()||!or(i))return n.onError(s3(42,i.loc)),ak();let c=l||sH("modelValue",!0),u=l?s4(l)?`onUpdate:${K(l.content)}`:sq(['"onUpdate:" + ',l]):"onUpdate:modelValue",d=n.isTS?"($event: any)":"$event";r=sq([`${d} => ((`,i,") = $event)"]);let p=[sj(c,e.exp),sj(u,r)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(s9(e)?e:JSON.stringify(e))+": true").join(", "),n=l?s4(l)?`${l.content}Modifiers`:sq([l,' + "Modifiers"']):"modelModifiers";p.push(sj(n,sH(`{ ${t} }`,!1,e.loc,2)))}return ak(p)};function ak(e=[]){return{props:e}}let aT=new WeakSet,aN=(e,t)=>{if(1===e.type){let n=ol(e,"memo");if(!(!n||aT.has(e))&&!t.inSSR)return aT.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&sJ(r,t),e.codegenNode=sW(t.helper(sL),[n.exp,sK(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}},aw=Symbol(""),aA=Symbol(""),aE=Symbol(""),aI=Symbol(""),aR=Symbol(""),aO=Symbol(""),aM=Symbol(""),aP=Symbol(""),aL=Symbol(""),a$=Symbol("");Object.getOwnPropertySymbols(r={[aw]:"vModelRadio",[aA]:"vModelCheckbox",[aE]:"vModelText",[aI]:"vModelSelect",[aR]:"vModelDynamic",[aO]:"withModifiers",[aM]:"withKeys",[aP]:"vShow",[aL]:"Transition",[a$]:"TransitionGroup"}).forEach(e=>{sD[e]=r[e]});let aD={parseMode:"html",isVoidTag:eh,isNativeTag:e=>eu(e)||ed(e)||ep(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,t=!1){return(f||(f=document.createElement("div")),t)?(f.innerHTML=`
    `,f.children[0].getAttribute("foo")):(f.innerHTML=e,f.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?aL:"TransitionGroup"===e||"transition-group"===e?a$:void 0,getNamespace(e,t,n){let r=t?t.ns:n;if(t&&2===r)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(r=0);else t&&1===r&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(r=0);if(0===r){if("svg"===e)return 1;if("math"===e)return 2}return r}},aF=y("passive,once,capture"),aV=y("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),aB=y("left,right"),aU=y("onkeyup,onkeydown,onkeypress"),aj=(e,t)=>s4(e)&&"onclick"===e.content.toLowerCase()?sH(t,!0):4!==e.type?sq(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,aH=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},aq=[e=>{1===e.type&&e.props.forEach((t,n)=>{let r,i;6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:sH("style",!0,t.loc),exp:(r=t.value.content,i=t.loc,sH(JSON.stringify(ea(r)),!1,i,3)),modifiers:[],loc:t.loc})})}],aW={cloak:()=>({props:[]}),html:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s3(53,i)),t.children.length&&(n.onError(s3(54,i)),t.children.length=0),{props:[sj(sH("innerHTML",!0,i),r||sH("",!0))]}},text:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s3(55,i)),t.children.length&&(n.onError(s3(56,i)),t.children.length=0),{props:[sj(sH("textContent",!0),r?oG(r,n)>0?r:sW(n.helperString(sb),[r],i):sH("",!0))]}},model:(e,t,n)=>{let r=aC(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(s3(58,e.arg.loc));let{tag:i}=t,l=n.isCustomElement(i);if("input"===i||"textarea"===i||"select"===i||l){let s=aE,o=!1;if("input"===i||l){let r=os(t,"type");if(r){if(7===r.type)s=aR;else if(r.value)switch(r.value.content){case"radio":s=aw;break;case"checkbox":s=aA;break;case"file":o=!0,n.onError(s3(59,e.loc))}}else t.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))&&(s=aR)}else"select"===i&&(s=aI);o||(r.needRuntime=n.helper(s))}else n.onError(s3(57,e.loc));return r.props=r.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),r},on:(e,t,n)=>ab(e,t,n,t=>{let{modifiers:r}=e;if(!r.length)return t;let{key:i,value:l}=t.props[0],{keyModifiers:s,nonKeyModifiers:o,eventOptionModifiers:a}=((e,t,n,r)=>{let i=[],l=[],s=[];for(let n=0;n{let{exp:r,loc:i}=e;return r||n.onError(s3(61,i)),{props:[],needRuntime:n.helper(aP)}}},aK=Object.create(null);function az(e,t){if(!P(e))if(!e.nodeType)return S;else e=e.innerHTML;let n=e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t),r=aK[n];if(r)return r;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let i=T({hoistStatic:!0,onError:void 0,onWarn:S},t);i.isCustomElement||"undefined"==typeof customElements||(i.isCustomElement=e=>!!customElements.get(e));let{code:l}=function(e,t={}){return function(e,t={}){let n=t.onError||s2,r="module"===t.mode;!0===t.prefixIdentifiers?n(s3(47)):r&&n(s3(48)),t.cacheHandlers&&n(s3(49)),t.scopeId&&!r&&n(s3(50));let i=T({},t,{prefixIdentifiers:!1}),l=P(e)?function(e,t){if(oR.reset(),ox=null,oC=null,ok="",oT=-1,oN=-1,oI.length=0,oS=e,ob=T({},oy),t){let e;for(e in t)null!=t[e]&&(ob[e]=t[e])}oR.mode="html"===ob.parseMode?1:2*("sfc"===ob.parseMode),oR.inXML=1===ob.ns||2===ob.ns;let n=t&&t.delimiters;n&&(oR.delimiterOpen=s0(n[0]),oR.delimiterClose=s0(n[1]));let r=o_=function(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:sF}}([],e);return oR.parse(oS),r.loc=oq(0,e.length),r.children=oU(r.children),o_=null,r}(e,i):e,[s,o]=[[ax,o7,aN,as,ay,af,au,a_],{on:ab,bind:ar,model:aC}];var a=T({},i,{nodeTransforms:[...s,...t.nodeTransforms||[]],directiveTransforms:T({},o,t.directiveTransforms||{})});let c=function(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,hmr:i=!1,cacheHandlers:l=!1,nodeTransforms:s=[],directiveTransforms:o={},transformHoist:a=null,isBuiltInComponent:c=S,isCustomElement:u=S,expressionPlugins:d=[],scopeId:p=null,slotted:h=!0,ssr:f=!1,inSSR:m=!1,ssrCssVars:g="",bindingMetadata:y=b,inline:_=!1,isTS:x=!1,onError:C=s2,onWarn:k=s6,compatConfig:T}){let N=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),w={filename:t,selfName:N&&G(K(N[1])),prefixIdentifiers:n,hoistStatic:r,hmr:i,cacheHandlers:l,nodeTransforms:s,directiveTransforms:o,transformHoist:a,isBuiltInComponent:c,isCustomElement:u,expressionPlugins:d,scopeId:p,slotted:h,ssr:f,inSSR:m,ssrCssVars:g,bindingMetadata:y,inline:_,isTS:x,onError:C,onWarn:k,compatConfig:T,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=w.helpers.get(e)||0;return w.helpers.set(e,t+1),e},removeHelper(e){let t=w.helpers.get(e);if(t){let n=t-1;n?w.helpers.set(e,n):w.helpers.delete(e)}},helperString:e=>`_${sD[w.helper(e)]}`,replaceNode(e){w.parent.children[w.childIndex]=w.currentNode=e},removeNode(e){let t=w.parent.children,n=e?t.indexOf(e):w.currentNode?w.childIndex:-1;e&&e!==w.currentNode?w.childIndex>n&&(w.childIndex--,w.onNodeRemoved()):(w.currentNode=null,w.onNodeRemoved()),w.parent.children.splice(n,1)},onNodeRemoved:S,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){P(e)&&(e=sH(e)),w.hoists.push(e);let t=sH(`_hoisted_${w.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=function(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:sF}}(w.cached.length,e,t,n);return w.cached.push(r),r}};return w}(l,a);return oY(l,c),a.hoistStatic&&function e(t,n,r,i=!1,l=!1){let{children:s}=t,o=[];for(let n=0;n0){if(e>=2){a.codegenNode.patchFlag=-1,o.push(a);continue}}else{let e=a.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&oQ(a,r)>=2){let t=oZ(a);t&&(e.props=r.hoist(t))}e.dynamicProps&&(e.dynamicProps=r.hoist(e.dynamicProps))}}}else if(12===a.type&&(i?0:oG(a,r))>=2){14===a.codegenNode.type&&a.codegenNode.arguments.length>0&&a.codegenNode.arguments.push("-1"),o.push(a);continue}if(1===a.type){let n=1===a.tagType;n&&r.scopes.vSlot++,e(a,t,r,!1,l),n&&r.scopes.vSlot--}else if(11===a.type)e(a,t,r,1===a.children.length,!0);else if(9===a.type)for(let n=0;ne.key===t||e.key.content===t);return n&&n.value}}o.length&&r.transformHoist&&r.transformHoist(s,r,t)}(l,void 0,c,!!oJ(l)),a.ssr||function(e,t){let{helper:n}=t,{children:r}=e;if(1===r.length){let n=oJ(e);if(n&&n.codegenNode){let r=n.codegenNode;13===r.type&&sJ(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=sV(t,n(l9),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(l,c),l.helpers=new Set([...c.helpers.keys()]),l.components=[...c.components],l.directives=[...c.directives],l.imports=c.imports,l.hoists=c.hoists,l.temps=c.temps,l.cached=c.cached,l.transformed=!0,function(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:i="template.vue.html",scopeId:l=null,optimizeImports:s=!1,runtimeGlobalName:o="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:d=!1,inSSR:p=!1}){let h={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:l,optimizeImports:s,runtimeGlobalName:o,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:d,inSSR:p,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${sD[e]}`,push(e,t=-2,n){h.code+=e},indent(){f(++h.indentLevel)},deindent(e=!1){e?--h.indentLevel:f(--h.indentLevel)},newline(){f(h.indentLevel)}};function f(e){h.push(` +`+" ".repeat(e),0)}return h}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:r,push:i,prefixIdentifiers:l,indent:s,deindent:o,newline:a,ssr:c}=n,u=Array.from(e.helpers),d=u.length>0,p=!l&&"module"!==r;var h=e,f=n;let{push:m,newline:g,runtimeGlobalName:y}=f,b=Array.from(h.helpers);if(b.length>0&&(m(`const _Vue = ${y} +`,-1),h.hoists.length)){let e=[ss,so,sa,sc,su].filter(e=>b.includes(e)).map(o2).join(", ");m(`const { ${e} } = _Vue +`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:r}=t;r();for(let i=0;i0)&&a()),e.directives.length&&(o6(e.directives,"directive",n),e.temps>0&&a()),e.temps>0){i("let ");for(let t=0;t0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(i(` +`,0),a()),c||i("return "),e.codegenNode?o8(e.codegenNode,n):i("null"),p&&(o(),i("}")),o(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(l,i)}(e,T({},aD,t,{nodeTransforms:[aH,...aq,...t.nodeTransforms||[]],directiveTransforms:T({},aW,t.directiveTransforms||{}),transformHoist:null}))}(e,i),s=Function(l)();return s._rc=!0,aK[n]=s}return iF(az),e.BaseTransition=ny,e.BaseTransitionPropsValidators=nm,e.Comment=ii,e.DeprecationTypes=null,e.EffectScope=eS,e.ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},e.ErrorTypeStrings=null,e.Fragment=it,e.KeepAlive={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=iO(),r=n.ctx,i=new Map,l=new Set,s=null,o=n.suspense,{renderer:{p:a,m:c,um:u,o:{createElement:d}}}=r,p=d("div");function h(e){nz(e),u(e,n,o,!0)}function f(e){i.forEach((t,n)=>{let r=iH(t.type);r&&!e(r)&&m(n)})}function m(e){let t=i.get(e);!t||s&&ig(t,s)?s&&nz(s):h(t),i.delete(e),l.delete(e)}r.activate=(e,t,n,r,i)=>{let l=e.component;c(e,t,n,0,o),a(l.vnode,e,t,n,l,o,r,e.slotScopeIds,i),r$(()=>{l.isDeactivated=!1,l.a&&Z(l.a);let t=e.props&&e.props.onVnodeMounted;t&&iA(t,l.parent,e)},o)},r.deactivate=e=>{let t=e.component;rH(t.m),rH(t.a),c(e,p,null,1,o),r$(()=>{t.da&&Z(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&iA(n,t.parent,e),t.isDeactivated=!0},o)},rK(()=>[e.include,e.exclude],([e,t])=>{e&&f(t=>nH(e,t)),t&&f(e=>!nH(t,e))},{flush:"post",deep:!0});let g=null,y=()=>{null!=g&&(r3(n.subTree.type)?r$(()=>{i.set(g,nJ(n.subTree))},n.subTree.suspense):i.set(g,nJ(n.subTree)))};return nZ(y),n0(y),n1(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=nJ(t);if(e.type===i.type&&e.key===i.key){nz(i);let e=i.component.da;e&&r$(e,r);return}h(e)})}),()=>{if(g=null,!t.default)return s=null;let n=t.default(),r=n[0];if(n.length>1)return s=null,n;if(!im(r)||!(4&r.shapeFlag)&&!(128&r.shapeFlag))return s=null,r;let o=nJ(r);if(o.type===ii)return s=null,o;let a=o.type,c=iH(nB(o)?o.type.__asyncResolved||{}:a),{include:u,exclude:d,max:p}=e;if(u&&(!c||!nH(u,c))||d&&c&&nH(d,c))return o.shapeFlag&=-257,s=o,r;let h=null==o.key?a:o.key,f=i.get(h);return o.el&&(o=ix(o),128&r.shapeFlag&&(r.ssContent=o)),g=h,f?(o.el=f.el,o.component=f.component,o.transition&&nC(o,o.transition),o.shapeFlag|=512,l.delete(h),l.add(h)):(l.add(h),p&&l.size>parseInt(p,10)&&m(l.values().next().value)),o.shapeFlag|=256,s=o,r3(r.type)?r:o}}},e.ReactiveEffect=eC,e.Static=il,e.Suspense={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,l,s,o,a,c){if(null==e){var u=t,d=n,p=r,h=i,f=l,m=s,g=o,y=a,b=c;let{p:e,o:{createElement:_}}=b,S=_("div"),x=u.suspense=r5(u,f,h,d,S,p,m,g,y,b);e(null,x.pendingBranch=u.ssContent,S,null,h,x,m,g),x.deps>0?(r8(u,"onPending"),r8(u,"onFallback"),e(null,u.ssFallback,d,p,h,null,m,g),ie(x,u.ssFallback)):x.resolve(!1,!0)}else{if(l&&l.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,r,i,l,s,o,{p:a,um:c,o:{createElement:u}}){let d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;let p=t.ssContent,h=t.ssFallback,{activeBranch:f,pendingBranch:m,isInFallback:g,isHydrating:y}=d;if(m)d.pendingBranch=p,ig(m,p)?(a(m,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():g&&!y&&(a(f,h,n,r,i,null,l,s,o),ie(d,h))):(d.pendingId=r4++,y?(d.isHydrating=!1,d.activeBranch=m):c(m,i,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u("div"),g?(a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():(a(f,h,n,r,i,null,l,s,o),ie(d,h))):f&&ig(f,p)?(a(f,p,n,r,i,d,l,s,o),d.resolve(!0)):(a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0&&d.resolve()));else if(f&&ig(f,p))a(f,p,n,r,i,d,l,s,o),ie(d,p);else if(r8(t,"onPending"),d.pendingBranch=p,512&p.shapeFlag?d.pendingId=p.component.suspenseId:d.pendingId=r4++,a(null,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0)d.resolve();else{let{timeout:e,pendingId:t}=d;e>0?setTimeout(()=>{d.pendingId===t&&d.fallback(h)},e):0===e&&d.fallback(h)}}(e,t,n,r,i,s,o,a,c)}},hydrate:function(e,t,n,r,i,l,s,o,a){let c=t.suspense=r5(t,r,n,e.parentNode,document.createElement("div"),null,i,l,s,o,!0),u=a(e,c.pendingBranch=t.ssContent,n,c,l,s);return 0===c.deps&&c.resolve(!1,!0),u},normalize:function(e){let{shapeFlag:t,children:n}=e,r=32&t;e.ssContent=r9(r?n.default:n),e.ssFallback=r?r9(n.fallback):i_(ii)}},e.Teleport=no,e.Text=ir,e.TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},e.Transition=i6,e.TransitionGroup=lP,e.TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},e.VueElement=lA,e.assertNumber=function(e,t){},e.callWithAsyncErrorHandling=tq,e.callWithErrorHandling=tH,e.camelize=K,e.capitalize=G,e.cloneVNode=ix,e.compatUtils=null,e.compile=az,e.computed=iq,e.createApp=l3,e.createBlock=ih,e.createCommentVNode=function(e="",t=!1){return t?(ia(),ih(ii,null,e)):i_(ii,null,e)},e.createElementBlock=function(e,t,n,r,i,l){return ip(ib(e,t,n,r,i,l,!0))},e.createElementVNode=ib,e.createHydrationRenderer=rD,e.createPropsRestProxy=function(e,t){let n={};for(let r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n},e.createRenderer=function(e){return rF(e)},e.createSSRApp=l4,e.createSlots=function(e,t){for(let n=0;n{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e},e.createStaticVNode=function(e,t){let n=i_(il,null,e);return n.staticCount=t,n},e.createTextVNode=iC,e.createVNode=i_,e.customRef=tP,e.defineAsyncComponent=function(e){let t;M(e)&&(e={loader:e});let{loader:n,loadingComponent:r,errorComponent:i,delay:l=200,hydrate:s,timeout:o,suspensible:a=!0,onError:c}=e,u=null,d=0,p=()=>{let e;return u||(e=u=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t((d++,u=null,p())),()=>n(e),d+1)});throw e}).then(n=>e!==u&&u?u:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nT({name:"AsyncComponentWrapper",__asyncLoader:p,__asyncHydrate(e,n,r){let i=!1;(n.bu||(n.bu=[])).push(()=>i=!0);let l=()=>{i||r()},o=s?()=>{let t=s(l,t=>(function(e,t){if(nM(e)&&"["===e.data){let n=1,r=e.nextSibling;for(;r;){if(1===r.nodeType){if(!1===t(r))break}else if(nM(r))if("]"===r.data){if(0==--n)break}else"["===r.data&&n++;r=r.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:l;t?o():p().then(()=>!n.isUnmounted&&o())},get __asyncResolved(){return t},setup(){let e=iR;if(nN(e),t)return()=>nU(t,e);let n=t=>{u=null,tW(t,e,13,!i)};if(a&&e.suspense)return p().then(t=>()=>nU(t,e)).catch(e=>(n(e),()=>i?i_(i,{error:e}):null));let s=tN(!1),c=tN(),d=tN(!!l);return l&&setTimeout(()=>{d.value=!1},l),null!=o&&setTimeout(()=>{if(!s.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),c.value=e}},o),p().then(()=>{s.value=!0,e.parent&&nj(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),c.value=e}),()=>s.value&&t?nU(t,e):c.value&&i?i_(i,{error:c.value}):r&&!d.value?i_(r):void 0}})},e.defineComponent=nT,e.defineCustomElement=lN,e.defineEmits=function(){return null},e.defineExpose=function(e){},e.defineModel=function(){},e.defineOptions=function(e){},e.defineProps=function(){return null},e.defineSSRCustomElement=(e,t)=>lN(e,t,l4),e.defineSlots=function(){return null},e.devtools=void 0,e.effect=function(e,t){e.effect instanceof eC&&(e=e.effect.fn);let n=new eC(e);t&&T(n,t);try{n.run()}catch(e){throw n.stop(),e}let r=n.run.bind(n);return r.effect=n,r},e.effectScope=function(e){return new eS(e)},e.getCurrentInstance=iO,e.getCurrentScope=function(){return l},e.getCurrentWatcher=function(){return m},e.getTransitionRawChildren=nk,e.guardReactiveProps=iS,e.h=iW,e.handleError=tW,e.hasInjectionContext=function(){return!!(iO()||r_)},e.hydrate=(...e)=>{l2().hydrate(...e)},e.hydrateOnIdle=(e=1e4)=>t=>{let n=nF(t,{timeout:e});return()=>nV(n)},e.hydrateOnInteraction=(e=[])=>(t,n)=>{P(e)&&(e=[e]);let r=!1,i=e=>{r||(r=!0,l(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},l=()=>{n(t=>{for(let n of e)t.removeEventListener(n,i)})};return n(t=>{for(let n of e)t.addEventListener(n,i,{once:!0})}),l},e.hydrateOnMediaQuery=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},e.hydrateOnVisible=e=>(t,n)=>{let r=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){r.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:l,innerWidth:s}=window;return(t>0&&t0&&r0&&n0&&ir.disconnect()},e.initCustomFormatter=function(){},e.initDirectivesForSSR=S,e.inject=rx,e.isMemoSame=iK,e.isProxy=t_,e.isReactive=tv,e.isReadonly=ty,e.isRef=tT,e.isRuntimeOnly=()=>!d,e.isShallow=tb,e.isVNode=im,e.markRaw=tx,e.mergeDefaults=function(e,t){let n=ro(e);for(let e in t){if(e.startsWith("__skip"))continue;let r=n[e];r?E(r)||M(r)?r=n[e]={type:r,default:t[e]}:r.default=t[e]:null===r&&(r=n[e]={default:t[e]}),r&&t[`__skip_${e}`]&&(r.skipFactory=!0)}return n},e.mergeModels=function(e,t){return e&&t?E(e)&&E(t)?e.concat(t):T({},ro(e),ro(t)):e||t},e.mergeProps=iw,e.nextTick=tY,e.normalizeClass=ec,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!P(t)&&(e.class=ec(t)),n&&(e.style=ei(n)),e},e.normalizeStyle=ei,e.onActivated=nq,e.onBeforeMount=nQ,e.onBeforeUnmount=n1,e.onBeforeUpdate=nY,e.onDeactivated=nW,e.onErrorCaptured=n8,e.onMounted=nZ,e.onRenderTracked=n4,e.onRenderTriggered=n3,e.onScopeDispose=function(e,t=!1){l&&l.cleanups.push(e)},e.onServerPrefetch=n6,e.onUnmounted=n2,e.onUpdated=n0,e.onWatcherCleanup=tU,e.openBlock=ia,e.popScopeId=function(){t5=null},e.provide=rS,e.proxyRefs=tO,e.pushScopeId=function(e){t5=e},e.queuePostFlushCb=t2,e.reactive=th,e.readonly=tm,e.ref=tN,e.registerRuntimeCompiler=iF,e.render=l6,e.renderList=function(e,t,n,r){let i,l=n&&n[r],s=E(e);if(s||P(e)){let n=s&&tv(e),r=!1,o=!1;n&&(r=!tb(e),o=ty(e),e=ez(e)),i=Array(e.length);for(let n=0,s=e.length;nt(e,n,void 0,l&&l[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,s=n.length;r!im(t)||t.type!==ii&&(t.type!==it||!!e(t.children)))?t:null}(l(n)),o=n.key||s&&s.key,a=ih(it,{key:(o&&!L(o)?o:`_${t}`)+(!s&&r?"_fb":"")},s||(r?r():[]),s&&1===e._?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),l&&l._c&&(l._d=!0),a},e.resolveComponent=function(e,t){return n7(n5,e,!0,t)||e},e.resolveDirective=function(e){return n7("directives",e)},e.resolveDynamicComponent=function(e){return P(e)?n7(n5,e,!1)||e:e||n9},e.resolveFilter=null,e.resolveTransitionHooks=n_,e.setBlockTracking=id,e.setDevtoolsHook=S,e.setTransitionHooks=nC,e.shallowReactive=tf,e.shallowReadonly=function(e){return tg(e,!0,te,ta,tp)},e.shallowRef=tw,e.ssrContextKey=rq,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=ey,e.toHandlerKey=X,e.toHandlers=function(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:X(r)]=e[r];return n},e.toRaw=tS,e.toRef=function(e,t,n){return tT(e)?e:M(e)?new t$(e):$(e)&&arguments.length>1?tD(e,t,n):tN(e)},e.toRefs=function(e){let t=E(e)?Array(e.length):{};for(let n in e)t[n]=tD(e,n);return t},e.toValue=function(e){return M(e)?e():tI(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=tI,e.useAttrs=function(){return rs().attrs},e.useCssModule=function(e="$style"){return b},e.useCssVars=function(e){let t=iO();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>lu(e,n))},r=()=>{let r=e(t.proxy);t.ce?lu(t.ce,r):function e(t,n){if(128&t.shapeFlag){let r=t.suspense;t=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{e(r.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)lu(t.el,n);else if(t.type===it)t.children.forEach(t=>e(t,n));else if(t.type===il){let{el:e,anchor:r}=t;for(;e&&(lu(e,n),e!==r);)e=e.nextSibling}}(t.subTree,r),n(r)};nY(()=>{t2(r)}),nZ(()=>{rK(r,S,{flush:"post"});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),n2(()=>e.disconnect())})},e.useHost=lE,e.useId=function(){let e=iO();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""},e.useModel=function(e,t,n=b){let r=iO(),i=K(t),l=J(t),s=rG(e,i),o=tP((s,o)=>{let a,c,u=b;return rW(()=>{let t=e[i];Q(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!Q(s,a)&&!(u!==b&&Q(e,u)))return;let d=r.vnode.props;d&&(t in d||i in d||l in d)&&(`onUpdate:${t}`in d||`onUpdate:${i}`in d||`onUpdate:${l}`in d)||(a=e,o()),r.emit(`update:${t}`,s),Q(e,s)&&Q(e,u)&&!Q(s,c)&&o(),u=e,c=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||b:o,done:!1}:{done:!0}}},o},e.useSSRContext=()=>{},e.useShadowRoot=function(){let e=lE();return e&&e.shadowRoot},e.useSlots=function(){return rs().slots},e.useTemplateRef=function(e){let t=iO(),n=tw(null);return t&&Object.defineProperty(t.refs===b?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n},e.useTransitionState=nh,e.vModelCheckbox=lH,e.vModelDynamic={created(e,t,n){lX(e,t,n,null,"created")},mounted(e,t,n){lX(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){lX(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){lX(e,t,n,r,"updated")}},e.vModelRadio=lW,e.vModelSelect=lK,e.vModelText=lj,e.vShow={name:"show",beforeMount(e,{value:t},{transition:n}){e[ls]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):la(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),la(e,!0),r.enter(e)):r.leave(e,()=>{la(e,!1)}):la(e,t))},beforeUnmount(e,{value:t}){la(e,t)}},e.version=iz,e.warn=S,e.watch=function(e,t,n){return rK(e,t,n)},e.watchEffect=function(e,t){return rK(e,null,t)},e.watchPostEffect=function(e,t){return rK(e,null,{flush:"post"})},e.watchSyncEffect=rW,e.withAsyncContext=function(e){let t=iO(),n=e();return iP(),D(n)&&(n=n.catch(e=>{throw iM(t),e})),[n,()=>iM(t)]},e.withCtx=t7,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){if(null===t8)return e;let n=ij(t8),r=e.dirs||(e.dirs=[]);for(let e=0;e{let n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=n=>{if(!("key"in n))return;let r=J(n.key);if(t.some(e=>e===r||lY[e]===r))return e(n)})},e.withMemo=function(e,t,n,r){let i=n[r];if(i&&iK(i,e))return i;let l=t();return l.memo=e.slice(),l.cacheIndex=r,n[r]=l},e.withModifiers=(e,t)=>{let n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(n,...r)=>{for(let e=0;et7,e}({}); \ No newline at end of file diff --git a/docs/theme/partials/content.html b/docs/theme/partials/content.html index 700c064..d2650b1 100644 --- a/docs/theme/partials/content.html +++ b/docs/theme/partials/content.html @@ -2,7 +2,7 @@ {% include "partials/actions.html" %} -{% if "\x3ch1" not in page.content %} +{% if "\u003ch1" not in page.content %}

    {{ page.title | d(config.site_name, true)}}

    {% endif %} diff --git a/docs/theme/partials/header.html b/docs/theme/partials/header.html index 956b1f8..3c6a668 100644 --- a/docs/theme/partials/header.html +++ b/docs/theme/partials/header.html @@ -61,14 +61,11 @@ {% if "material/search" in config.plugins %} {% set search = config.plugins["material/search"] | attr("config") %} - {% if search.enabled %} - -