diff --git a/docs/assets/css/tdesign.min.css b/docs/assets/css/tdesign.min.css new file mode 100644 index 0000000..184f8f0 --- /dev/null +++ b/docs/assets/css/tdesign.min.css @@ -0,0 +1,2 @@ +:root{--td-screen-xs:320px;--td-screen-sm:768px;--td-screen-md:992px;--td-screen-lg:1200px;--td-screen-xl:1400px;--td-screen-xxl:1880px}@-moz-document url-prefix(){.narrow-scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.narrow-scrollbar::-webkit-scrollbar{height:8px;width:8px}.narrow-scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.narrow-scrollbar::-webkit-scrollbar-thumb:horizontal:hover,.narrow-scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-fake-arrow path{stroke:currentcolor;transition:d .2s}.t-fake-arrow--active path{d:path("M3.75 10.2002L7.99274 5.7998L12.2361 10.0425")}.t-slide-down-enter-active,.t-slide-down-leave-active{transition:height .2s cubic-bezier(.38,0,.24,1),max-height .2s cubic-bezier(.38,0,.24,1)}:root,:root[theme-mode=light]{--td-brand-color-1:#f2f3ff;--td-brand-color-2:#d9e1ff;--td-brand-color-3:#b5c7ff;--td-brand-color-4:#8eabff;--td-brand-color-5:#618dff;--td-brand-color-6:#366ef4;--td-brand-color-7:#0052d9;--td-brand-color-8:#003cab;--td-brand-color-9:#002a7c;--td-brand-color-10:#001a57;--td-warning-color-1:#fff1e9;--td-warning-color-2:#ffd9c2;--td-warning-color-3:#ffb98c;--td-warning-color-4:#fa9550;--td-warning-color-5:#e37318;--td-warning-color-6:#be5a00;--td-warning-color-7:#954500;--td-warning-color-8:#713300;--td-warning-color-9:#532300;--td-warning-color-10:#3b1700;--td-error-color-1:#fff0ed;--td-error-color-2:#ffd8d2;--td-error-color-3:#ffb9b0;--td-error-color-4:#ff9285;--td-error-color-5:#f6685d;--td-error-color-6:#d54941;--td-error-color-7:#ad352f;--td-error-color-8:#881f1c;--td-error-color-9:#68070a;--td-error-color-10:#490002;--td-success-color-1:#e3f9e9;--td-success-color-2:#c6f3d7;--td-success-color-3:#92dab2;--td-success-color-4:#56c08d;--td-success-color-5:#2ba471;--td-success-color-6:#008858;--td-success-color-7:#006c45;--td-success-color-8:#005334;--td-success-color-9:#003b23;--td-success-color-10:#002515;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:#fff;--td-font-white-2:hsla(0,0%,100%,.55);--td-font-white-3:hsla(0,0%,100%,.35);--td-font-white-4:hsla(0,0%,100%,.22);--td-font-gray-1:rgba(0,0,0,.9);--td-font-gray-2:rgba(0,0,0,.6);--td-font-gray-3:rgba(0,0,0,.4);--td-font-gray-4:rgba(0,0,0,.26);--td-brand-color:var(--td-brand-color-7);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-6);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-8);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:rgba(0,0,0,.6);--td-mask-disabled:hsla(0,0%,100%,.6);--td-bg-color-page:var(--td-gray-color-2);--td-bg-color-container:#fff;--td-bg-color-container-hover:var(--td-gray-color-1);--td-bg-color-container-active:var(--td-gray-color-3);--td-bg-color-container-select:#fff;--td-bg-color-secondarycontainer:var(--td-gray-color-1);--td-bg-color-secondarycontainer-hover:var(--td-gray-color-2);--td-bg-color-secondarycontainer-active:var(--td-gray-color-4);--td-bg-color-component:var(--td-gray-color-3);--td-bg-color-component-hover:var(--td-gray-color-4);--td-bg-color-component-active:var(--td-gray-color-6);--td-bg-color-secondarycomponent:var(--td-gray-color-4);--td-bg-color-secondarycomponent-hover:var(--td-gray-color-5);--td-bg-color-secondarycomponent-active:var(--td-gray-color-6);--td-bg-color-component-disabled:var(--td-gray-color-2);--td-bg-color-specialcomponent:#fff;--td-text-color-primary:var(--td-font-gray-1);--td-text-color-secondary:var(--td-font-gray-2);--td-text-color-placeholder:var(--td-font-gray-3);--td-text-color-disabled:var(--td-font-gray-4);--td-text-color-anti:#fff;--td-text-color-brand:var(--td-brand-color-7);--td-text-color-link:var(--td-brand-color-8);--td-border-level-1-color:var(--td-gray-color-3);--td-component-stroke:var(--td-gray-color-3);--td-border-level-2-color:var(--td-gray-color-4);--td-component-border:var(--td-gray-color-4);--td-shadow-1:0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12);--td-shadow-2:0 3px 14px 2px rgba(0,0,0,.05),0 8px 10px 1px rgba(0,0,0,.06),0 5px 5px -3px rgba(0,0,0,.1);--td-shadow-3:0 6px 30px 5px rgba(0,0,0,.05),0 16px 24px 2px rgba(0,0,0,.04),0 8px 10px -5px rgba(0,0,0,.08);--td-shadow-inset-top:inset 0 0.5px 0 #dcdcdc;--td-shadow-inset-right:inset 0.5px 0 0 #dcdcdc;--td-shadow-inset-bottom:inset 0 -0.5px 0 #dcdcdc;--td-shadow-inset-left:inset -0.5px 0 0 #dcdcdc;--td-table-shadow-color:rgba(0,0,0,.08);--td-scrollbar-color:rgba(0,0,0,.1);--td-scrollbar-hover-color:rgba(0,0,0,.3);--td-scroll-track-color:#fff}:root[theme-mode=dark]{--td-brand-color-1:#1b2f51;--td-brand-color-2:#173463;--td-brand-color-3:#143975;--td-brand-color-4:#103d88;--td-brand-color-5:#0d429a;--td-brand-color-6:#054bbe;--td-brand-color-7:#2667d4;--td-brand-color-8:#4582e6;--td-brand-color-9:#699ef5;--td-brand-color-10:#96bbf8;--td-warning-color-1:#4f2a1d;--td-warning-color-2:#582f21;--td-warning-color-3:#733c23;--td-warning-color-4:#a75d2b;--td-warning-color-5:#cf6e2d;--td-warning-color-6:#dc7633;--td-warning-color-7:#e8935c;--td-warning-color-8:#ecbf91;--td-warning-color-9:#eed7bf;--td-warning-color-10:#f3e9dc;--td-error-color-1:#472324;--td-error-color-2:#5e2a2d;--td-error-color-3:#703439;--td-error-color-4:#83383e;--td-error-color-5:#a03f46;--td-error-color-6:#c64751;--td-error-color-7:#de6670;--td-error-color-8:#ec888e;--td-error-color-9:#edb1b6;--td-error-color-10:#eeced0;--td-success-color-1:#193a2a;--td-success-color-2:#1a4230;--td-success-color-3:#17533d;--td-success-color-4:#0d7a55;--td-success-color-5:#059465;--td-success-color-6:#43af8a;--td-success-color-7:#46bf96;--td-success-color-8:#80d2b6;--td-success-color-9:#b4e1d3;--td-success-color-10:#deede8;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:hsla(0,0%,100%,.9);--td-font-white-2:hsla(0,0%,100%,.55);--td-font-white-3:hsla(0,0%,100%,.35);--td-font-white-4:hsla(0,0%,100%,.22);--td-font-gray-1:rgba(0,0,0,.9);--td-font-gray-2:rgba(0,0,0,.6);--td-font-gray-3:rgba(0,0,0,.4);--td-font-gray-4:rgba(0,0,0,.26);--td-brand-color:var(--td-brand-color-8);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-7);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-9);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:rgba(0,0,0,.4);--td-mask-disabled:rgba(0,0,0,.6);--td-bg-color-page:var(--td-gray-color-14);--td-bg-color-container:var(--td-gray-color-13);--td-bg-color-container-hover:var(--td-gray-color-12);--td-bg-color-container-active:var(--td-gray-color-10);--td-bg-color-container-select:var(--td-gray-color-9);--td-bg-color-secondarycontainer:var(--td-gray-color-12);--td-bg-color-secondarycontainer-hover:var(--td-gray-color-11);--td-bg-color-secondarycontainer-active:var(--td-gray-color-9);--td-bg-color-component:var(--td-gray-color-11);--td-bg-color-component-hover:var(--td-gray-color-10);--td-bg-color-component-active:var(--td-gray-color-9);--td-bg-color-secondarycomponent:var(--td-gray-color-10);--td-bg-color-secondarycomponent-hover:var(--td-gray-color-9);--td-bg-color-secondarycomponent-active:var(--td-gray-color-8);--td-bg-color-component-disabled:var(--td-gray-color-12);--td-bg-color-specialcomponent:transparent;--td-text-color-primary:var(--td-font-white-1);--td-text-color-secondary:var(--td-font-white-2);--td-text-color-placeholder:var(--td-font-white-3);--td-text-color-disabled:var(--td-font-white-4);--td-text-color-anti:#fff;--td-text-color-brand:var(--td-brand-color-8);--td-text-color-link:var(--td-brand-color-8);--td-border-level-1-color:var(--td-gray-color-11);--td-component-stroke:var(--td-gray-color-11);--td-border-level-2-color:var(--td-gray-color-9);--td-component-border:var(--td-gray-color-9);--td-shadow-1:0 4px 6px rgba(0,0,0,.06),0 1px 10px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.12);--td-shadow-2:0 8px 10px rgba(0,0,0,.12),0 3px 14px rgba(0,0,0,.1),0 5px 5px rgba(0,0,0,.16);--td-shadow-3:0 16px 24px rgba(0,0,0,.14),0 6px 30px rgba(0,0,0,.12),0 8px 10px rgba(0,0,0,.2);--td-shadow-inset-top:inset 0 0.5px 0 #5e5e5e;--td-shadow-inset-right:inset 0.5px 0 0 #5e5e5e;--td-shadow-inset-bottom:inset 0 -0.5px 0 #5e5e5e;--td-shadow-inset-left:inset -0.5px 0 0 #5e5e5e;--td-table-shadow-color:rgba(0,0,0,.55);--td-scrollbar-color:hsla(0,0%,100%,.1);--td-scrollbar-hover-color:hsla(0,0%,100%,.3);--td-scroll-track-color:#333}:root{--td-radius-small:2px;--td-radius-default:3px;--td-radius-medium:6px;--td-radius-large:9px;--td-radius-extraLarge:12px;--td-radius-round:999px;--td-radius-circle:50%;--td-font-family:PingFang SC,Microsoft YaHei,Arial Regular;--td-font-family-medium:PingFang SC,Microsoft YaHei,Arial Medium;--td-font-size-link-small:12px;--td-font-size-link-medium:14px;--td-font-size-link-large:16px;--td-font-size-mark-small:12px;--td-font-size-mark-medium:14px;--td-font-size-body-small:12px;--td-font-size-body-medium:14px;--td-font-size-body-large:16px;--td-font-size-title-small:14px;--td-font-size-title-medium:16px;--td-font-size-title-large:20px;--td-font-size-headline-small:24px;--td-font-size-headline-medium:28px;--td-font-size-headline-large:36px;--td-font-size-display-medium:48px;--td-font-size-display-large:64px;--td-line-height-link-small:20px;--td-line-height-link-medium:22px;--td-line-height-link-large:24px;--td-line-height-mark-small:20px;--td-line-height-mark-medium:22px;--td-line-height-body-small:20px;--td-line-height-body-medium:22px;--td-line-height-body-large:24px;--td-line-height-title-small:22px;--td-line-height-title-medium:24px;--td-line-height-title-large:28px;--td-line-height-headline-small:32px;--td-line-height-headline-medium:36px;--td-line-height-headline-large:44px;--td-line-height-display-medium:56px;--td-line-height-display-large:72px;--td-font-link-small:var(--td-font-size-link-small) /var(--td-line-height-link-small) var(--td-font-family);--td-font-link-medium:var(--td-font-size-link-medium) /var(--td-line-height-link-medium) var(--td-font-family);--td-font-link-large:var(--td-font-size-link-large) /var(--td-line-height-link-large) var(--td-font-family);--td-font-mark-small:600 var(--td-font-size-mark-small) /var(--td-line-height-mark-small) var(--td-font-family);--td-font-mark-medium:600 var(--td-font-size-mark-medium) /var(--td-line-height-mark-medium) var(--td-font-family);--td-font-body-small:var(--td-font-size-body-small) /var(--td-line-height-body-small) var(--td-font-family);--td-font-body-medium:var(--td-font-size-body-medium) /var(--td-line-height-body-medium) var(--td-font-family);--td-font-body-large:var(--td-font-size-body-large) /var(--td-line-height-body-large) var(--td-font-family);--td-font-title-small:600 var(--td-font-size-title-small) /var(--td-line-height-title-small) var(--td-font-family);--td-font-title-medium:600 var(--td-font-size-title-medium) /var(--td-line-height-title-medium) var(--td-font-family);--td-font-title-large:600 var(--td-font-size-title-large) /var(--td-line-height-title-large) var(--td-font-family);--td-font-headline-small:600 var(--td-font-size-headline-small) /var(--td-line-height-headline-small) var(--td-font-family);--td-font-headline-medium:600 var(--td-font-size-headline-medium) /var(--td-line-height-headline-medium) var(--td-font-family);--td-font-headline-large:600 var(--td-font-size-headline-large) /var(--td-line-height-headline-large) var(--td-font-family);--td-font-display-medium:600 var(--td-font-size-display-medium) /var(--td-line-height-display-medium) var(--td-font-family);--td-font-display-large:600 var(--td-font-size-display-large) /var(--td-line-height-display-large) var(--td-font-family);--td-size-1:2px;--td-size-2:4px;--td-size-3:6px;--td-size-4:8px;--td-size-5:12px;--td-size-6:16px;--td-size-7:20px;--td-size-8:24px;--td-size-9:28px;--td-size-10:32px;--td-size-11:36px;--td-size-12:40px;--td-size-13:48px;--td-size-14:56px;--td-size-15:64px;--td-size-16:72px;--td-comp-size-xxxs:var(--td-size-6);--td-comp-size-xxs:var(--td-size-7);--td-comp-size-xs:var(--td-size-8);--td-comp-size-s:var(--td-size-9);--td-comp-size-m:var(--td-size-10);--td-comp-size-l:var(--td-size-11);--td-comp-size-xl:var(--td-size-12);--td-comp-size-xxl:var(--td-size-13);--td-comp-size-xxxl:var(--td-size-14);--td-comp-size-xxxxl:var(--td-size-15);--td-comp-size-xxxxxl:var(--td-size-16);--td-pop-padding-s:var(--td-size-2);--td-pop-padding-m:var(--td-size-3);--td-pop-padding-l:var(--td-size-4);--td-pop-padding-xl:var(--td-size-5);--td-pop-padding-xxl:var(--td-size-6);--td-comp-paddingLR-xxs:var(--td-size-1);--td-comp-paddingLR-xs:var(--td-size-2);--td-comp-paddingLR-s:var(--td-size-4);--td-comp-paddingLR-m:var(--td-size-5);--td-comp-paddingLR-l:var(--td-size-6);--td-comp-paddingLR-xl:var(--td-size-8);--td-comp-paddingLR-xxl:var(--td-size-10);--td-comp-paddingTB-xxs:var(--td-size-1);--td-comp-paddingTB-xs:var(--td-size-2);--td-comp-paddingTB-s:var(--td-size-4);--td-comp-paddingTB-m:var(--td-size-5);--td-comp-paddingTB-l:var(--td-size-6);--td-comp-paddingTB-xl:var(--td-size-8);--td-comp-paddingTB-xxl:var(--td-size-10);--td-comp-margin-xxs:var(--td-size-1);--td-comp-margin-xs:var(--td-size-2);--td-comp-margin-s:var(--td-size-4);--td-comp-margin-m:var(--td-size-5);--td-comp-margin-l:var(--td-size-6);--td-comp-margin-xl:var(--td-size-7);--td-comp-margin-xxl:var(--td-size-8);--td-comp-margin-xxxl:var(--td-size-10);--td-comp-margin-xxxxl:var(--td-size-12)}.t-loading{box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-brand-color);font:var(--td-font-body-medium);font-size:var(--td-comp-size-l);list-style:none;margin:0;padding:0;position:relative}.t-loading--lock{overflow:hidden}.t-loading.t-size-s{font-size:var(--td-comp-size-xxxs)}.t-loading.t-size-l{font-size:var(--td-comp-size-xxxl)}.t-loading__parent--relative{position:relative!important}.t-loading__fullscreen{height:100%;left:0;position:fixed;top:0;width:100%;z-index:3500}.t-loading--center{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__content{left:48%;position:absolute;top:20%}.t-loading--inherit-color{color:inherit}.t-loading__parent{position:relative}.t-loading__overlay{background-color:var(--td-mask-disabled)}.t-loading--full{height:100%;left:0;position:absolute;top:0;width:100%;z-index:3500}.t-loading--hidden{visibility:hidden}.t-loading--visible{visibility:visible}.t-loading__text{display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-xs);vertical-align:middle;width:auto}.t-loading__gradient{align-items:center;display:inline-flex;justify-content:center;vertical-align:middle}.t-loading__gradient-conic{background:conic-gradient(from 90deg at 50% 50%,#fff 0deg,currentcolor 1turn);border-radius:var(--td-radius-circle);height:100%;-webkit-mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);mask:radial-gradient(transparent calc(50% - .5px),#fff 50%);width:100%}.t-button{align-items:center;background-color:transparent;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);justify-content:center;list-style:none;margin:0;outline:none;overflow:hidden;padding:0;position:relative;text-decoration:none;touch-action:manipulation;transition:all .2s linear;vertical-align:middle;white-space:nowrap;z-index:0}.t-button .t-button__text,.t-button .t-icon{display:inline-flex;position:relative;z-index:1}.t-button .t-icon,.t-button .t-loading{font-size:var(--td-font-size-body-large)}.t-button .t-icon+.t-button__text:not(:empty),.t-button .t-loading+.t-button__text:not(:empty){margin-left:8px}.t-button .t-button__suffix:not(:empty){display:inline-flex;margin-left:8px}.t-button--variant-base{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);color:var(--td-text-color-anti);color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-base .t-icon,.t-button--variant-base .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{background-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-loading{background-color:var(--td-bg-color-component)}.t-button--variant-base.t-is-disabled{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{border-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-loading{border-color:var(--td-bg-color-component)}.t-button--variant-base.t-is-disabled{border-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:focus-visible,.t-button--variant-base:hover{color:var(--td-text-color-primary)}.t-button--variant-base.t-is-loading{color:var(--td-text-color-primary)}.t-button--variant-base.t-is-disabled{color:var(--td-text-color-disabled)}.t-button--variant-base.t-button--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{background-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-loading{background-color:var(--td-brand-color)}.t-button--variant-base.t-button--theme-primary.t-is-disabled{background-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-base.t-button--theme-primary.t-is-disabled{border-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-success{background-color:var(--td-success-color);border-color:var(--td-success-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{background-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-loading{background-color:var(--td-success-color)}.t-button--variant-base.t-button--theme-success.t-is-disabled{background-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-base.t-button--theme-success.t-is-disabled{border-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-warning{background-color:var(--td-warning-color);border-color:var(--td-warning-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{background-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-loading{background-color:var(--td-warning-color)}.t-button--variant-base.t-button--theme-warning.t-is-disabled{background-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-base.t-button--theme-warning.t-is-disabled{border-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-danger{background-color:var(--td-error-color);border-color:var(--td-error-color);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{background-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-loading{background-color:var(--td-error-color)}.t-button--variant-base.t-button--theme-danger.t-is-disabled{background-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-base.t-button--theme-danger.t-is-disabled{border-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-loading,.t-button--variant-base.t-button--ghost:active{background-color:transparent}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-outline .t-icon,.t-button--variant-outline .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-loading{color:var(--td-text-color-primary)}.t-button--variant-outline.t-is-disabled{color:var(--td-text-color-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-outline.t-is-loading{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-outline.t-is-disabled{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-outline:focus-visible,.t-button--variant-outline:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-disabled,.t-button--variant-outline.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-outline.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-outline.t-button--theme-primary.t-is-disabled{border-color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-outline.t-button--theme-success.t-is-disabled{color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-outline.t-button--theme-success.t-is-disabled{border-color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled{color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-outline.t-button--theme-warning.t-is-disabled{border-color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled{color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-outline.t-button--theme-danger.t-is-disabled{border-color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-loading,.t-button--variant-outline.t-button--ghost:active{background-color:transparent}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-style:dashed;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-dashed .t-icon,.t-button--variant-dashed .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-loading{color:var(--td-text-color-primary)}.t-button--variant-dashed.t-is-disabled{color:var(--td-text-color-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-dashed.t-is-loading{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-dashed.t-is-disabled{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-dashed:focus-visible,.t-button--variant-dashed:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-disabled,.t-button--variant-dashed.t-is-loading{border-color:var(--td-border-level-2-color)}.t-button--variant-dashed.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-dashed.t-button--theme-primary.t-is-disabled{border-color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled{color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-dashed.t-button--theme-success.t-is-disabled{border-color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled{color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-dashed.t-button--theme-warning.t-is-disabled{border-color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled{color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-dashed.t-button--theme-danger.t-is-disabled{border-color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--ghost{background-color:transparent;border-color:var(--td-text-color-anti);color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-loading,.t-button--variant-dashed.t-button--ghost:active{background-color:transparent}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success{border-color:var(--td-success-color);color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning{border-color:var(--td-warning-color);color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger{border-color:var(--td-error-color);color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;border-color:hsla(0,0%,100%,.22)}.t-button--variant-text{background-color:transparent;border-color:transparent;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:var(--td-comp-size-m);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px)}.t-button--variant-text .t-icon,.t-button--variant-text .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{color:var(--td-text-color-primary)}.t-button--variant-text.t-is-loading{color:var(--td-text-color-primary)}.t-button--variant-text.t-is-disabled{color:var(--td-text-color-disabled)}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{background-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{background-color:transparent}.t-button--variant-text:focus-visible,.t-button--variant-text:hover{border-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-disabled,.t-button--variant-text.t-is-loading{border-color:transparent}.t-button--variant-text.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-text.t-button--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled)}.t-button--variant-text.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-text.t-button--theme-success.t-is-disabled{color:var(--td-success-color-disabled)}.t-button--variant-text.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-text.t-button--theme-warning.t-is-disabled{color:var(--td-warning-color-disabled)}.t-button--variant-text.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-text.t-button--theme-danger.t-is-disabled{color:var(--td-error-color-disabled)}.t-button--variant-text.t-button--ghost{background:none;color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost:focus-visible,.t-button--variant-text.t-button--ghost:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-primary:hover{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-success:hover{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-warning:hover{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button--variant-text.t-button--ghost.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:focus-visible,.t-button--variant-text.t-button--ghost.t-button--theme-danger:hover{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:transparent;color:hsla(0,0%,100%,.22)}.t-button.t-is-disabled,.t-button.t-is-loading{cursor:not-allowed}.t-button.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding-left:calc(var(--td-comp-paddingLR-s) - 1px);padding-right:calc(var(--td-comp-paddingLR-s) - 1px)}.t-button.t-size-s .t-icon,.t-button.t-size-s .t-loading{font-size:var(--td-font-size-body-medium)}.t-button.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding-left:calc(var(--td-comp-paddingLR-xl) - 1px);padding-right:calc(var(--td-comp-paddingLR-xl) - 1px)}.t-button.t-size-l .t-icon,.t-button.t-size-l .t-loading{font-size:var(--td-font-size-title-large)}.t-button--shape-square{padding:0;width:var(--td-comp-size-m)}.t-button--shape-square.t-size-s{padding:0;width:var(--td-comp-size-xs)}.t-button--shape-square.t-size-l{padding:0;width:var(--td-comp-size-xl)}.t-button--shape-round{border-radius:var(--td-radius-round)}.t-button--shape-round.t-size-s{border-radius:calc(var(--td-comp-size-xs)/2)}.t-button--shape-round.t-size-l{border-radius:calc(var(--td-comp-size-xl)/2)}.t-button--shape-circle{border-radius:calc(var(--td-comp-size-m)/2);padding:0;text-align:center;width:var(--td-comp-size-m)}.t-button--shape-circle .t-icon,.t-button--shape-circle .t-loading{font-size:var(--td-font-size-body-large)}.t-button--shape-circle.t-size-s{border-radius:calc(var(--td-comp-size-xs)/2);width:var(--td-comp-size-xs)}.t-button--shape-circle.t-size-l{border-radius:calc(var(--td-comp-size-xl)/2);padding:0;width:var(--td-comp-size-xl)}.t-button.t-size-full-width{display:flex;width:100%}.t-button--ghost{--ripple-color:var(--td-gray-color-10)}.t-button:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-bg-color-container-active)}.t-button--variant-base:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-bg-color-component-active)}.t-button--variant-base.t-button--theme-primary:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--theme-success:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-success-color-active)}.t-button--variant-base.t-button--theme-warning:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--theme-danger:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-error-color-active)}.t-icon{display:inline-block;height:1em;vertical-align:middle;width:1em}.t-icon:before{font-family:unset}.t-icon{fill:currentColor}.t-icon.t-size-s,i.t-size-s{font-size:14px}.t-icon.t-size-m,i.t-size-m{font-size:16px}.t-icon.t-size-l,i.t-size-l{font-size:18px}.t-link{align-items:center;cursor:pointer;display:inline-flex;font:var(--td-font-link-medium);outline:none;padding:0;position:relative;text-decoration:none;transition:all .2s linear}.t-link .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-s)}.t-link .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-s)}.t-link.t-size-s{font:var(--td-font-link-small)}.t-link.t-size-s .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-xs)}.t-link.t-size-s .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-xs)}.t-link.t-size-l{font:var(--td-font-link-large)}.t-link.t-size-l .t-link__prefix-icon{display:flex;margin-right:var(--td-comp-margin-m)}.t-link.t-size-l .t-link__suffix-icon{display:flex;margin-left:var(--td-comp-margin-m)}.t-link--theme-default{color:var(--td-text-color-primary)}.t-link--theme-default:active{color:var(--td-brand-color-active)}.t-link--theme-default.t-link--hover-underline:after{border-bottom:1px solid var(--td-text-color-primary);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-default.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-default.t-link--hover-underline:active:after{border-color:var(--td-brand-color-active);opacity:1}.t-link--theme-default.t-link--hover-color:hover{color:var(--td-brand-color-hover)}.t-link--theme-default.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-brand-color-hover)}.t-link--theme-default.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-brand-color-active)}.t-link--theme-default.t-link--hover-color:active{color:var(--td-brand-color-active)}.t-link--theme-default.t-is-underline:after{border-bottom:1px solid var(--td-text-color-primary);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-default.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-link--theme-default.t-is-disabled:active,.t-link--theme-default.t-is-disabled:hover{color:var(--td-text-color-disabled)}.t-link--theme-default.t-is-disabled.t-is-underline:after{border-color:var(--td-text-color-disabled)}.t-link--theme-primary{color:var(--td-brand-color)}.t-link--theme-primary:active{color:var(--td-brand-color-active)}.t-link--theme-primary.t-link--hover-underline:after{border-bottom:1px solid var(--td-brand-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-primary.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-primary.t-link--hover-underline:active:after{border-color:var(--td-brand-color-active);opacity:1}.t-link--theme-primary.t-link--hover-color:hover{color:var(--td-brand-color-hover)}.t-link--theme-primary.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-brand-color-hover)}.t-link--theme-primary.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-brand-color-active)}.t-link--theme-primary.t-link--hover-color:active{color:var(--td-brand-color-active)}.t-link--theme-primary.t-is-underline:after{border-bottom:1px solid var(--td-brand-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled);cursor:not-allowed}.t-link--theme-primary.t-is-disabled:active,.t-link--theme-primary.t-is-disabled:hover{color:var(--td-brand-color-disabled)}.t-link--theme-primary.t-is-disabled.t-is-underline:after{border-color:var(--td-brand-color-disabled)}.t-link--theme-success{color:var(--td-success-color)}.t-link--theme-success:active{color:var(--td-success-color-active)}.t-link--theme-success.t-link--hover-underline:after{border-bottom:1px solid var(--td-success-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-success.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-success.t-link--hover-underline:active:after{border-color:var(--td-success-color-active);opacity:1}.t-link--theme-success.t-link--hover-color:hover{color:var(--td-success-color-hover)}.t-link--theme-success.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-success-color-hover)}.t-link--theme-success.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-success-color-active)}.t-link--theme-success.t-link--hover-color:active{color:var(--td-success-color-active)}.t-link--theme-success.t-is-underline:after{border-bottom:1px solid var(--td-success-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-success.t-is-disabled{cursor:not-allowed}.t-link--theme-success.t-is-disabled,.t-link--theme-success.t-is-disabled:active,.t-link--theme-success.t-is-disabled:hover{color:var(--td-success-color-disabled)}.t-link--theme-success.t-is-disabled.t-is-underline:after{border-color:var(--td-success-color-disabled)}.t-link--theme-danger{color:var(--td-error-color)}.t-link--theme-danger:active{color:var(--td-error-color-active)}.t-link--theme-danger.t-link--hover-underline:after{border-bottom:1px solid var(--td-error-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-danger.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-danger.t-link--hover-underline:active:after{border-color:var(--td-error-color-active);opacity:1}.t-link--theme-danger.t-link--hover-color:hover{color:var(--td-error-color-hover)}.t-link--theme-danger.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-error-color-hover)}.t-link--theme-danger.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-error-color-active)}.t-link--theme-danger.t-link--hover-color:active{color:var(--td-error-color-active)}.t-link--theme-danger.t-is-underline:after{border-bottom:1px solid var(--td-error-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-danger.t-is-disabled{cursor:not-allowed}.t-link--theme-danger.t-is-disabled,.t-link--theme-danger.t-is-disabled:active,.t-link--theme-danger.t-is-disabled:hover{color:var(--td-error-color-disabled)}.t-link--theme-danger.t-is-disabled.t-is-underline:after{border-color:var(--td-error-color-disabled)}.t-link--theme-warning{color:var(--td-warning-color)}.t-link--theme-warning:active{color:var(--td-warning-color-active)}.t-link--theme-warning.t-link--hover-underline:after{border-bottom:1px solid var(--td-warning-color);bottom:0;content:"";height:0;left:0;opacity:0;position:absolute;right:0;transition:all .2s linear}.t-link--theme-warning.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-warning.t-link--hover-underline:active:after{border-color:var(--td-warning-color-active);opacity:1}.t-link--theme-warning.t-link--hover-color:hover{color:var(--td-warning-color-hover)}.t-link--theme-warning.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-warning-color-hover)}.t-link--theme-warning.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-warning-color-active)}.t-link--theme-warning.t-link--hover-color:active{color:var(--td-warning-color-active)}.t-link--theme-warning.t-is-underline:after{border-bottom:1px solid var(--td-warning-color);bottom:0;content:"";height:0;left:0;opacity:1;position:absolute;right:0;transition:all .2s linear}.t-link--theme-warning.t-is-disabled{cursor:not-allowed}.t-link--theme-warning.t-is-disabled,.t-link--theme-warning.t-is-disabled:active,.t-link--theme-warning.t-is-disabled:hover{color:var(--td-warning-color-disabled)}.t-link--theme-warning.t-is-disabled.t-is-underline:after{border-color:var(--td-warning-color-disabled)}.t-row{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-flow:row wrap;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-row--start{justify-content:flex-start}.t-row--center{justify-content:center}.t-row--end{justify-content:flex-end}.t-row--space-between{justify-content:space-between}.t-row--space-around{justify-content:space-around}.t-row--top{align-items:flex-start}.t-row--middle{align-items:center}.t-row--bottom{align-items:flex-end}.t-row--align-start,.t-row--align-top{align-items:flex-start}.t-row--align-center,.t-row--align-middle{align-items:center}.t-row--align-bottom,.t-row--align-end{align-items:flex-end}.t-row--align-stretch{align-items:stretch}.t-row--align-baseline{align-items:baseline}.t-col{box-sizing:border-box;max-width:100%;min-height:1px;position:relative}.t-col-12{display:block;flex:0 0 100%;max-width:100%}.t-col-push-12{left:100%}.t-col-pull-12{right:100%}.t-col-offset-12{margin-left:100%}.t-col-order-12{order:12}.t-col-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-push-11{left:91.66666667%}.t-col-pull-11{right:91.66666667%}.t-col-offset-11{margin-left:91.66666667%}.t-col-order-11{order:11}.t-col-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-push-10{left:83.33333333%}.t-col-pull-10{right:83.33333333%}.t-col-offset-10{margin-left:83.33333333%}.t-col-order-10{order:10}.t-col-9{display:block;flex:0 0 75%;max-width:75%}.t-col-push-9{left:75%}.t-col-pull-9{right:75%}.t-col-offset-9{margin-left:75%}.t-col-order-9{order:9}.t-col-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-push-8{left:66.66666667%}.t-col-pull-8{right:66.66666667%}.t-col-offset-8{margin-left:66.66666667%}.t-col-order-8{order:8}.t-col-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-push-7{left:58.33333333%}.t-col-pull-7{right:58.33333333%}.t-col-offset-7{margin-left:58.33333333%}.t-col-order-7{order:7}.t-col-6{display:block;flex:0 0 50%;max-width:50%}.t-col-push-6{left:50%}.t-col-pull-6{right:50%}.t-col-offset-6{margin-left:50%}.t-col-order-6{order:6}.t-col-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-push-5{left:41.66666667%}.t-col-pull-5{right:41.66666667%}.t-col-offset-5{margin-left:41.66666667%}.t-col-order-5{order:5}.t-col-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-push-4{left:33.33333333%}.t-col-pull-4{right:33.33333333%}.t-col-offset-4{margin-left:33.33333333%}.t-col-order-4{order:4}.t-col-3{display:block;flex:0 0 25%;max-width:25%}.t-col-push-3{left:25%}.t-col-pull-3{right:25%}.t-col-offset-3{margin-left:25%}.t-col-order-3{order:3}.t-col-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-push-2{left:16.66666667%}.t-col-pull-2{right:16.66666667%}.t-col-offset-2{margin-left:16.66666667%}.t-col-order-2{order:2}.t-col-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-push-1{left:8.33333333%}.t-col-pull-1{right:8.33333333%}.t-col-offset-1{margin-left:8.33333333%}.t-col-order-1{order:1}.t-col-0{display:none}.t-col-offset-0{margin-left:0}.t-col-order-0{order:0}.t-col-xs-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xs-push-12{left:100%}.t-col-xs-pull-12{right:100%}.t-col-xs-offset-12{margin-left:100%}.t-col-xs-order-12{order:12}.t-col-xs-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xs-push-11{left:91.66666667%}.t-col-xs-pull-11{right:91.66666667%}.t-col-xs-offset-11{margin-left:91.66666667%}.t-col-xs-order-11{order:11}.t-col-xs-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xs-push-10{left:83.33333333%}.t-col-xs-pull-10{right:83.33333333%}.t-col-xs-offset-10{margin-left:83.33333333%}.t-col-xs-order-10{order:10}.t-col-xs-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xs-push-9{left:75%}.t-col-xs-pull-9{right:75%}.t-col-xs-offset-9{margin-left:75%}.t-col-xs-order-9{order:9}.t-col-xs-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xs-push-8{left:66.66666667%}.t-col-xs-pull-8{right:66.66666667%}.t-col-xs-offset-8{margin-left:66.66666667%}.t-col-xs-order-8{order:8}.t-col-xs-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xs-push-7{left:58.33333333%}.t-col-xs-pull-7{right:58.33333333%}.t-col-xs-offset-7{margin-left:58.33333333%}.t-col-xs-order-7{order:7}.t-col-xs-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xs-push-6{left:50%}.t-col-xs-pull-6{right:50%}.t-col-xs-offset-6{margin-left:50%}.t-col-xs-order-6{order:6}.t-col-xs-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xs-push-5{left:41.66666667%}.t-col-xs-pull-5{right:41.66666667%}.t-col-xs-offset-5{margin-left:41.66666667%}.t-col-xs-order-5{order:5}.t-col-xs-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xs-push-4{left:33.33333333%}.t-col-xs-pull-4{right:33.33333333%}.t-col-xs-offset-4{margin-left:33.33333333%}.t-col-xs-order-4{order:4}.t-col-xs-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xs-push-3{left:25%}.t-col-xs-pull-3{right:25%}.t-col-xs-offset-3{margin-left:25%}.t-col-xs-order-3{order:3}.t-col-xs-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xs-push-2{left:16.66666667%}.t-col-xs-pull-2{right:16.66666667%}.t-col-xs-offset-2{margin-left:16.66666667%}.t-col-xs-order-2{order:2}.t-col-xs-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xs-push-1{left:8.33333333%}.t-col-xs-pull-1{right:8.33333333%}.t-col-xs-offset-1{margin-left:8.33333333%}.t-col-xs-order-1{order:1}.t-col-xs-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xs-push-0{left:auto}.t-col-xs-pull-0{right:auto}.t-col-xs-offset-0{margin-left:0}.t-col-xs-order-0{order:0}@media (min-width:768px){.t-col-sm-12{display:block;flex:0 0 100%;max-width:100%}.t-col-sm-push-12{left:100%}.t-col-sm-pull-12{right:100%}.t-col-sm-offset-12{margin-left:100%}.t-col-sm-order-12{order:12}.t-col-sm-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-sm-push-11{left:91.66666667%}.t-col-sm-pull-11{right:91.66666667%}.t-col-sm-offset-11{margin-left:91.66666667%}.t-col-sm-order-11{order:11}.t-col-sm-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-sm-push-10{left:83.33333333%}.t-col-sm-pull-10{right:83.33333333%}.t-col-sm-offset-10{margin-left:83.33333333%}.t-col-sm-order-10{order:10}.t-col-sm-9{display:block;flex:0 0 75%;max-width:75%}.t-col-sm-push-9{left:75%}.t-col-sm-pull-9{right:75%}.t-col-sm-offset-9{margin-left:75%}.t-col-sm-order-9{order:9}.t-col-sm-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-sm-push-8{left:66.66666667%}.t-col-sm-pull-8{right:66.66666667%}.t-col-sm-offset-8{margin-left:66.66666667%}.t-col-sm-order-8{order:8}.t-col-sm-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-sm-push-7{left:58.33333333%}.t-col-sm-pull-7{right:58.33333333%}.t-col-sm-offset-7{margin-left:58.33333333%}.t-col-sm-order-7{order:7}.t-col-sm-6{display:block;flex:0 0 50%;max-width:50%}.t-col-sm-push-6{left:50%}.t-col-sm-pull-6{right:50%}.t-col-sm-offset-6{margin-left:50%}.t-col-sm-order-6{order:6}.t-col-sm-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-sm-push-5{left:41.66666667%}.t-col-sm-pull-5{right:41.66666667%}.t-col-sm-offset-5{margin-left:41.66666667%}.t-col-sm-order-5{order:5}.t-col-sm-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-sm-push-4{left:33.33333333%}.t-col-sm-pull-4{right:33.33333333%}.t-col-sm-offset-4{margin-left:33.33333333%}.t-col-sm-order-4{order:4}.t-col-sm-3{display:block;flex:0 0 25%;max-width:25%}.t-col-sm-push-3{left:25%}.t-col-sm-pull-3{right:25%}.t-col-sm-offset-3{margin-left:25%}.t-col-sm-order-3{order:3}.t-col-sm-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-sm-push-2{left:16.66666667%}.t-col-sm-pull-2{right:16.66666667%}.t-col-sm-offset-2{margin-left:16.66666667%}.t-col-sm-order-2{order:2}.t-col-sm-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-sm-push-1{left:8.33333333%}.t-col-sm-pull-1{right:8.33333333%}.t-col-sm-offset-1{margin-left:8.33333333%}.t-col-sm-order-1{order:1}.t-col-sm-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-sm-push-0{left:auto}.t-col-sm-pull-0{right:auto}.t-col-sm-offset-0{margin-left:0}.t-col-sm-order-0{order:0}}@media (min-width:992px){.t-col-md-12{display:block;flex:0 0 100%;max-width:100%}.t-col-md-push-12{left:100%}.t-col-md-pull-12{right:100%}.t-col-md-offset-12{margin-left:100%}.t-col-md-order-12{order:12}.t-col-md-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-md-push-11{left:91.66666667%}.t-col-md-pull-11{right:91.66666667%}.t-col-md-offset-11{margin-left:91.66666667%}.t-col-md-order-11{order:11}.t-col-md-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-md-push-10{left:83.33333333%}.t-col-md-pull-10{right:83.33333333%}.t-col-md-offset-10{margin-left:83.33333333%}.t-col-md-order-10{order:10}.t-col-md-9{display:block;flex:0 0 75%;max-width:75%}.t-col-md-push-9{left:75%}.t-col-md-pull-9{right:75%}.t-col-md-offset-9{margin-left:75%}.t-col-md-order-9{order:9}.t-col-md-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-md-push-8{left:66.66666667%}.t-col-md-pull-8{right:66.66666667%}.t-col-md-offset-8{margin-left:66.66666667%}.t-col-md-order-8{order:8}.t-col-md-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-md-push-7{left:58.33333333%}.t-col-md-pull-7{right:58.33333333%}.t-col-md-offset-7{margin-left:58.33333333%}.t-col-md-order-7{order:7}.t-col-md-6{display:block;flex:0 0 50%;max-width:50%}.t-col-md-push-6{left:50%}.t-col-md-pull-6{right:50%}.t-col-md-offset-6{margin-left:50%}.t-col-md-order-6{order:6}.t-col-md-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-md-push-5{left:41.66666667%}.t-col-md-pull-5{right:41.66666667%}.t-col-md-offset-5{margin-left:41.66666667%}.t-col-md-order-5{order:5}.t-col-md-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-md-push-4{left:33.33333333%}.t-col-md-pull-4{right:33.33333333%}.t-col-md-offset-4{margin-left:33.33333333%}.t-col-md-order-4{order:4}.t-col-md-3{display:block;flex:0 0 25%;max-width:25%}.t-col-md-push-3{left:25%}.t-col-md-pull-3{right:25%}.t-col-md-offset-3{margin-left:25%}.t-col-md-order-3{order:3}.t-col-md-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-md-push-2{left:16.66666667%}.t-col-md-pull-2{right:16.66666667%}.t-col-md-offset-2{margin-left:16.66666667%}.t-col-md-order-2{order:2}.t-col-md-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-md-push-1{left:8.33333333%}.t-col-md-pull-1{right:8.33333333%}.t-col-md-offset-1{margin-left:8.33333333%}.t-col-md-order-1{order:1}.t-col-md-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-md-push-0{left:auto}.t-col-md-pull-0{right:auto}.t-col-md-offset-0{margin-left:0}.t-col-md-order-0{order:0}}@media (min-width:1200px){.t-col-lg-12{display:block;flex:0 0 100%;max-width:100%}.t-col-lg-push-12{left:100%}.t-col-lg-pull-12{right:100%}.t-col-lg-offset-12{margin-left:100%}.t-col-lg-order-12{order:12}.t-col-lg-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-lg-push-11{left:91.66666667%}.t-col-lg-pull-11{right:91.66666667%}.t-col-lg-offset-11{margin-left:91.66666667%}.t-col-lg-order-11{order:11}.t-col-lg-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-lg-push-10{left:83.33333333%}.t-col-lg-pull-10{right:83.33333333%}.t-col-lg-offset-10{margin-left:83.33333333%}.t-col-lg-order-10{order:10}.t-col-lg-9{display:block;flex:0 0 75%;max-width:75%}.t-col-lg-push-9{left:75%}.t-col-lg-pull-9{right:75%}.t-col-lg-offset-9{margin-left:75%}.t-col-lg-order-9{order:9}.t-col-lg-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-lg-push-8{left:66.66666667%}.t-col-lg-pull-8{right:66.66666667%}.t-col-lg-offset-8{margin-left:66.66666667%}.t-col-lg-order-8{order:8}.t-col-lg-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-lg-push-7{left:58.33333333%}.t-col-lg-pull-7{right:58.33333333%}.t-col-lg-offset-7{margin-left:58.33333333%}.t-col-lg-order-7{order:7}.t-col-lg-6{display:block;flex:0 0 50%;max-width:50%}.t-col-lg-push-6{left:50%}.t-col-lg-pull-6{right:50%}.t-col-lg-offset-6{margin-left:50%}.t-col-lg-order-6{order:6}.t-col-lg-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-lg-push-5{left:41.66666667%}.t-col-lg-pull-5{right:41.66666667%}.t-col-lg-offset-5{margin-left:41.66666667%}.t-col-lg-order-5{order:5}.t-col-lg-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-lg-push-4{left:33.33333333%}.t-col-lg-pull-4{right:33.33333333%}.t-col-lg-offset-4{margin-left:33.33333333%}.t-col-lg-order-4{order:4}.t-col-lg-3{display:block;flex:0 0 25%;max-width:25%}.t-col-lg-push-3{left:25%}.t-col-lg-pull-3{right:25%}.t-col-lg-offset-3{margin-left:25%}.t-col-lg-order-3{order:3}.t-col-lg-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-lg-push-2{left:16.66666667%}.t-col-lg-pull-2{right:16.66666667%}.t-col-lg-offset-2{margin-left:16.66666667%}.t-col-lg-order-2{order:2}.t-col-lg-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-lg-push-1{left:8.33333333%}.t-col-lg-pull-1{right:8.33333333%}.t-col-lg-offset-1{margin-left:8.33333333%}.t-col-lg-order-1{order:1}.t-col-lg-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-lg-push-0{left:auto}.t-col-lg-pull-0{right:auto}.t-col-lg-offset-0{margin-left:0}.t-col-lg-order-0{order:0}}@media (min-width:1400px){.t-col-xl-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xl-push-12{left:100%}.t-col-xl-pull-12{right:100%}.t-col-xl-offset-12{margin-left:100%}.t-col-xl-order-12{order:12}.t-col-xl-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xl-push-11{left:91.66666667%}.t-col-xl-pull-11{right:91.66666667%}.t-col-xl-offset-11{margin-left:91.66666667%}.t-col-xl-order-11{order:11}.t-col-xl-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xl-push-10{left:83.33333333%}.t-col-xl-pull-10{right:83.33333333%}.t-col-xl-offset-10{margin-left:83.33333333%}.t-col-xl-order-10{order:10}.t-col-xl-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xl-push-9{left:75%}.t-col-xl-pull-9{right:75%}.t-col-xl-offset-9{margin-left:75%}.t-col-xl-order-9{order:9}.t-col-xl-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xl-push-8{left:66.66666667%}.t-col-xl-pull-8{right:66.66666667%}.t-col-xl-offset-8{margin-left:66.66666667%}.t-col-xl-order-8{order:8}.t-col-xl-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xl-push-7{left:58.33333333%}.t-col-xl-pull-7{right:58.33333333%}.t-col-xl-offset-7{margin-left:58.33333333%}.t-col-xl-order-7{order:7}.t-col-xl-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xl-push-6{left:50%}.t-col-xl-pull-6{right:50%}.t-col-xl-offset-6{margin-left:50%}.t-col-xl-order-6{order:6}.t-col-xl-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xl-push-5{left:41.66666667%}.t-col-xl-pull-5{right:41.66666667%}.t-col-xl-offset-5{margin-left:41.66666667%}.t-col-xl-order-5{order:5}.t-col-xl-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xl-push-4{left:33.33333333%}.t-col-xl-pull-4{right:33.33333333%}.t-col-xl-offset-4{margin-left:33.33333333%}.t-col-xl-order-4{order:4}.t-col-xl-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xl-push-3{left:25%}.t-col-xl-pull-3{right:25%}.t-col-xl-offset-3{margin-left:25%}.t-col-xl-order-3{order:3}.t-col-xl-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xl-push-2{left:16.66666667%}.t-col-xl-pull-2{right:16.66666667%}.t-col-xl-offset-2{margin-left:16.66666667%}.t-col-xl-order-2{order:2}.t-col-xl-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xl-push-1{left:8.33333333%}.t-col-xl-pull-1{right:8.33333333%}.t-col-xl-offset-1{margin-left:8.33333333%}.t-col-xl-order-1{order:1}.t-col-xl-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xl-push-0{left:auto}.t-col-xl-pull-0{right:auto}.t-col-xl-offset-0{margin-left:0}.t-col-xl-order-0{order:0}}@media (min-width:1880px){.t-col-xxl-12{display:block;flex:0 0 100%;max-width:100%}.t-col-xxl-push-12{left:100%}.t-col-xxl-pull-12{right:100%}.t-col-xxl-offset-12{margin-left:100%}.t-col-xxl-order-12{order:12}.t-col-xxl-11{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.t-col-xxl-push-11{left:91.66666667%}.t-col-xxl-pull-11{right:91.66666667%}.t-col-xxl-offset-11{margin-left:91.66666667%}.t-col-xxl-order-11{order:11}.t-col-xxl-10{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.t-col-xxl-push-10{left:83.33333333%}.t-col-xxl-pull-10{right:83.33333333%}.t-col-xxl-offset-10{margin-left:83.33333333%}.t-col-xxl-order-10{order:10}.t-col-xxl-9{display:block;flex:0 0 75%;max-width:75%}.t-col-xxl-push-9{left:75%}.t-col-xxl-pull-9{right:75%}.t-col-xxl-offset-9{margin-left:75%}.t-col-xxl-order-9{order:9}.t-col-xxl-8{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.t-col-xxl-push-8{left:66.66666667%}.t-col-xxl-pull-8{right:66.66666667%}.t-col-xxl-offset-8{margin-left:66.66666667%}.t-col-xxl-order-8{order:8}.t-col-xxl-7{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.t-col-xxl-push-7{left:58.33333333%}.t-col-xxl-pull-7{right:58.33333333%}.t-col-xxl-offset-7{margin-left:58.33333333%}.t-col-xxl-order-7{order:7}.t-col-xxl-6{display:block;flex:0 0 50%;max-width:50%}.t-col-xxl-push-6{left:50%}.t-col-xxl-pull-6{right:50%}.t-col-xxl-offset-6{margin-left:50%}.t-col-xxl-order-6{order:6}.t-col-xxl-5{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.t-col-xxl-push-5{left:41.66666667%}.t-col-xxl-pull-5{right:41.66666667%}.t-col-xxl-offset-5{margin-left:41.66666667%}.t-col-xxl-order-5{order:5}.t-col-xxl-4{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.t-col-xxl-push-4{left:33.33333333%}.t-col-xxl-pull-4{right:33.33333333%}.t-col-xxl-offset-4{margin-left:33.33333333%}.t-col-xxl-order-4{order:4}.t-col-xxl-3{display:block;flex:0 0 25%;max-width:25%}.t-col-xxl-push-3{left:25%}.t-col-xxl-pull-3{right:25%}.t-col-xxl-offset-3{margin-left:25%}.t-col-xxl-order-3{order:3}.t-col-xxl-2{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.t-col-xxl-push-2{left:16.66666667%}.t-col-xxl-pull-2{right:16.66666667%}.t-col-xxl-offset-2{margin-left:16.66666667%}.t-col-xxl-order-2{order:2}.t-col-xxl-1{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.t-col-xxl-push-1{left:8.33333333%}.t-col-xxl-pull-1{right:8.33333333%}.t-col-xxl-offset-1{margin-left:8.33333333%}.t-col-xxl-order-1{order:1}.t-col-xxl-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xxl-push-0{left:auto}.t-col-xxl-pull-0{right:auto}.t-col-xxl-offset-0{margin-left:0}.t-col-xxl-order-0{order:0}}.t-layout{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-layout,.t-layout__direction-vertical{background:var(--td-bg-color-page);display:flex;flex:auto;flex-direction:column}.t-layout--with-sider,.t-layout__direction-horizontal{flex-direction:row}.t-layout__header{background-color:var(--td-bg-color-container);height:var(--td-comp-size-xxxl)}.t-layout__content{flex:auto}.t-layout__sider{background:var(--td-bg-color-container);position:relative;transition:all .2s;width:232px}.t-layout__footer{color:var(--td-text-color-placeholder);padding:24px}.t-divider{border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;margin:var(--td-comp-margin-xxl) 0;padding:0}.t-divider--dashed{border-top-style:dashed}.t-divider--horizontal{display:flex;width:100%}.t-divider--vertical{border-left:1px solid var(--td-border-level-1-color);border-top:0;display:inline-block;height:.9em;margin:0 var(--td-comp-margin-m);vertical-align:middle}.t-divider--with-text{align-items:center;border-top:0;display:flex;white-space:nowrap}.t-divider--with-text .t-divider__inner-text:not(:empty){display:inline-block;padding:0 1em}.t-divider--with-text:after,.t-divider--with-text:before{border-top:1px solid var(--td-border-level-1-color);content:"";width:50%}.t-divider--with-text-left:before{width:5%}.t-divider--with-text-left:after,.t-divider--with-text-right:before{width:95%}.t-divider--with-text-right:after{width:5%}.t-divider--dashed:after,.t-divider--dashed:before{border-top:1px dashed var(--td-border-level-1-color)}.t-divider--vertical.t-divider--dashed{border-left:1px dashed var(--td-border-level-1-color)}.t-space{display:inline-flex}.t-space .t-space-item{width:inherit}.t-space-align-start{align-items:flex-start}.t-space-align-end{align-items:flex-end}.t-space-align-baseline{align-items:baseline}.t-space-align-center{align-items:center}.t-space-vertical{flex-direction:column}.t-space-vertical .t-space-item-separator{width:100%}.t-space.t-space--break-line{flex-wrap:wrap}.t-space.t-space--polyfill{display:flex}.t-space.t-space--polyfill.t-space--break-line,.t-space.t-space--polyfill.t-space-horizontal{margin-left:calc(var(--td-space-column-gap, 0)*-1)}.t-space.t-space--polyfill.t-space--break-line,.t-space.t-space--polyfill.t-space-vertical{margin-top:calc(var(--td-space-row-gap, 0)*-1)}.t-space.t-space--polyfill.t-space--break-line>*,.t-space.t-space--polyfill.t-space-horizontal>*{margin-left:var(--td-space-column-gap)}.t-space.t-space--polyfill.t-space--break-line>*,.t-space.t-space--polyfill.t-space-vertical>*{margin-top:var(--td-space-row-gap)}.t-descriptions{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-descriptions__header{color:var(--td-text-color-primary);font:var(--td-font-title-medium);font-weight:600;margin-bottom:var(--td-comp-margin-m)}.t-descriptions__body{border-collapse:collapse;font:var(--td-font-body-medium);width:100%}.t-descriptions__body.t-size-l>tbody>tr>td{padding:var(--td-comp-paddingTB-l)}.t-descriptions__body.t-size-m>tbody>tr>td{padding:var(--td-comp-paddingLR-m) var(--td-comp-paddingLR-l)}.t-descriptions__body.t-size-s>tbody>tr>td{padding:var(--td-comp-paddingLR-s) var(--td-comp-paddingLR-l)}.t-descriptions__body .t-descriptions__label{color:var(--td-text-color-placeholder)}.t-descriptions__body--fixed{table-layout:fixed}.t-descriptions__body--border>tbody>tr>td{border:1px solid var(--td-component-border)}.t-descriptions__body--border .t-descriptions__label{background-color:var(--td-bg-color-secondarycontainer)}.t-descriptions__body--border .t-descriptions__label:hover{background-color:var(--td-bg-color-container-hover)}.t-affix{position:fixed;z-index:500}.content-placement-top .t-popup[data-popper-placement^=top] .t-popup__content{margin-bottom:var(--td-comp-margin-s)}.content-placement-top .t-popup[data-popper-placement^=top] .t-popup__content--arrow{margin-bottom:var(--td-comp-margin-l)}.content-placement-bottom .t-popup[data-popper-placement^=bottom] .t-popup__content{margin-top:var(--td-comp-margin-s)}.content-placement-bottom .t-popup[data-popper-placement^=bottom] .t-popup__content--arrow{margin-top:var(--td-comp-margin-l)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content{margin-right:var(--td-comp-margin-s)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content--arrow{margin-right:var(--td-comp-margin-l)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content--text{max-width:480px}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content{margin-left:var(--td-comp-margin-s)}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content--arrow{margin-left:var(--td-comp-margin-l)}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content--text{max-width:480px}.t-popup{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;z-index:5500}.t-popup__content{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium);padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:relative;word-break:break-all}.t-popup__arrow{height:8px;position:absolute;width:8px;z-index:1}.t-popup__arrow:before{background:var(--td-bg-color-container);content:"";height:8px;position:absolute;transform:rotate(45deg);width:8px}.t-popup[data-popper-placement^=top] .t-popup__content{margin-bottom:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=top] .t-popup__content--arrow{margin-bottom:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=bottom] .t-popup__content{margin-top:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=bottom] .t-popup__content--arrow{margin-top:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=left] .t-popup__content{margin-right:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=left] .t-popup__content--arrow{margin-right:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=left] .t-popup__content--text{max-width:480px}.t-popup[data-popper-placement^=right] .t-popup__content{margin-left:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=right] .t-popup__content--arrow{margin-left:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=right] .t-popup__content--text{max-width:480px}.t-popup[data-popper-placement^=top] .t-popup__arrow:before{border-top-left-radius:100%;box-shadow:var(--td-shadow-inset-left),var(--td-shadow-inset-bottom)}.t-popup[data-popper-placement=top-start] .t-popup__arrow{left:8px}.t-popup[data-popper-placement=top] .t-popup__arrow{left:50%;margin-left:-4px}.t-popup[data-popper-placement=top-end] .t-popup__arrow{left:calc(100% - 16px)}.t-popup[data-popper-placement^=bottom] .t-popup__arrow{top:-4px}.t-popup[data-popper-placement^=bottom] .t-popup__arrow:before{border-bottom-right-radius:100%;box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right)}.t-popup[data-popper-placement=bottom-start] .t-popup__arrow{left:8px}.t-popup[data-popper-placement=bottom] .t-popup__arrow{left:50%;margin-left:-4px}.t-popup[data-popper-placement=bottom-end] .t-popup__arrow{left:calc(100% - 16px)}.t-popup[data-popper-placement^=left] .t-popup__arrow{right:-4px}.t-popup[data-popper-placement^=left] .t-popup__arrow:before{box-shadow:var(--td-shadow-inset-left),var(--td-shadow-inset-top)}.t-popup[data-popper-placement=left-start] .t-popup__arrow{top:8px}.t-popup[data-popper-placement=left] .t-popup__arrow{margin-top:-4px;top:50%}.t-popup[data-popper-placement=left-end] .t-popup__arrow{top:calc(100% - 16px)}.t-popup[data-popper-placement^=right] .t-popup__arrow{left:-4px}.t-popup[data-popper-placement^=right] .t-popup__arrow:before{box-shadow:var(--td-shadow-inset-right),var(--td-shadow-inset-bottom)}.t-popup[data-popper-placement=right-start] .t-popup__arrow{top:8px}.t-popup[data-popper-placement=right] .t-popup__arrow{margin-top:-4px;top:50%}.t-popup[data-popper-placement=right-end] .t-popup__arrow{top:calc(100% - 16px)}.t-popup--animation-enter,.t-popup--animation-enter-from,.t-popup--animation-exiting,.t-popup--animation-leave-to{opacity:0;visibility:hidden}.t-popup--animation-enter-to,.t-popup--animation-entering,.t-popup--animation-leave,.t-popup--animation-leave-from{opacity:1;transform:none;visibility:visible}.t-popup--animation-enter-active{transition:opacity .2s linear}.t-popup--animation-leave-active{transition:opacity .2s cubic-bezier(0,0,.15,1),visibility .2s cubic-bezier(.82,0,1,.9)}.t-popup--animation-expand-enter-active[data-popper-placement^=top]{animation:t-popup-animation-expand-in-top .2s cubic-bezier(.38,0,.24,1),t-fade-in .2s linear}.t-popup--animation-expand-leave-active[data-popper-placement^=top]{animation:t-popup-animation-expand-out-top .2s cubic-bezier(.38,0,.24,1),t-fade-out .2s cubic-bezier(0,0,.15,1)}@keyframes t-popup-animation-expand-in-top{0%{clip-path:polygon(-20% 120%,120% 120%,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}}@keyframes t-popup-animation-expand-out-top{0%{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 120%,120% 120%,120% 120%,-20% 120%)}}.t-popup--animation-expand-enter-active[data-popper-placement^=bottom]{animation:t-popup-animation-expand-in-bottom .2s cubic-bezier(.38,0,.24,1),t-fade-in .2s linear}.t-popup--animation-expand-leave-active[data-popper-placement^=bottom]{animation:t-popup-animation-expand-out-bottom .2s cubic-bezier(.38,0,.24,1),t-fade-out .2s cubic-bezier(0,0,.15,1)}@keyframes t-popup-animation-expand-in-bottom{0%{clip-path:polygon(-20% 0,120% 0,120% 0,-20% 0)}to{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}}@keyframes t-popup-animation-expand-out-bottom{0%{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 0,120% 0,120% 0,-20% 0)}}.t-anchor{--td-anchor-space-base:var(--td-size-6);background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:200px}.t-anchor .t-is-active>a{color:var(--td-brand-color)}.t-anchor__line{background-color:var(--td-component-stroke);cursor:pointer;height:100%;left:0;position:absolute;top:0;width:1px}.t-anchor__line-cursor-wrapper{display:block;height:0;opacity:0;position:absolute;transition:all .2s cubic-bezier(.24,.41,.51,.9)}.t-anchor__line-cursor-wrapper .t-anchor__line-cursor{background-color:var(--td-brand-color);height:100%;width:1px}.t-anchor__item{--level:1;display:flex;flex-direction:column;padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingTB-l);padding-left:calc(var(--level)*var(--td-anchor-space-base))}.t-anchor__item.t-is-active{font-weight:500}.t-anchor__item-link{color:var(--td-text-color-primary);display:inline-block;overflow:hidden;position:relative;text-align:justify;text-decoration:none;word-break:break-all}.t-anchor a{transition:color .2s linear}.t-anchor a:hover{color:var(--td-brand-color);cursor:pointer}.t-anchor a:active{color:var(--td-brand-color-active)}.t-anchor.t-size-s{width:120px}.t-anchor.t-size-l{width:320px}.t-anchor__target{color:var(--td-text-color-primary);cursor:pointer;font:var(--td-font-body-medium)}@keyframes fadeOut{0%{opacity:1}to{display:none;opacity:0}}.t-anchor__target .t-anchor__copy{display:none;margin:0 0 0 var(--td-comp-margin-xs)}.t-anchor__target:hover .t-anchor__copy{display:inline-block}.t-anchor__target:target:after{animation:fadeOut 2s linear 2s 1;animation-fill-mode:forwards;background-color:var(--td-brand-color);border-radius:var(--td-radius-circle);content:"";display:inline-block;height:6px;vertical-align:middle;width:6px}.t-tooltip .t-popup__content{border:0;border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;margin-bottom:1px;max-width:480px;word-break:break-word;z-index:5600}.t-tooltip--default .t-popup__content{background:var(--td-gray-color-13);box-shadow:inset 0 .5px 0 var(--td-gray-color-9),inset .5px 0 0 var(--td-gray-color-9),inset 0 -.5px 0 var(--td-gray-color-9),inset -.5px 0 0 var(--td-gray-color-9);color:var(--td-text-color-anti)}.t-tooltip--default[data-popper-placement^=left] .t-popup__arrow:before{box-shadow:inset -.5px 0 0 var(--td-gray-color-9),inset 0 .5px 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=right] .t-popup__arrow:before{box-shadow:inset .5px 0 0 var(--td-gray-color-9),inset 0 -.5px 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=top] .t-popup__arrow:before{box-shadow:inset 0 -.5px 0 var(--td-gray-color-9),inset -.5px 0 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=bottom] .t-popup__arrow:before{box-shadow:inset .5px 0 0 var(--td-gray-color-9),inset 0 .5px 0 var(--td-gray-color-9)}.t-tooltip--primary .t-popup__content{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-tooltip--success .t-popup__content{background:var(--td-success-color-light);color:var(--td-success-color)}.t-tooltip--danger .t-popup__content{background:var(--td-error-color-light);color:var(--td-error-color)}.t-tooltip--warning .t-popup__content{background:var(--td-warning-color-light);color:var(--td-warning-color)}.t-tooltip .t-popup__arrow{background:inherit;height:auto}.t-tooltip .t-popup__arrow:before{background:inherit}.t-tooltip--noshadow .t-popup__content,.t-tooltip--noshadow[data-popper-placement] .t-popup__arrow:before{box-shadow:none}@keyframes changeColor{0%{color:var(--td-brand-color-hover)}to{color:var(--td-brand-color-active)}}.t-breadcrumb{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-breadcrumb__separator{align-items:center;display:flex;margin:0 var(--td-comp-margin-xs)}.t-breadcrumb__item,.t-breadcrumb__separator .t-icon{color:var(--td-text-color-placeholder)}.t-breadcrumb__item{align-items:center;display:flex;text-decoration:none}.t-breadcrumb__item.t-is-current{color:var(--td-text-color-primary)}.t-breadcrumb__item.t-is-current .t-icon{color:var(--td-text-color-placeholder)}.t-breadcrumb__item:last-child{color:var(--td-text-color-primary)}.t-breadcrumb__item:last-child .t-breadcrumb__separator{display:none}.t-breadcrumb__item .t-icon{font-size:var(--td-font-size-body-large)}.t-breadcrumb__item .t-link{color:inherit;text-decoration:none}.t-breadcrumb__item .t-link:hover{color:var(--td-brand-color)}.t-breadcrumb__item .t-is-disabled{cursor:not-allowed}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner{color:var(--td-text-color-disabled)}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner:hover{color:var(--td-text-color-disabled);cursor:not-allowed}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner:active{animation:none}.t-breadcrumb__item--arrow,.t-breadcrumb__item--slash{color:var(--td-text-color-placeholder);display:inline-block;line-height:0;margin:0 var(--td-comp-margin-xs);vertical-align:middle}.t-breadcrumb__inner{display:inline-block;font:var(--td-font-body-medium);vertical-align:middle;word-break:break-all}.t-breadcrumb__inner .t-icon{margin:0 var(--td-comp-margin-xs)}.t-breadcrumb__select{position:relative}.t-breadcrumb__select:hover .t-breadcrumb__option{display:block}.t-breadcrumb__select-item:hover .t-icon{color:var(--td-brand-color)}.t-breadcrumb__option{background:var(--td-bg-color-container);box-shadow:var(--td-shadow-2);display:none;left:50%;max-width:120px;position:absolute;top:28px;transform:translateX(-50%);z-index:20}.t-breadcrumb__option-item{color:var(--td-text-color-primary);font:var(--td-font-body-medium);overflow:hidden;padding:8px;text-overflow:ellipsis;white-space:nowrap}.t-breadcrumb__option-item.t-is-active,.t-breadcrumb__option-item:hover{color:var(--td-brand-color)}.t-breadcrumb__inner-msg{background:var(--td-bg-color-container);border-radius:calc(var(--td-radius-default)*.5);bottom:30px;box-shadow:var(--td-shadow-2);color:var(--td-text-color-primary);display:none;left:50%;padding:8px;position:absolute;transform:translateX(-50%);width:300px;z-index:20}.t-breadcrumb__inner-msg:before{border-color:var(--td-bg-color-container) transparent transparent transparent;border-style:solid;border-width:8px 6px 0;bottom:-8px;content:"";height:0;left:50%;margin-left:-4px;position:absolute;width:0;z-index:20}.t-breadcrumb--text-overflow{align-items:center;display:flex;position:relative}.t-breadcrumb--text-overflow:hover .t-breadcrumb__inner-msg{display:block}.t-breadcrumb--text-overflow .t-breadcrumb__inner{align-items:center;display:flex;max-width:120px;transition:color .2s linear}.t-breadcrumb--text-overflow .t-breadcrumb__inner-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-breadcrumb--text-overflow .t-breadcrumb__inner:hover{color:var(--td-brand-color);cursor:pointer}.t-breadcrumb--text-overflow .t-breadcrumb__inner:active{animation:changeColor .2s linear}.t-dropdown{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);box-shadow:var(--td-shadow-2);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);font-size:var(--td-font-size-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-dropdown,.t-dropdown__menu{border-radius:var(--td-radius-medium)}.t-dropdown__menu{display:flex;flex-direction:column;gap:2px;justify-content:flex-start;overflow-x:hidden;overflow-y:auto;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-dropdown__menu{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dropdown__menu::-webkit-scrollbar{height:8px;width:8px}.t-dropdown__menu::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-dropdown__menu::-webkit-scrollbar-thumb:horizontal:hover,.t-dropdown__menu::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dropdown__menu .t-divider{color:var(--td-brand-color-light);margin:var(--td-comp-margin-xs) var(--td-comp-margin-s) var(--td-comp-margin-xxs) var(--td-comp-margin-s);width:calc(100% - var(--td-comp-margin-s)*2)}.t-dropdown__menu .t-dropdown__item-direction{margin:0 0 0 var(--td-comp-margin-s)}.t-dropdown__menu--overflow .t-dropdown__submenu-wrapper--right{left:calc(100% - 14px)}.t-dropdown__menu--overflow .t-dropdown__submenu-wrapper--left{right:calc(100% - 14px)}.t-dropdown__submenu{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2);display:none;overflow-x:visible;overflow-y:auto;padding:var(--td-pop-padding-m);position:absolute;z-index:1100}@-moz-document url-prefix(){.t-dropdown__submenu{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dropdown__submenu::-webkit-scrollbar{height:8px;width:8px}.t-dropdown__submenu::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-dropdown__submenu::-webkit-scrollbar-thumb:horizontal:hover,.t-dropdown__submenu::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dropdown__submenu ul{display:grid;gap:2px;list-style:none;padding-left:0}.t-dropdown__submenu--disabled{visibility:hidden}.t-dropdown__submenu .t-dropdown__item-direction{margin:0 0 0 var(--td-comp-margin-s)}.t-dropdown__submenu-wrapper--right{left:calc(100% - 6px)}.t-dropdown__submenu-wrapper--left{right:calc(100% - 6px)}.t-dropdown__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);cursor:pointer;display:flex;font:var(--td-font-body-medium);outline:none;padding:calc(var(--td-comp-paddingTB-xs) - 1px) var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.82,0,1,.9);user-select:none;white-space:nowrap}.t-dropdown__item-icon{color:currentcolor;display:flex;font-size:var(--td-font-size-body-large);margin-right:var(--td-comp-margin-s)}.t-dropdown__item:hover>div>div{display:flex}.t-dropdown__item--disabled{cursor:not-allowed}.t-dropdown__item-content{align-items:center;display:flex;flex:1;justify-content:space-between;max-width:100%}.t-dropdown__item-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-dropdown__item.t-dropdown__item--suffix .t-dropdown__item-sub-icon{color:currentcolor;flex-shrink:0;font-size:var(--td-font-size-body-large)}.t-dropdown__item--theme-default{color:var(--td-text-color-primary)}.t-dropdown__item--theme-default:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--active{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-dropdown__item--theme-default.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-default.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--suffix:hover{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-dropdown__item--theme-success{color:var(--td-success-color)}.t-dropdown__item--theme-success:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item--active{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-success.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item-disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-success.t-dropdown__item-disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--suffix:hover{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-error{color:var(--td-error-color)}.t-dropdown__item--theme-error:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--active{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-error.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-error.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--suffix:hover{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-warning{color:var(--td-warning-color)}.t-dropdown__item--theme-warning:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--active{background-color:var(--td-warning-color-light)}.t-dropdown__item--theme-warning.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--suffix:hover{background-color:var(--td-warning-color-light)}.t-tabs{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;overflow:hidden;padding:0}.t-tabs__header.t-is-left{float:left}.t-tabs__header.t-is-right{float:right}.t-tabs__header .t-icon{font-size:var(--td-font-size-body-large)}.t-tabs__nav{overflow:hidden;position:relative;user-select:none}.t-tabs__operations{background-color:var(--td-bg-color-container);border-bottom:1px solid var(--td-component-stroke);display:flex;flex-direction:row;position:absolute}.t-tabs__operations--left{left:0;z-index:2}.t-tabs__operations--right{right:0;z-index:2}.t-tabs__operations--right .t-tabs__btn:first-child{box-shadow:-10px 0 20px 5px rgba(0,0,0,.05)}.t-tabs__operations--right .t-tabs__nav-action{align-items:center;display:flex;flex:1;width:100%}.t-tabs__btn{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-left:1px solid var(--td-component-stroke);color:var(--td-text-color-secondary);cursor:pointer;display:flex;font:var(--td-font-body-large);height:100%;justify-content:center;opacity:1;transition:all .24s cubic-bezier(.38,0,.24,1);width:40px;z-index:1}.t-tabs__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__btn--left{border-right:1px solid var(--td-component-stroke);box-shadow:10px 0 20px 5px rgba(0,0,0,.05)}.t-tabs__btn--left.fade-enter,.t-tabs__btn--left.fade-enter-from,.t-tabs__btn--left.fade-leave-to{transform:translateX(-50px)}.t-tabs__btn--right.fade-enter,.t-tabs__btn--right.fade-enter-from,.t-tabs__btn--right.fade-leave-to{transform:translateX(50px)}.t-tabs__nav-container{position:relative}.t-tabs__nav-container.t-is-top:after{bottom:0;top:auto}.t-tabs__nav-container.t-is-bottom:after,.t-tabs__nav-container.t-is-top:after{background-color:var(--td-component-stroke);content:"";height:1px;left:0;position:absolute;right:auto;width:100%}.t-tabs__nav-container.t-is-bottom:after{bottom:auto;top:0}.t-tabs__nav-container.t-is-left:after{left:auto;right:0}.t-tabs__nav-container.t-is-left:after,.t-tabs__nav-container.t-is-right:after{background-color:var(--td-component-stroke);bottom:auto;content:"";height:100%;position:absolute;top:0;width:1px}.t-tabs__nav-container.t-is-right:after{left:0;right:auto}.t-tabs__nav-container.t-is-addable{margin-right:40px}.t-tabs__nav-container.t-tabs__nav--card:after{background-color:transparent;content:""}.t-tabs__scroll-btn{background-color:var(--td-bg-color-secondarycontainer);border-bottom:1px solid var(--td-component-stroke);color:var(--td-text-color-secondary);cursor:pointer;display:block;font:var(--td-font-body-large);height:100%;position:absolute;text-align:center;width:40px;z-index:1}.t-tabs__scroll-btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__scroll-btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-scroll{align-self:stretch;display:inline-block;display:flex;flex:auto;overflow:hidden;position:relative;transform:translate(0);white-space:nowrap;z-index:1}.t-tabs__nav-wrap{display:flex;font-size:0;position:relative}.t-tabs__nav-wrap.t-is-smooth{transition:transform .24s cubic-bezier(0,0,.15,1)}.t-tabs__nav-wrap.t-is-vertical{flex-direction:column}.t-tabs__bar{background-color:var(--td-brand-color);border-radius:var(--td-radius-small);position:absolute;transition:all .24s cubic-bezier(.38,0,.24,1);z-index:1}.t-tabs__bar.t-is-top{bottom:0;height:3px;left:0}.t-tabs__bar.t-is-bottom{height:3px;left:0;top:0}.t-tabs__bar.t-is-left{right:0;top:0;width:3px}.t-tabs__bar.t-is-right{left:0;top:0;width:3px}.t-tabs__nav-item{color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font:var(--td-font-body-medium);overflow:hidden;position:relative;z-index:0}.t-tabs__nav-item,.t-tabs__nav-item-wrapper{--ripple-color:var(--td-bg-color-container-active);align-items:center;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav-item-wrapper{border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-m);margin-left:var(--td-comp-margin-s);margin-right:var(--td-comp-margin-s);padding:0 var(--td-comp-paddingLR-s)}.t-tabs__nav-item.t-size-l{font:var(--td-font-body-large)}.t-tabs__nav-item.t-size-l .t-tabs__nav-item-wrapper{height:var(--td-comp-size-xxl);padding:0 var(--td-comp-paddingLR-m)}.t-tabs__nav-item-text-wrapper{align-items:center;display:flex;position:relative}.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover .t-tabs__nav-item-wrapper{background-color:var(--td-bg-color-container-hover)}.t-tabs__nav-item.t-is-left,.t-tabs__nav-item.t-is-right{align-items:center;display:flex}.t-tabs__nav-item.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__nav-item.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-item.t-is-active{color:var(--td-brand-color);text-shadow:0 0 .3px currentcolor}.t-tabs__nav-item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-tabs__nav-item>.remove-btn{margin-left:var(--td-comp-margin-s);transition:all .3s cubic-bezier(.645,.045,.355,1)}.t-tabs__nav--card{background-color:var(--td-bg-color-secondarycontainer)}.t-tabs__nav--card.t-tabs__nav-item{border-bottom:1px solid var(--td-component-stroke);padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-tabs__nav--card.t-tabs__nav-item:after{display:none}.t-tabs__nav--card.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__nav--card.t-tabs__nav-item:not(:first-of-type){border-left:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item:last-of-type{border-right:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item.t-is-active{background-color:var(--td-bg-color-container);border-bottom-color:var(--td-bg-color-container);color:var(--td-brand-color)}.t-tabs__nav--card.t-tabs__nav-item.t-size-l{padding-left:var(--td-comp-paddingLR-xl);padding-right:var(--td-comp-paddingLR-xl)}.t-tabs__nav--card .t-icon-close{color:var(--td-text-color-secondary);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav--card .t-icon-close:hover{color:var(--td-text-color-primary)}.t-tabs__content{overflow:hidden;position:relative}.t-tab-panel.t-is-hidden{display:none}a.t-menu__item{color:unset;text-decoration:none}a.t-menu__item:active,a.t-menu__item:hover{color:inherit}.t-menu__logo>*{margin-left:var(--td-comp-margin-xxl)}.t-head-menu{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:100%}.t-head-menu__inner{display:flex;height:var(--td-comp-size-xxxl)}.t-head-menu__inner li+li{margin-left:var(--td-comp-margin-s)}.t-head-menu__inner .t-menu:first-child{margin-left:var(--td-comp-margin-xxl)}.t-head-menu .t-menu__logo:not(:empty){height:100%;margin-right:var(--td-comp-margin-xxxl)}.t-head-menu .t-menu{align-items:center;display:flex;flex:1}.t-head-menu .t-menu__operations:not(:empty){align-items:center;display:flex;height:var(--td-comp-size-xxxl);line-height:64px;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;text-align:right}.t-head-menu .t-menu__operations-icon{box-sizing:border-box;height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:var(--td-comp-size-m)}.t-head-menu .t-submenu>.t-menu__item{overflow:unset}.t-head-menu .t-submenu>.t-menu__item:before{bottom:-20px;content:"";display:block;height:20px;left:0;position:absolute;right:0}.t-head-menu .t-menu__item{gap:var(--td-comp-margin-m);height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-l);transition:all .28s cubic-bezier(.645,.045,.355,1)}.t-head-menu__submenu{border-top:1px solid var(--td-component-stroke);padding-left:0}.t-default-menu{background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;transition:width .28s cubic-bezier(.645,.045,.355,1);white-space:nowrap;width:232px}.t-default-menu .t-menu__item{color:var(--td-text-color-secondary)}.t-default-menu.t-is-collapsed{width:64px}.t-default-menu.t-is-collapsed .t-menu__logo>*{margin-left:var(--td-comp-margin-l)}.t-default-menu.t-is-collapsed .t-menu .t-menu__item{justify-content:center;padding:0 14px}.t-default-menu.t-is-collapsed .t-menu .t-menu__item .t-menu__item-link{bottom:0;content:"";left:0;margin-left:0;opacity:0;position:absolute;right:0;top:0}.t-default-menu.t-is-collapsed .t-fake-arrow{display:none}.t-default-menu.t-is-collapsed .t-menu__item{text-overflow:clip}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-menu__item--plain:after{content:""}.t-default-menu.t-is-collapsed .t-menu__item span{display:none}.t-default-menu.t-is-collapsed .t-menu__item .t-icon{margin-right:0}.t-default-menu.t-is-collapsed .t-submenu-icon{display:none}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item{min-width:auto}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item:after{bottom:0;content:"";display:block;position:absolute;right:-20px;top:0;width:20px}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title{display:none}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title+*{margin-top:0}.t-default-menu.t-is-collapsed .t-menu-group__title{font-size:0;padding:0}.t-default-menu.t-is-collapsed .t-menu-group__title:after{background:var(--td-component-stroke);content:"";display:block;height:1px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:20px}.t-default-menu.t-is-collapsed .t-menu__operations{text-align:center}.t-default-menu.t-is-collapsed .t-menu__operations-icon{display:block}.t-default-menu.t-is-collapsed .t-menu__log>*{margin:0 auto}.t-default-menu__inner{display:flex;flex-direction:column;height:100%}.t-default-menu__inner .t-menu__logo:not(:empty){border-bottom:1px solid var(--td-component-stroke);box-sizing:border-box;height:var(--td-comp-size-xxxl);width:100%}.t-default-menu__inner .t-menu{flex:1;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-s);position:relative}.t-default-menu__inner .t-menu--scroll{overflow-x:hidden;overflow-y:auto}@-moz-document url-prefix(){.t-default-menu__inner .t-menu--scroll{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar{height:6px;width:6px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:horizontal:hover,.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-default-menu__inner .t-menu .t-menu-group>:not(:first-child),.t-default-menu__inner .t-menu .t-menu__sub>:not(:first-child),.t-default-menu__inner .t-menu .t-submenu>:not(:first-child),.t-default-menu__inner .t-menu>:not(.t-menu-group):not(:first-child){margin-top:var(--td-comp-margin-xs)}.t-default-menu__inner .t-menu-group__title{box-sizing:border-box;color:var(--td-text-color-placeholder);font-size:var(--td-font-body-small);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l);position:relative}.t-default-menu .t-submenu{position:relative}.t-default-menu .t-menu__operations:not(:empty){border-top:1px solid var(--td-component-stroke);box-sizing:border-box;left:0;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l);position:relative;text-align:left;top:0;width:100%}.t-default-menu .t-menu__operations-icon{box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;height:32px;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);width:32px}.t-default-menu .t-menu__item.t-is-opened{background-color:unset;color:var(--td-text-color-primary)}.t-default-menu .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-primary)}.t-default-menu .t-menu__sub{overflow:hidden;padding:0}.t-default-menu .t-menu__sub .t-menu__item{padding-left:var(--padding-left,32px)}.t-default-menu .t-slide-down-enter-active .t-menu__sub{height:100%}.t-default-menu .t-menu__item{border-bottom:0;border-radius:var(--td-radius-default);box-sizing:border-box;height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 10px 0 16px;position:relative;text-align:left;transition:background-color .28s cubic-bezier(.38,0,.24,1),padding .28s cubic-bezier(.38,0,.24,1)}.t-default-menu .t-menu__item .t-icon{flex-shrink:0;height:20px;width:20px}.t-default-menu .t-menu__item .t-fake-arrow{margin-left:auto;min-width:16px}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-brand-color)}.t-default-menu .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background:var(--td-bg-color-secondarycontainer-hover)}.t-default-menu.t-menu--dark{background:var(--td-gray-color-13)}.t-default-menu.t-menu--dark .t-menu__item{color:var(--td-font-white-2)}.t-default-menu.t-menu--dark .t-menu__logo:not(:empty){border-bottom-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__operations:not(:empty){border-top-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened){background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-opened.t-is-active{background-color:transparent}.t-default-menu.t-menu--dark .t-menu-group__title{color:var(--td-font-white-3)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu-group__title:after{background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu{color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-menu--dark{color:var(--td-font-white-2)}.t-menu__logo:not(:empty){align-items:center;display:flex}.t-menu .t-submenu{position:relative}.t-menu .t-submenu.t-is-active>.t-menu__item,.t-menu .t-submenu.t-is-active>.t-menu__item .t-icon{color:var(--td-gray-color-13)}.t-menu .t-submenu .t-submenu-icon{height:16px;width:16px}.t-menu .t-submenu.t-is-opened .t-submenu-icon{transform:scaleY(-1)}.t-menu__spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__spacer--left:before{bottom:0;left:-16px;top:0;width:16px}.t-menu__spacer--top:before{height:20px;left:0;right:0;top:-20px}.t-menu__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;display:flex;height:40px;line-height:40px;position:relative;text-align:center;text-overflow:ellipsis}.t-menu__item ::selection{background:transparent}.t-menu__item-spacer{overflow:unset}.t-menu__item-spacer:before{content:"";display:block;position:absolute;z-index:1}.t-menu__item-spacer--right:before{bottom:0;right:-16px;top:0;width:16px}.t-menu__item-spacer--bottom:before{bottom:-20px;height:20px;left:0;right:0}.t-menu__item a{color:unset;text-decoration:none}.t-menu__item a.t-menu__item-link{color:unset;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-menu__item a.t-menu__item-link:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.t-menu__item.t-is-active{background-color:var(--td-brand-color-light)}.t-menu__item.t-is-active,.t-menu__item.t-is-opened{color:var(--td-brand-color)}.t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-bg-color-container-hover)}.t-menu__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-menu__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-icon+.t-menu__content,.t-icon+.t-menu__item-link{margin-left:var(--td-comp-margin-s)}.t-menu--dark.t-head-menu{background-color:var(--td-gray-color-13)}.t-menu--dark .t-menu__item{--ripple-color:var(--td-gray-color-11);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-opened,.t-menu--dark .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-disabled{color:var(--td-font-white-4)}.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-menu--dark .t-menu__popup{background:var(--td-gray-color-13);border:.5px solid var(--td-gray-color-10)}.t-menu--dark .t-menu__popup .t-menu__item{border-radius:var(--td-radius-default);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item.t-is-active{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-menu--dark .t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-gray-color-10)}.t-menu--dark .t-head-menu__submenu{border-top:1px solid transparent}.t-menu--dark .t-menu__operations-icon{color:var(--td-bg-color-container)}.t-menu--dark .t-menu__operations-icon:hover{background-color:var(--td-brand-color)}.t-menu__popup{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);list-style:none;margin:0;opacity:0;overflow:hidden;padding:0;z-index:1000}.t-menu__popup.t-popup__content{position:absolute}.t-menu__popup-wrapper{height:100%;list-style:none;margin:0;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-menu__popup-wrapper{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-menu__popup-wrapper::-webkit-scrollbar{height:8px;width:8px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb:horizontal:hover,.t-menu__popup-wrapper::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-menu__popup .t-fake-arrow{margin-left:auto}.t-menu__popup .t-menu__item{padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-menu__popup.t-is-vertical{min-width:var(--popup-width,160px)}.t-menu__popup.t-is-horizontal .t-menu__item{white-space:nowrap}.t-menu__popup.t-is-horizontal li+li{margin-top:var(--td-comp-margin-xs)}.t-menu__popup.t-is-opened{box-shadow:0 5px 5px -3px rgba(0,0,0,.1),0 8px 10px 1px rgba(0,0,0,.06),0 3px 14px 6px rgba(0,0,0,.05);opacity:1;overflow:visible}.t-menu__popup .t-menu__item{color:var(--td-text-color-primary);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s)}.t-menu__popup .t-menu__item+.t-menu__item{margin-left:0}.t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-bg-color-container-hover)}.t-menu__popup .t-is-disabled{color:var(--td-text-color-disabled)}.t-menu__operations-icon{border-radius:var(--td-radius-default);color:var(--td-text-color-primary);margin-right:var(--td-comp-margin-l);transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-menu__operations-icon:hover{background-color:var(--td-brand-color-light)}.t-opacity-transition{transition:opacity .28s cubic-bezier(.55,0,.1,1)}.horizontal-collapse-transition .t-submenu__title .t-submenu__icon-arrow{opacity:0;transition:.2s}.t-menu__popup{left:calc(100% - var(--td-pop-padding-m));top:0}.t-menu__popup .t-menu__item:not(:first-child),.t-menu__popup .t-submenu:not(:first-child){margin-top:var(--td-comp-margin-xxs)}.t-is-head-menu .t-menu__popup{margin-top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-m))/2)!important}.t-menu-is-nested .t-menu__popup{margin-top:calc(0px - var(--td-pop-padding-m))!important}.input-readonly.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.input-readonly.t-is-readonly .t-input__inner{cursor:pointer}.input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.input-disabled.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.input-disabled.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.input-disabled.t-is-disabled>.t-input__prefix .t-icon,.input-disabled.t-is-disabled>.t-input__prefix .t-icon:hover,.input-disabled.t-is-disabled>.t-input__suffix .t-icon,.input-disabled.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-tips{font-size:var(--td-font-size-body-small)}.t-tips.t-is-default{color:var(--td-text-color-placeholder)}.t-tips.t-is-error{color:var(--td-error-color)}.t-tips.t-is-warning{color:var(--td-warning-color)}.t-tips.t-is-success{color:var(--td-success-color)}.t-input{align-items:center;background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-m);list-style:none;margin:0;outline:none;overflow:hidden;padding:0;padding:0 var(--td-comp-paddingLR-s);position:relative;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);width:100%}.t-input:focus,.t-input:hover{border-color:var(--td-brand-color)}.t-input:focus{box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input--borderless:not(.t-input--focused){border-color:transparent;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1)}.t-input--borderless:not(.t-input--focused):hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);cursor:pointer}.t-input--borderless:not(.t-input--focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-input--focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input :focus-visible{outline:none}.t-input__inner{word-wrap:normal;background-color:transparent;border:none;box-sizing:border-box;color:var(--td-text-color-primary);flex:1;font:inherit;max-width:100%;min-width:0;outline:none;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.t-input__inner::placeholder{color:var(--td-text-color-placeholder)}.t-input__inner:placeholder-shown{text-overflow:ellipsis;width:100%}.t-input__inner[type=password]::-ms-reveal{display:none}.t-input__inner[type=search]::-webkit-search-cancel-button,.t-input__inner[type=search]::-webkit-search-decoration,.t-input__inner[type=search]::-webkit-search-results-button,.t-input__inner[type=search]::-webkit-search-results-decoration{appearance:none}.t-input__inner.t-input--soft-hidden{width:0}.t-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-input__status{position:absolute;right:-24px;top:0}.t-input.t-input--suffix>span.t-input__clear{opacity:0;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-input.t-input--suffix:hover>span.t-input__clear{opacity:1;visibility:visible}.t-input.t-is-success{border-color:var(--td-success-color)}.t-input.t-is-success.t-input--focused,.t-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-input.t-is-success>.t-input__extra{color:var(--td-success-color)}.t-input.t-is-warning{border-color:var(--td-warning-color)}.t-input.t-is-warning.t-input--focused,.t-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-input.t-is-warning>.t-input__extra{color:var(--td-warning-color)}.t-input.t-is-error{border-color:var(--td-error-color)}.t-input.t-is-error.t-input--focused,.t-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-input.t-is-error>.t-input__extra{color:var(--td-error-color)}.t-input.t-is-readonly{background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary)}.t-input.t-is-readonly .t-input__inner{cursor:pointer}.t-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input.t-is-disabled .t-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed;text-overflow:clip}.t-input.t-is-disabled .t-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-input.t-is-disabled>.t-input__prefix .t-icon,.t-input.t-is-disabled>.t-input__prefix .t-icon:hover,.t-input.t-is-disabled>.t-input__suffix .t-icon,.t-input.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-input.t-input--prefix>.t-input__prefix{align-items:center;display:flex;height:100%;text-align:center;z-index:2}.t-input.t-input--prefix>.t-input__prefix-icon{font-size:var(--td-font-size-body-large)}.t-input.t-input--suffix>.t-input__suffix{align-items:center;display:flex;height:100%;text-align:center;z-index:2}.t-input.t-input--suffix>.t-input__suffix-icon{font-size:var(--td-font-size-body-large)}.t-input .t-input__suffix-clear{cursor:pointer}.t-input.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m)}.t-input.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs)}.t-input .t-input__prefix>.t-icon,.t-input .t-input__suffix>.t-icon{font-size:inherit}.t-input .t-input__prefix>.t-icon{color:var(--td-text-color-placeholder);font-size:16px}.t-input .t-input__prefix:not(:empty){margin-right:var(--td-comp-margin-s)}.t-input .t-input__suffix>.t-icon{color:var(--td-text-color-placeholder);transition:all .2s linear}.t-input .t-input__suffix>.t-icon:hover{color:var(--td-text-color-secondary);transition:all .2s linear}.t-input .t-input__suffix:not(:empty){margin-left:var(--td-comp-margin-s)}.t-input.t-is-focused .t-input__prefix>.t-icon,.t-input.t-is-focused .t-input__suffix .t-icon-calendar,.t-input.t-is-focused .t-input__suffix>.t-icon-time{color:var(--td-brand-color)}.t-input-group{align-items:stretch;display:inline-flex;position:relative}.t-input-group .t-input__wrap{border-radius:0}.t-input-group .t-input__wrap:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button,.t-input-group .t-select{border-radius:0}.t-input-group .t-button:not(:first-child),.t-input-group .t-input__wrap:not(:first-child) .t-input,.t-input-group .t-select:not(:first-child){margin-left:-1px}.t-input-group .t-input__wrap:first-child .t-input{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child .t-input{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button:first-child,.t-input-group .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-button:last-child,.t-input-group .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap+.t-input__wrap{margin-left:var(--td-comp-margin-xxxl)}.t-input-group--separate .t-button,.t-input-group--separate .t-select{border-radius:var(--td-radius-default)}.t-input-group--separate .t-button:first-child,.t-input-group--separate .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group--separate .t-button:last-child,.t-input-group--separate .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap .t-input,.t-input-group--separate .t-input__wrap .t-input:first-child,.t-input-group--separate .t-input__wrap .t-input:last-child{border-radius:var(--td-radius-default)}.t-input-group .t-button,.t-input-group .t-input__inner,.t-input-group .t-select{position:relative;z-index:0}.t-input-group .t-button:active,.t-input-group .t-button:focus,.t-input-group .t-button:hover,.t-input-group .t-input__inner:active,.t-input-group .t-input__inner:focus,.t-input-group .t-input__inner:hover,.t-input-group .t-select:active,.t-input-group .t-select:focus,.t-input-group .t-select:hover{z-index:1}.t-input__wrap{width:100%}.t-input__tips{font:var(--td-font-body-small);height:auto;min-height:var(--td-line-height-body-small);position:absolute}.t-input__tips--default{color:var(--td-text-color-placeholder)}.t-input__tips--success{color:var(--td-success-color)}.t-input__tips--warning{color:var(--td-warning-color)}.t-input__tips--error{color:var(--td-error-color)}.t-align-center>.t-input__inner{text-align:center}.t-align-right>.t-input__inner{text-align:right}.t-input__input-pre{display:block;position:absolute;visibility:hidden;white-space:pre}.t-input--auto-width{min-width:60px;width:fit-content}.t-input__limit-number{background:var(--td-bg-color-specialcomponent);color:var(--td-text-color-placeholder);font:var(--td-font-body-medium)}.t-input__limit-number.t-is-disabled{background:var(--td-bg-color-component-disabled)}.t-input-number{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-size-m);position:relative;user-select:none;width:144px}.t-input-number:not(.t-input-number--column)>.t-input-number__decrease+.t-input__wrap{margin-left:var(--td-comp-margin-xs)}.t-input-number input::-webkit-inner-spin-button,.t-input-number input::-webkit-outer-spin-button{appearance:none}.t-input-number input[type=number]{appearance:textfield}.t-input-number>.t-input__tips{left:0;position:absolute}.t-input-number input+.t-input__suffix{margin-left:var(--td-comp-paddingLR-s)}.t-input-number .t-input__prefix{margin-right:var(--td-comp-paddingLR-s)}.t-input-number .t-input{color:var(--td-text-color-primary)}.t-input-number.t-input-number--auto-width{width:auto}.t-input-number.t-input-number--auto-width.t-is-controls-right{min-width:auto;width:auto}.t-input-number.t-input-number--auto-width .t-input__inner{min-width:42px}.t-input-number .t-input-number__decrease,.t-input-number .t-input-number__increase{align-items:center;background-color:transparent;border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:flex;height:var(--td-comp-size-m);justify-content:center;position:absolute;top:0;transition:all .2s cubic-bezier(.38,0,.24,1);width:var(--td-comp-size-m);z-index:1}.t-input-number .t-input-number__decrease:hover,.t-input-number .t-input-number__increase:hover{border-color:var(--td-brand-color);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:hover .t-icon,.t-input-number .t-input-number__increase:hover .t-icon{color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:active,.t-input-number .t-input-number__increase:active{background-color:var(--td-bg-color-container-hover);color:var(--td-brand-color)}.t-input-number .t-input-number__decrease .t-icon,.t-input-number .t-input-number__increase .t-icon{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-large);position:relative;z-index:1}.t-input-number .t-input-number__decrease.t-is-disabled,.t-input-number .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled:hover,.t-input-number .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease{left:0}.t-input-number .t-input-number__increase{right:-8px}.t-input-number.t-is-disabled .t-input{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input:active,.t-input-number.t-is-disabled .t-input:focus,.t-input-number.t-is-disabled .t-input:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-disabled .t-input-number__decrease,.t-input-number.t-is-disabled .t-input-number__increase{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-disabled .t-input-number__decrease .t-icon,.t-input-number.t-is-disabled .t-input-number__increase .t-icon{color:var(--td-text-color-secondary)}.t-input-number.t-size-s{padding:0 var(--td-comp-size-xs);width:120px}.t-input-number.t-size-s .t-input{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs)}.t-input-number.t-size-s .t-input-number__decrease,.t-input-number.t-size-s .t-input-number__increase{font-size:var(--td-font-size-body-medium);height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-input-number.t-size-l{padding:0 var(--td-comp-size-xl);width:168px}.t-input-number.t-size-l .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input-number__decrease,.t-input-number.t-size-l .t-input-number__increase{font-size:18px;height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-input-number.t-size-l.t-is-controls-right .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl);padding-right:calc(var(--td-comp-size-xl) + var(--td-comp-paddingLR-s))}.t-input-number.t-size-l.t-is-controls-right .t-input-number__decrease,.t-input-number.t-size-l.t-is-controls-right .t-input-number__increase{font-size:var(--td-font-size-body-large);width:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input--prefix{font:var(--td-font-body-large);padding:0 var(--td-comp-paddingLR-m)}.t-input-number.t-input-number--normal{border-radius:var(--td-radius-default);padding:0}.t-input-number.t-input-number--normal.t-is-disabled{color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-input-number--normal.t-is-disabled:hover .t-input{border-color:var(--td-border-level-2-color)}.t-input-number.t-input-number--normal.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-input-number--normal.t-is-disabled .t-input:focus{box-shadow:none}.t-input-number.t-is-controls-right{padding:0;width:96px}.t-input-number.t-is-controls-right:hover .t-input-number__decrease,.t-input-number.t-is-controls-right:hover .t-input-number__increase{opacity:1;visibility:visible}.t-input-number.t-is-controls-right .t-input{border-radius:var(--td-radius-default);box-sizing:border-box;margin:0;padding-right:calc(var(--td-comp-size-m) + var(--td-comp-paddingLR-s));width:100%}.t-input-number.t-is-controls-right .t-input-number__decrease,.t-input-number.t-is-controls-right .t-input-number__increase{background:var(--td-bg-color-secondarycontainer);border:0;border-radius:0;height:calc(var(--td-comp-size-m)/2 - 2px);left:auto;opacity:0;right:1px;top:auto;visibility:hidden;width:var(--td-comp-size-m);z-index:2}.t-input-number.t-is-controls-right .t-input-number__decrease .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase .t-icon{font-size:var(--td-font-size-body-small)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover,.t-input-number.t-is-controls-right .t-input-number__increase:hover{background:var(--td-bg-color-component-hover)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase:hover .t-icon{color:var(--td-text-color-primary)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:no-drop}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__increase{border-top-right-radius:calc(var(--td-radius-default) - 1px);top:1px}.t-input-number.t-is-controls-right .t-input-number__decrease{border-bottom-right-radius:calc(var(--td-radius-default) - 1px);top:calc(var(--td-comp-size-m)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-l{width:120px}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-l .t-input-number__increase{height:calc(var(--td-comp-size-xl)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease{top:calc(var(--td-comp-size-xl)/2 + 1px)}.t-input-number.t-is-controls-right.t-size-s{width:88px}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease,.t-input-number.t-is-controls-right.t-size-s .t-input-number__increase{height:calc(var(--td-comp-size-xs)/2 - 2px)}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease{top:calc(var(--td-comp-size-xs)/2 + 1px)}.t-input-number--row .t-input__wrap{margin-right:var(--td-comp-margin-xs);width:auto}.t-input-number--row .t-input-number__increase{right:0}.t-tag{align-items:center;border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-anti);display:inline-flex;flex-direction:row;font:var(--td-font-body-medium);font:var(--td-font-body-small);height:var(--td-comp-size-xs);list-style:none;margin:0;padding:0;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-tag .t-icon{flex-shrink:0;height:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-xs);width:calc(var(--td-font-size-body-medium) + 2px)}.t-tag .t-tag__icon-close{cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);margin-right:0;transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tag--default{background-color:var(--td-bg-color-component);color:var(--td-text-color-primary)}.t-tag--default .t-tag__icon-close{color:var(--td-text-color-placeholder)}.t-tag--default .t-tag__icon-close:hover{color:var(--td-text-color-primary)}.t-tag--default:active{cursor:default}.t-tag--default.t-tag--disabled{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled);cursor:not-allowed}.t-tag--default.t-tag--disabled:hover{cursor:not-allowed}.t-tag--default.t-tag--disabled .t-icon:hover{cursor:pointer}.t-tag--default.t-tag--outline{border-color:var(--td-component-border)}.t-tag--default.t-tag--light,.t-tag--default.t-tag--light-outline{background-color:var(--td-bg-color-secondarycontainer)}.t-tag--default.t-tag--light-outline{border-color:var(--td-component-border)}.t-tag--primary{background-color:var(--td-brand-color)}.t-tag--primary.t-tag--outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline{background-color:var(--td-brand-color-light)}.t-tag--primary.t-tag--light-outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--light-outline,.t-tag--primary.t-tag--outline{color:var(--td-brand-color)}.t-tag--primary.t-tag--light .t-tag__icon-close:hover,.t-tag--primary.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--primary.t-tag--outline .t-tag__icon-close:hover{color:var(--td-brand-color-hover)}.t-tag--success{background-color:var(--td-success-color)}.t-tag--success.t-tag--outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline{background-color:var(--td-success-color-light)}.t-tag--success.t-tag--light-outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--light-outline,.t-tag--success.t-tag--outline{color:var(--td-success-color)}.t-tag--success.t-tag--light .t-tag__icon-close:hover,.t-tag--success.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--success.t-tag--outline .t-tag__icon-close:hover{color:var(--td-success-color-hover)}.t-tag--warning{background-color:var(--td-warning-color)}.t-tag--warning.t-tag--outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline{background-color:var(--td-warning-color-light)}.t-tag--warning.t-tag--light-outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--light-outline,.t-tag--warning.t-tag--outline{color:var(--td-warning-color)}.t-tag--warning.t-tag--light .t-tag__icon-close:hover,.t-tag--warning.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--warning.t-tag--outline .t-tag__icon-close:hover{color:var(--td-warning-color-hover)}.t-tag--danger{background-color:var(--td-error-color)}.t-tag--danger.t-tag--outline{border-color:var(--td-error-color)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline{background-color:var(--td-error-color-light)}.t-tag--danger.t-tag--light-outline{border-color:var(--td-error-color)}.t-tag--danger .t-tag__icon-close{fill:var(--td-error-color)}.t-tag--danger .t-tag__icon-close:hover{fill:var(--td-error-color-hover)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--light-outline,.t-tag--danger.t-tag--outline{color:var(--td-error-color)}.t-tag--danger.t-tag--light .t-tag__icon-close:hover,.t-tag--danger.t-tag--light-outline .t-tag__icon-close:hover,.t-tag--danger.t-tag--outline .t-tag__icon-close:hover{color:var(--td-error-color-hover)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close{color:var(--td-font-white-2)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close:hover{color:var(--td-font-white-1)}.t-tag.t-tag--outline{background:transparent}.t-tag.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-xs)}.t-tag.t-size-s .t-icon{font-size:var(--td-font-body-small)}.t-tag.t-size-l{height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-tag.t-size-l,.t-tag.t-size-l .t-icon{font:var(--td-font-body-medium)}.t-tag.t-tag--round{border-radius:var(--td-radius-extraLarge)}.t-tag.t-tag--mark{border-radius:0 var(--td-radius-extraLarge) var(--td-radius-extraLarge) 0}.t-tag.t-tag--ellipsis .t-tag--text{word-wrap:normal;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-tag.t-tag--check:not(.t-tag--disabled){cursor:pointer;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--dark:not(.t-tag--checked):hover{background-color:var(--td-bg-color-component-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--primary.t-tag--dark.t-tag--checked:hover{background-color:var(--td-brand-color-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--outline:not(.t-tag--checked):hover{color:var(--td-brand-color-hover)}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--dark{background-color:var(--td-brand-color-disabled);cursor:not-allowed}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--outline{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-text-color-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-check-tag-group .t-tag:not(:last-child){margin-right:var(--td-comp-margin-s)}a .t-tag{cursor:pointer;transition:all .2s linear}a .t-tag:hover{background-color:var(--td-bg-color-component-hover);color:var(--td-brand-color)}a .t-tag:active{background-color:var(--td-bg-color-component-active);color:var(--td-brand-color-active)}@keyframes t-fade-in{0%{opacity:0}to{opacity:1}}@keyframes t-fade-out{0%{opacity:1}to{opacity:0}}@keyframes t-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.t-icon-loading{animation:t-spin 1s linear infinite}@keyframes t-zoom-out{0%{transform:scale(.2)}to{transform:scale(1)}}.t-tag-input{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-tag-input .t-tag{animation:t-fade-in .2s ease-in-out;margin:3px var(--td-comp-margin-xs) 3px 0;vertical-align:middle}.t-tag-input .t-tag-input__drag_wrapper+.t-tag-input__drag_wrapper{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input{height:fit-content;min-height:var(--td-comp-size-m);overflow:hidden;padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input .t-input__suffix-icon{right:var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-s{min-height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs)}.t-tag-input .t-input.t-size-s .t-tag{margin:1px var(--td-comp-margin-xs) 1px 0}.t-tag-input .t-input.t-size-l{min-height:var(--td-comp-size-xl);padding:0 var(--td-comp-paddingLR-m) 0 var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-l .t-input__suffix-icon{right:var(--td-comp-margin-m)}.t-tag-input.t-is-empty .t-input__inner{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input--focused .t-input__inner:not(.t-input--soft-hidden),.t-tag-input:hover .t-input__inner:not(.t-input--soft-hidden){min-width:20px}.t-tag-input .t-tag-input__prefix{line-height:1;margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-tag-input__prefix>.t-icon{color:var(--td-text-color-placeholder)}.t-tag-input .t-input .t-input__prefix:not(:empty){margin-right:0}.t-tag-input.t-input--auto-width .t-input.t-input--focused{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input.t-input--auto-width .t-input__prefix{white-space:nowrap}.t-tag-input .t-input__prefix--scrollable{overflow-x:auto;overflow-y:hidden}@-moz-document url-prefix(){.t-tag-input .t-input__prefix--scrollable{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar{height:6px;width:6px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:horizontal:hover,.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-tag-input__suffix-clear{cursor:pointer}.t-tag-input--break-line:not(.t-is-empty) .t-input{display:block}.t-tag-input--break-line:not(.t-is-empty) .t-input.t-input--prefix>.t-input__prefix{display:inline;text-align:left}.t-tag-input--break-line:not(.t-is-empty) .t-input .t-input__suffix-icon{bottom:0;position:absolute}.t-tag-input--break-line:not(.t-is-empty) .t-tag-input__prefix{vertical-align:middle}.t-tag-input__prefix{display:inline-block;margin-right:var(--td-comp-margin-s);width:max-content}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-input,.t-tag-input.t-input--auto-width:hover .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-size-l .t-input,.t-tag-input.t-input--auto-width:hover .t-size-l .t-input{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xs))}.t-tag-input.t-input--auto-width .t-input{padding-right:0}.t-tag-input--max-rows .t-input{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-m) - 2px));overflow-y:scroll}.t-tag-input--max-rows .t-input.t-size-s{max-height:calc(var(--max-rows, 1)*var(--td-comp-size-xs))}.t-tag-input--max-rows .t-input.t-size-l{max-height:calc(var(--max-rows, 1)*(var(--td-comp-size-xl) - 2px))}.t-select-input{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;vertical-align:middle;width:100%}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input{padding-right:var(--td-comp-paddingLR-xl)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input.t-size-l{padding-right:calc(var(--td-comp-paddingLR-xl) + var(--td-comp-paddingLR-s))}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input{padding-right:var(--td-comp-paddingLR-s)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input.t-size-l{padding-right:var(--td-comp-paddingLR-m)}.t-select-input--borderless .t-input{background:transparent;border:1px solid transparent;box-shadow:none;transition:all .2s linear}.t-select-input--borderless .t-input:hover:not(.t-input--focused){background-color:var(--td-bg-color-container-hover);border-color:var(--td-component-border);border-radius:var(--td-radius-default)}.t-select-input--borderless .t-input--focused{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible input{display:inline-block}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible .t-input{background-color:var(--td-bg-color-container-hover)}.t-select-input--borderless.t-tag-input{background:transparent;border:0;box-shadow:none;transition:background-color .2s linear}.t-select-input--borderless.t-tag-input:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-default)}.t-checkbox-group{flex-wrap:wrap;gap:16px}.t-checkbox,.t-checkbox-group{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-checkbox{align-items:center;cursor:pointer;position:relative}.t-checkbox+.t-checkbox{margin-left:inherit}.t-checkbox__former{clip:rect(0 0 0 0);appearance:none;border:0;height:1px;margin:-1px;outline:0;overflow:hidden;padding:0;position:absolute;width:1px}.t-checkbox__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);box-sizing:border-box;display:inline-block;flex-shrink:0;height:16px;position:relative;vertical-align:middle;width:16px}.t-checkbox__input:after{box-sizing:border-box;content:"";opacity:0;position:absolute}.t-checkbox__label{display:inline-block;font:var(--td-font-body-medium);margin-left:8px;vertical-align:middle}.t-checkbox:hover .t-checkbox__input{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-checkbox.t-is-checked .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-checked .t-checkbox__input:after{background:transparent;border:2px solid var(--td-text-color-anti);border-left:0;border-radius:0 0 1px;border-top:0;height:9px;left:3px;opacity:1;top:6px;transform:rotate(45deg) scale(1) translate(-50%,-50%);width:5px}.t-checkbox.t-is-indeterminate .t-checkbox__input{background-color:var(--td-brand-color);border-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-font-white-1);border:unset;height:4px;left:-1px;opacity:1;right:0;top:5px;transform:scale(.5);width:16px}.t-checkbox.t-is-disabled{cursor:not-allowed}.t-checkbox.t-is-disabled .t-checkbox__label{color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled .t-checkbox__input{background-color:var(--td-bg-color-component-disabled)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input,.t-checkbox.t-is-disabled:hover .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input:after{border-color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-text-color-disabled)}.t-checkbox:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-select__wrap{width:100%}.t-select__dropdown .t-popup__content{box-shadow:var(--td-shadow-2);margin:var(--td-comp-paddingTB-s) 0;max-height:300px;overflow-y:auto;overscroll-behavior:contain;padding:0}@-moz-document url-prefix(){.t-select__dropdown .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-select__dropdown .t-popup__content::-webkit-scrollbar{height:8px;width:8px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover,.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-select__dropdown-inner{min-height:var(--td-comp-size-m)}.t-select__dropdown-inner .t-select__list .t-select__list{padding:0}.t-select__dropdown-inner .t-select__list,.t-select__dropdown-inner .t-tree{padding:var(--td-pop-padding-m)}.t-select__dropdown-inner--size-s{min-height:var(--td-comp-size-xs)}.t-select__dropdown-inner--size-s .t-select__list,.t-select__dropdown-inner--size-s .t-tree{padding:var(--td-pop-padding-s)}.t-select__dropdown-inner--size-l{min-height:var(--td-comp-size-xl)}.t-select__dropdown-inner--size-l .t-select__list,.t-select__dropdown-inner--size-l .t-tree{padding:var(--td-pop-padding-l)}.t-select__list{list-style:none;margin:0;padding:0}.t-select__dropdown.t-popup{padding:0}.t-select__empty.t-size-s{line-height:var(--td-comp-size-xs)}.t-select__empty{color:var(--td-text-color-disabled);line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-s);text-align:center}.t-select__empty.t-size-l{line-height:var(--td-comp-size-xl)}.t-select__loading-tips.t-size-s{line-height:var(--td-comp-size-xs);min-height:var(--td-comp-size-xs)}.t-select__loading-tips{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);bottom:var(--td-comp-paddingTB-s);color:var(--td-text-color-disabled);display:flex;justify-content:center;left:0;line-height:var(--td-comp-size-m);min-height:var(--td-comp-size-m);position:fixed;right:0;top:var(--td-comp-paddingTB-s);z-index:1000}.t-select__loading-tips.t-size-l{line-height:var(--td-comp-size-xl);min-height:var(--td-comp-size-xl)}.t-select-option-group+.t-select-option-group{margin-top:var(--td-comp-margin-xs);padding-top:var(--td-comp-margin-xs)}.t-select-option-group__divider+.t-select-option-group__divider{position:relative}.t-select-option-group__divider+.t-select-option-group__divider:before{background-clip:content-box;background-color:var(--td-border-level-1-color);box-sizing:border-box;content:"";height:1px;left:0;padding:0 var(--td-comp-paddingLR-s);position:absolute;top:0;width:100%}.t-select-option-group__header,ul.t-select-option-group__header{word-wrap:normal;box-sizing:border-box;color:var(--td-text-color-placeholder);display:block;height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);overflow:hidden;padding:0 var(--td-comp-paddingLR-s);text-overflow:ellipsis;white-space:nowrap}.t-select-option-group__header.t-size-l{height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option-group__header.t-size-s{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);padding:0 var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-select-option span{word-wrap:normal;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover{background-color:var(--td-bg-color-container-hover)}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__label{color:inherit}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option .t-checkbox__label{word-wrap:normal;color:var(--td-text-color-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-select-option .t-checkbox{width:100%}.t-select-option.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-select-option.t-is-disabled,.t-select-option.t-is-disabled :active,.t-select-option.t-is-disabled:hover{background:var(--td-bg-color-specialcomponent)}.t-select-option.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option.t-size-m{font:var(--td-font-body-medium)}.t-select-option.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option.t-is-selected:not(.t-is-disabled){background-color:var(--td-brand-color-light);color:var(--td-brand-color);transition:all .2s linear}.t-select-option.t-is-selected:not(.t-is-disabled) .t-checkbox__label{color:var(--td-brand-color)}.t-select-option.t-is-selected:not(.t-is-disabled):hover{background-color:var(--td-brand-color-light)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected){background-color:var(--td-bg-color-container-hover)}.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option.t-select-option--hover .t-checkbox__label,.t-select-option.t-select-option__hover .t-checkbox__label{color:inherit}.t-select-option+.t-select-option{margin-top:var(--td-comp-paddingTB-xxs)}.t-select.t-select-input--borderless .t-select__right-icon{margin:0;position:relative}.t-select .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-select .t-fake-arrow--active{color:var(--td-brand-color)}.t-is-selected.t-select-option__hover{background-color:var(--td-brand-color-light-hover)}.t-is-selected.t-select-option__hover .t-checkbox__label{color:var(--td-brand-color)}.t-input-adornment{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-input-adornment__append .t-input,.t-input-adornment__append .t-textarea__inner,.t-input-adornment__prepend .t-input,.t-input-adornment__prepend .t-textarea__inner{background-color:transparent}.t-input-adornment__prepend{margin-right:-1px}.t-input-adornment__append,.t-input-adornment__prepend{background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-primary);word-break:keep-all}.t-input-adornment__append{margin-left:-1px}.t-input-adornment__text{align-items:center;border:1px solid var(--td-border-level-2-color);box-sizing:border-box;display:inline-flex;height:100%;padding:0 var(--td-comp-paddingLR-s);white-space:nowrap}.t-input-adornment>:first-child,.t-input-adornment>:first-child .t-input,.t-input-adornment>:first-child .t-input-adornment__text,.t-input-adornment>:first-child .t-textarea__inner{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-adornment>:last-child,.t-input-adornment>:last-child .t-input,.t-input-adornment>:last-child .t-input-adornment__text,.t-input-adornment>:last-child .t-textarea__inner{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-adornment>:not(:last-child):hover{z-index:2}.t-input-adornment>:not(:first-child):not(:last-child) .t-input,.t-input-adornment>:not(:first-child):not(:last-child) .t-textarea__inner{border-radius:0}.t-pagination-mini{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-pagination-mini--outline .t-pagination-mini__prev{border-bottom-right-radius:0;border-top-right-radius:0;position:relative;z-index:1}.t-pagination-mini--outline .t-pagination-mini__current{border-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__current:hover{z-index:1}.t-pagination-mini--outline .t-pagination-mini__next{border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__next:hover{z-index:1}.t-pagination{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-medium);justify-content:flex-end;list-style:none;margin:0;padding:0;user-select:none;white-space:nowrap;width:100%}.t-pagination.t-is-disabled{color:var(--td-text-color-disabled)}.t-pagination__total{flex:1;font:var(--td-font-body-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-pagination .t-select__wrap{width:auto}.t-pagination__select{font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-l)}.t-pagination__btn,.t-pagination__select{color:var(--td-text-color-secondary);flex-shrink:0;height:var(--td-comp-size-m)}.t-pagination__btn{align-items:center;border-radius:var(--td-radius-default);cursor:pointer;display:inline-flex;font:var(--td-font-body-large);justify-content:center;line-height:var(--td-comp-size-m);width:var(--td-comp-size-m)}.t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination__btn.t-is-disabled,.t-pagination__btn.t-is-disabled:active,.t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination__btn.t-is-disabled{cursor:not-allowed}.t-pagination__btn-prev{margin-right:var(--td-comp-margin-s)}.t-pagination__btn-next{margin-left:var(--td-comp-margin-s)}.t-pagination__btn+.t-pagination__select{margin-right:0}.t-pagination__pager{display:inline-flex;flex-shrink:0;list-style:none;margin:0;padding:0;vertical-align:middle}.t-pagination__pager li:not(:last-child){margin-right:var(--td-comp-margin-s)}.t-pagination__number{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:inline-block;font-size:var(--td-font-body-medium);height:var(--td-comp-size-m);line-height:calc(var(--td-comp-size-m) - 2px);min-width:var(--td-comp-size-m);padding-left:var(--td-comp-paddingLR-xs);padding-right:var(--td-comp-paddingLR-xs);text-align:center}.t-pagination__number:hover{border-color:var(--td-brand-color-hover);color:var(--td-brand-color-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number.t-is-current,.t-pagination__number:active{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-pagination__number.t-is-current.t-is-disabled,.t-pagination__number.t-is-current.t-is-disabled:active,.t-pagination__number.t-is-current.t-is-disabled:hover{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination__number.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:auto}.t-pagination__number.t-is-disabled:active,.t-pagination__number.t-is-disabled:hover{background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);color:var(--td-text-color-disabled)}.t-pagination__number--more{border:0;padding:0}.t-pagination__number--more:hover{background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number--more:active{background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination__number--more.t-is-disabled,.t-pagination__number--more.t-is-disabled:active,.t-pagination__number--more.t-is-disabled:hover{background:none}.t-pagination__number--more .t-icon-more{color:var(--td-text-color-disabled);transform:rotate(90deg)}.t-pagination__jump{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:inline-flex;flex-shrink:0;font-size:var(--td-font-body-medium);gap:var(--td-comp-margin-s);height:var(--td-comp-size-m);margin-left:var(--td-comp-margin-s);padding-left:var(--td-comp-margin-s)}.t-pagination .t-input-adornment__append{background-color:transparent;border:none;color:var(--td-text-color-secondary);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-adornment__append .t-input-adornment__text{border:none}.t-pagination .t-input-number{width:56px}.t-pagination .t-input-number .t-input{border-radius:var(--td-radius-default);height:calc(var(--td-comp-size-m) - 4px)}.t-pagination .t-input-number .t-input__inner{text-align:center}.t-pagination.t-size-s{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__jump{height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-input-adornment__append{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-input-number{width:48px}.t-pagination.t-size-s .t-input-number .t-input{height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-pagination__total{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__select{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__number{border:0;font-size:var(--td-font-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);min-width:var(--td-comp-size-xs);padding-left:var(--td-comp-paddingLR-xxs);padding-right:var(--td-comp-paddingLR-xxs)}.t-pagination.t-size-s .t-pagination__number:hover:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-hover);color:var(--td-text-color-primary);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__number:active:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){background-color:var(--td-bg-color-secondarycontainer-active);color:var(--td-text-color-primary)}.t-pagination.t-size-s .t-pagination__number.t-is-disabled{background:none;color:var(--td-text-color-disabled)}.t-pagination.t-size-s .t-pagination__number.t-is-current.t-is-disabled{background-color:var(--td-brand-color-focus);border-color:var(--td-brand-color-focus);color:var(--td-text-color-anti)}.t-pagination.t-size-s .t-pagination__btn{background:none;border:0;height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination.t-size-s .t-pagination__btn.t-is-disabled,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:active,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:hover{background:none;color:var(--td-text-color-disabled)}.t-pagination-ie .t-select .t-input__inner{min-width:54px}.default-step-icon{align-items:center;border-radius:var(--td-radius-circle);display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;width:100%}.t-steps .t-steps-item{display:flex;flex:1;margin-right:var(--td-comp-margin-s);overflow:hidden;position:relative;vertical-align:top}.t-steps .t-steps-item:last-child{flex:none}.t-steps .t-steps-item__inner{display:flex;position:relative;width:fit-content}.t-steps .t-steps-item__inner.t-steps-item--clickable{cursor:pointer}.t-steps .t-steps-item--finish .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__icon--number{border-color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__title{color:var(--td-text-color-primary);font-weight:400}.t-steps .t-steps-item--finish .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--process .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--process .t-steps-item__icon--number{background-color:var(--td-brand-color);border-color:var(--td-brand-color);color:var(--td-text-color-anti);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__title{color:var(--td-brand-color);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--error .t-steps-item__icon .t-icon{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__icon--number{border-color:var(--td-error-color);color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__title{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item__icon{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-s);vertical-align:top}.t-steps .t-steps-item__icon--number{border:1px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);color:var(--td-text-color-placeholder)}.t-steps .t-steps-item__icon--finish,.t-steps .t-steps-item__icon--number{align-items:center;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon--finish{border:1px solid var(--td-brand-color);border-radius:var(--td-radius-circle)}.t-steps .t-steps-item__icon--error{align-items:center;border:1px solid var(--td-error-color);border-radius:var(--td-radius-circle);color:#000;display:flex;font-size:var(--td-font-size-body-large);height:22px;justify-content:center;text-align:center;width:22px}.t-steps .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps .t-steps-item__title{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-large);line-height:24px;padding-right:var(--td-comp-margin-s);position:relative}.t-steps .t-steps-item__description{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);line-height:22px;margin-bottom:var(--td-comp-margin-xs)}.t-steps--line-separator .t-steps-item:after,.t-steps--line-separator .t-steps-item:before,.t-steps--line-separator .t-steps-item__title:after{border-style:solid}.t-steps--dashed-separator .t-steps-item:after,.t-steps--dashed-separator .t-steps-item:before,.t-steps--dashed-separator .t-steps-item__title:after{border-style:dashed}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);width:fit-content}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon__number{height:22px;width:22px}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item--finish:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:100%;position:absolute;top:50%;transform:translateY(-50%);width:9999px}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-end;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);height:24px;justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child) .t-steps-item__title:after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--process:not(:last-child) .t-steps-item__title:after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item{overflow:visible}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);padding-right:0}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__inner{align-items:center;display:flex;flex-direction:column}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;width:8px}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__content{text-align:center;width:140px}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{align-items:flex-start;border:0;color:var(--td-text-color-placeholder);content:"^";display:inline-flex;flex:1;font-size:var(--td-font-size-body-large);justify-content:center;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):after{border-bottom-color:var(--td-text-color-placeholder);border-bottom-width:1px;border-left:0;border-top:0;content:"";display:block;left:78px;position:absolute;top:2.5px;width:calc(100% - 16px)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--process:not(:last-child):after{border-bottom-color:var(--td-brand-color);border-bottom-width:2px;color:var(--td-brand-color)}.t-steps--vertical{flex-direction:column;width:fit-content}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--positive .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--positive .t-steps-item:not(:last-child):before{border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;border-top:0;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--default-anchor .t-steps-item__content{margin-left:0}.t-steps--vertical.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);box-sizing:border-box;display:block;flex-shrink:0;height:8px;margin-bottom:var(--td-comp-margin-xs);position:relative;top:8px;width:8px}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-large);height:calc(100% - 24px);left:6px;position:absolute;top:24px;transform:rotate(180deg)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{margin-top:var(--td-comp-margin-xs);transform:rotate(0)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse .t-steps-item{margin-bottom:5px;padding-bottom:var(--td-comp-margin-xxl)}.t-steps--vertical.t-steps--reverse .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:11px;position:absolute;top:35px}.t-steps--vertical.t-steps--reverse .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):before{align-items:center;border:0;color:var(--td-text-color-placeholder);content:"^";display:flex;font-size:var(--td-font-size-body-medium);height:calc(100% - 4px);left:0;position:absolute;top:8px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child):before{border-bottom:0;border-left:0;border-right-color:var(--td-text-color-placeholder);border-right-width:1px;content:"";display:block;height:100%;left:3.5px;position:absolute;top:17px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:last-child:before{display:none}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--process:not(:last-child):before{border-right-color:var(--td-brand-color);border-right-width:2px;color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-sticky-tool{background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);box-shadow:var(--td-shadow-3);box-sizing:border-box;opacity:1;position:fixed}.t-sticky-tool-popup-content{box-shadow:var(--td-shadow-3)}.t-sticky-tool .t-sticky-item,.t-sticky-tool-popup-content{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-small)}.t-sticky-tool .t-sticky-item{margin:var(--td-comp-margin-xs);opacity:1;position:relative;text-align:center;transition:background-color .2s linear}.t-sticky-tool .t-sticky-item:hover{background-color:var(--td-bg-color-container-hover);cursor:pointer}.t-sticky-tool .t-sticky-item--normal{height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-sticky-tool .t-sticky-item--normal .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s) var(--td-comp-margin-l) 0 var(--td-comp-margin-l);width:24px}.t-sticky-tool .t-sticky-item--compact{height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-sticky-tool .t-sticky-item--compact .t-icon{color:var(--td-text-color-primary);height:24px;margin:var(--td-comp-margin-s);width:24px}.t-sticky-tool .t-sticky-item--square{border-radius:var(--td-radius-default)}.t-sticky-tool .t-sticky-item--round{border-radius:var(--td-radius-circle)}.t-sticky-tool .t-sticky-item .t-sticky-item__label{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);margin-top:var(--td-comp-margin-xxs);text-align:center;width:100%}.t-sticky-tool--square{border-radius:var(--td-radius-medium)}.t-sticky-tool--round{border-radius:var(--td-radius-round)}.t-back-top{align-items:center;background-color:transparent;border:.5px solid transparent;box-shadow:var(--td-shadow-3);color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;flex-direction:column;justify-content:center;opacity:0;outline:none;overflow:hidden;position:fixed;touch-action:manipulation;transition:background .2s linear,border .2s linear,color .2s linear,opacity .2s linear,visibility .2s linear;vertical-align:middle;visibility:hidden;white-space:nowrap;z-index:300}.t-back-top__text{font:var(--td-font-body-small);margin-top:var(--td-comp-margin-xxs);text-align:center}.t-back-top__icon{font-size:var(--td-font-headline-small)}.t-back-top.t-size-m .t-back-top__icon{margin-top:2px}.t-back-top--show{opacity:1;visibility:visible}.t-back-top--theme-light{background-color:var(--td-bg-color-container);border-color:var(--td-component-border)}.t-back-top--theme-light:hover{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover)}.t-back-top--theme-light .t-back-top__text{color:var(--td-text-color-secondary)}.t-back-top--theme-light .t-back-top__icon{color:var(--td-text-color-primary)}.t-back-top--theme-primary{background-color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-back-top--theme-primary:hover{background-color:var(--td-brand-color-hover);border-color:var(--td-brand-color-hover)}.t-back-top--theme-primary .t-back-top__icon,.t-back-top--theme-primary .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top--theme-dark{background-color:rgba(0,0,0,.9);border-color:rgba(0,0,0,.9)}.t-back-top--theme-dark:hover{background-color:rgba(0,0,0,.6);border-color:rgba(0,0,0,.6)}.t-back-top--theme-dark .t-back-top__icon,.t-back-top--theme-dark .t-back-top__text{color:var(--td-text-color-anti)}.t-back-top.t-size-s{height:var(--td-comp-size-xxl);width:var(--td-comp-size-xxl)}.t-back-top.t-size-s .t-back-top__text{display:none}.t-back-top.t-size-m{height:var(--td-comp-size-xxxxl);width:var(--td-comp-size-xxxxl)}.t-back-top.t-size-m .t-back-top__text{display:block}.t-back-top--circle{border-radius:var(--td-radius-circle)}.t-back-top--square{border-radius:var(--td-radius-medium)}.t-select-option__highlight-item .t-is-highlight{color:var(--td-brand-color)}.t-auto-complete{width:100%}.t-auto-complete .t-input__suffix-clear{display:none}.t-auto-complete:hover .t-input__suffix-clear{display:inline-block}.t-auto-complete__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);text-align:center}.t-cascader .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-cascader .t-fake-arrow--active{color:var(--td-brand-color)}.t-cascader__popup .t-popup__content{border:.5px solid var(--td-component-border);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2);overflow:hidden;padding:0}.t-cascader__panel{display:flex;height:100%}.t-cascader__panel.t-cascader--normal{height:200px}.t-cascader__panel.t-cascader--multiple{height:280px}.t-cascader__panel--empty{color:var(--td-text-color-disabled);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);margin:var(--td-pop-padding-m);padding-left:0;text-align:center;width:100%}.t-cascader__panel--empty:hover{background:none;cursor:default}.t-cascader__menu{background:var(--td-bg-color-container);box-sizing:content-box;overflow:auto;padding:var(--td-pop-padding-m);width:148px}.t-cascader__menu.t-size-l{padding:var(--td-pop-padding-l)}.t-cascader__menu.t-size-s{padding:var(--td-pop-padding-s)}.t-cascader__menu--segment{border-right:1px solid var(--td-component-stroke)}.t-cascader__menu--filter{min-width:148px;width:auto}.t-cascader__item{--ripple-color:var(--td-bg-color-container-active);align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);height:var(--td-comp-size-s);list-style:none;margin-top:var(--td-comp-margin-xxs);padding:0 var(--td-comp-paddingLR-s);position:relative;transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-cascader__item.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:0 var(--td-comp-paddingLR-s)}.t-cascader__item.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m)}.t-cascader__item.t-is-disabled{background-color:transparent;color:var(--td-text-color-disabled);cursor:not-allowed}.t-cascader__item-icon.t-icon{background:transparent;color:var(--td-text-color-placeholder);font-size:16px;height:100%;margin:0 8px;position:absolute;right:0;top:0}.t-cascader__item-icon.t-loading{color:var(--td-text-color-brand);display:flex}.t-cascader__item.t-is-expanded{background:var(--td-brand-color-light)}.t-cascader__item.t-is-expanded,.t-cascader__item.t-is-expanded .t-icon-chevron-right{color:var(--td-text-color-brand)}.t-cascader__item.t-is-expanded:hover{cursor:pointer}.t-cascader__item:first-child{margin-top:0}.t-cascader__item .t-checkbox{max-width:100%}.t-cascader__item .t-checkbox .t-checkbox__input{flex-shrink:0}.t-cascader__item .t-checkbox .t-checkbox__label{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item .t-checkbox .t-checkbox__label .t-cascader__item__label--filter{color:var(--td-text-color-brand)}.t-cascader__item--with-icon{padding:0 calc(var(--td-comp-paddingLR-s) + 14px) 0 var(--td-comp-paddingLR-s)}.t-cascader__item--leaf .t-checkbox{width:100%}.t-cascader__item-label{display:block;padding:0;position:relative;white-space:nowrap}.t-cascader__item-label--ellipsis{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-cascader__item-label--filter{color:var(--td-text-color-brand)}.t-cascader__item:hover:not(.t-is-expanded):not(.t-is-disabled){background:var(--td-bg-color-container-hover);cursor:pointer}.t-cascader__item.t-is-selected{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-cascader__item.t-is-selected .t-checkbox__label{color:var(--td-brand-color)}.range-input-disabled.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.range-input-disabled.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.range-input-disabled.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled>.t-range-input__prefix .t-icon,.range-input-disabled.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-direction:column;font:var(--td-font-body-medium);font-size:var(--td-font-body-medium);gap:4px;height:var(--td-comp-size-m);list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:relative;transition:all .2s cubic-bezier(.38,0,.24,1);width:100%}.t-range-input:hover{border-color:var(--td-brand-color)}.t-range-input--borderless:not(.t-is-focused){border-color:transparent;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-range-input--borderless:not(.t-is-focused):hover{border-color:var(--td-component-border);cursor:pointer}.t-range-input--borderless:not(.t-is-focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-range-input.t-is-focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-range-input.t-is-success{border-color:var(--td-success-color)}.t-range-input.t-is-success.t-range-input--focused,.t-range-input.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-range-input.t-is-success>.t-range-input__extra{color:var(--td-success-color)}.t-range-input.t-is-success>.t-range-input__tips{color:var(--td-success-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-warning{border-color:var(--td-warning-color)}.t-range-input.t-is-warning.t-range-input--focused,.t-range-input.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-range-input.t-is-warning>.t-range-input__extra{color:var(--td-warning-color)}.t-range-input.t-is-warning>.t-range-input__tips{color:var(--td-warning-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-error{border-color:var(--td-error-color)}.t-range-input.t-is-error.t-range-input--focused,.t-range-input.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-range-input.t-is-error>.t-range-input__extra{color:var(--td-error-color)}.t-range-input.t-is-error>.t-range-input__tips{color:var(--td-error-color);font-size:var(--td-font-size-body-small);margin-left:calc(var(--td-comp-paddingLR-xs)*-1)}.t-range-input.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-range-input.t-is-disabled .t-range-input__inner{color:var(--td-text-color-disabled);cursor:not-allowed}.t-range-input.t-is-disabled .t-range-input__inner::placeholder{color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled>.t-range-input__prefix .t-icon,.t-range-input.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input.t-range-input--prefix .t-range-input__prefix,.t-range-input.t-range-input--suffix .t-range-input__suffix{align-items:center;display:flex;font-size:var(--td-font-size-body-medium);height:100%;text-align:center}.t-range-input.t-size-l{font:var(--td-font-body-large);height:var(--td-comp-size-xl);padding-bottom:var(--td-comp-paddingTB-xs);padding-top:var(--td-comp-paddingTB-xs)}.t-range-input.t-size-l .t-input{padding:0 var(--td-comp-margin-s)}.t-range-input.t-size-s{font:var(--td-font-body-small);height:var(--td-comp-size-xs);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-margin-xs)}.t-range-input__inner{align-items:center;display:flex;gap:var(--td-comp-margin-s);height:100%}.t-range-input__inner .t-input__wrap{border-radius:var(--td-radius-small);height:100%}.t-range-input__inner>.t-range-input__prefix{flex-shrink:0}.t-range-input__inner .t-input{border:0;border-radius:var(--td-radius-small);box-shadow:none;font-size:inherit;height:100%;padding:0 var(--td-comp-paddingLR-xs)}.t-range-input__inner .t-input:hover{background-color:var(--td-bg-color-container-hover)}.t-range-input__inner .t-input__inner{height:100%;line-height:1;width:100%}.t-range-input__inner .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-range-input__extra{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-range-input__status{position:absolute;right:calc(0px - var(--td-comp-margin-xxxl));top:0}.t-range-input.t-range-input--suffix .t-input__clear{opacity:0;transition:all .2s cubic-bezier(.38,0,.24,1);visibility:hidden}.t-range-input.t-range-input--suffix:hover .t-input__clear{opacity:1;visibility:visible}.t-range-input .t-range-input__suffix-clear{cursor:pointer}.t-range-input__prefix>.t-icon,.t-range-input__suffix>.t-icon{color:var(--td-text-color-placeholder);flex-shrink:0;font-size:16px;transition:color .2s linear}.t-range-input-popup{width:100%}.t-range-input-popup--visible .t-range-input{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-range-input-popup--visible .t-range-input .t-icon-calendar,.t-range-input-popup--visible .t-range-input .t-icon-time{color:var(--td-brand-color)}.t-range-input-popup--visible .t-range-input .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-date-picker,.t-date-range-picker{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-date-picker__header-controller-month-popup>.t-popup__content,.t-date-picker__header-controller-year-popup>.t-popup__content{max-height:160px}.t-date-picker__panel-container>.t-popup__content,.t-date-range-picker__panel-container>.t-popup__content{min-width:280px;padding:0}.t-date-picker__panel,.t-date-range-picker__panel{display:flex;flex-direction:column}.t-date-picker__panel--direction-row,.t-date-range-picker__panel--direction-row{flex-direction:row}.t-date-picker__panel .t-time-picker__panel,.t-date-range-picker__panel .t-time-picker__panel{width:216px}.t-date-picker__panel .t-time-picker__panel-section-body,.t-date-range-picker__panel .t-time-picker__panel-section-body{padding:0}.t-date-picker__panel .t-time-picker__panel-body,.t-date-range-picker__panel .t-time-picker__panel-body{margin:0}.t-date-picker__panel-content,.t-date-range-picker__panel-content,.t-date-range-picker__panel-content-wrapper{display:flex}.t-date-picker__header{align-items:center;display:flex;gap:var(--td-comp-margin-m);justify-content:space-between;width:100%}.t-date-picker__header-controller{display:inline-flex;gap:var(--td-comp-margin-s)}.t-date-picker__header-controller .t-date-picker__header-controller-month{display:flex;width:80px}.t-date-picker__header-controller .t-date-picker__header-controller-year{display:flex;width:78px}.t-date-picker__table table{border-collapse:collapse;width:100%}.t-date-picker__table table th{color:var(--td-text-color-secondary);font-weight:400;text-align:center}.t-date-picker__table table td.t-date-picker__cell{font-weight:500;text-align:center}.t-date-picker__table table td.t-date-picker__cell,.t-date-picker__table table th,.t-date-picker__table table th.t-date-picker__table-header-cell{border:0;line-height:var(--td-line-height-body-medium);padding:0}.t-date-picker__table table thead:after,.t-date-picker__table table thead:before{color:transparent;content:"-";display:block;line-height:var(--td-comp-margin-xs)}.t-date-picker__table-week-row{cursor:pointer;position:sticky}.t-date-picker__table-week-row .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__table-week-row .t-date-picker__cell:hover .t-date-picker__cell-inner{background:none;box-shadow:none}.t-date-picker__table-week-row:after{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:var(--td-comp-margin-xxxl);pointer-events:none;position:absolute;right:0;top:calc(var(--td-comp-margin-xs) - 1px);transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;z-index:10}.t-date-picker__table-week-row:hover .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row:hover:after{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__table-week-row--active:after{background-color:var(--td-brand-color);opacity:1;z-index:0}.t-date-picker__table-week-row--active .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row--active .t-date-picker__cell .t-date-picker__cell-inner{background:transparent;color:var(--td-text-color-anti)}.t-date-picker__table-week-row--range:after{background-color:var(--td-brand-color-light);opacity:1;z-index:0}.t-date-picker__table-week-row--range .t-date-picker__cell .t-date-picker__cell-inner{background:transparent}.t-date-picker__footer{align-items:flex-start;display:flex;gap:var(--td-comp-margin-s);justify-content:space-between;padding:var(--td-pop-padding-xl)}.t-date-picker__footer--bottom{border-top:1px solid var(--td-component-stroke)}.t-date-picker__footer--top{border-bottom:1px solid var(--td-component-stroke)}.t-date-picker__footer--left{border-right:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--left .t-date-picker__presets{flex-direction:column}.t-date-picker__footer--right{border-left:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--right .t-date-picker__presets{flex-direction:column}.t-date-picker__presets{display:flex;gap:var(--td-comp-margin-s);min-width:var(--td-comp-size-xl);white-space:nowrap}.t-date-picker__presets .t-button{cursor:pointer}.t-date-picker__presets a{color:var(--td-brand-color)}.t-date-picker__presets a:hover{color:var(--td-brand-color-hover)}.t-date-picker__panel-time,.t-date-range-picker__panel-time{border-left:1px solid var(--td-component-stroke);display:flex;flex-direction:column;gap:calc(var(--td-comp-margin-m)/2);padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs))}.t-date-picker__panel-time-viewer,.t-date-range-picker__panel-time-viewer{align-items:center;color:var(--td-text-color-primary);display:flex;height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-line-height-body-medium)}.t-date-picker__panel-time .t-time-picker__panel-body,.t-date-range-picker__panel-time .t-time-picker__panel-body{margin:0}.t-date-picker__panel-date,.t-date-picker__panel-month,.t-date-picker__panel-quarter,.t-date-picker__panel-week,.t-date-picker__panel-year{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--td-comp-margin-m);padding:var(--td-pop-padding-xl);width:280px}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1}.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl));opacity:1;z-index:5}.t-date-picker__panel-month .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before,.t-date-picker__panel-year .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before{left:calc(0px - var(--td-comp-size-xs) - var(--td-comp-margin-xxl))}.t-date-picker__panel-month .t-date-picker__header-controller-year,.t-date-picker__panel-quarter .t-date-picker__header-controller-year,.t-date-picker__panel-year .t-date-picker__header-controller-year{display:flex;width:130px}.t-date-picker__panel-month .t-date-picker__table table tbody,.t-date-picker__panel-quarter .t-date-picker__table table tbody,.t-date-picker__panel-year .t-date-picker__table table tbody{display:flex;flex-direction:column;gap:var(--td-comp-margin-m);width:100%}.t-date-picker__panel-month .t-date-picker__table table tbody tr,.t-date-picker__panel-quarter .t-date-picker__table table tbody tr,.t-date-picker__panel-year .t-date-picker__table table tbody tr{display:flex;justify-content:space-between}.t-date-picker__panel-month .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-quarter .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-year .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{left:calc(0px - var(--td-comp-size-xxxl))}.t-date-picker__panel-month .t-date-picker__cell:first-child,.t-date-picker__panel-quarter .t-date-picker__cell:first-child,.t-date-picker__panel-year .t-date-picker__cell:first-child{text-align:left}.t-date-picker__panel-month .t-date-picker__cell:nth-child(3),.t-date-picker__panel-quarter .t-date-picker__cell:nth-child(3),.t-date-picker__panel-year .t-date-picker__cell:nth-child(3){text-align:right}.t-date-picker__panel-month .t-date-picker__cell-inner,.t-date-picker__panel-quarter .t-date-picker__cell-inner,.t-date-picker__panel-year .t-date-picker__cell-inner{width:var(--td-comp-size-xxl)}.t-date-picker__cell{cursor:pointer;padding:0;position:relative}.t-date-picker__cell:after,.t-date-picker__cell:before{border-radius:var(--td-radius-default);content:"";height:var(--td-comp-size-xs);left:-5%;opacity:0;position:absolute;right:-5%;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);z-index:1}.t-date-picker__cell:hover .t-date-picker__cell-inner{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__cell-inner{align-items:center;border-radius:var(--td-radius-default);display:inline-flex;height:var(--td-comp-size-xs);justify-content:center;margin:calc(var(--td-comp-margin-xs) - 1px);position:relative;transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;width:var(--td-comp-size-xs);z-index:5}.t-date-picker__cell--now .t-date-picker__cell-inner{background:var(--td-brand-color-light);color:var(--td-brand-color)}.t-date-picker__cell--highlight:before,.t-date-picker__cell--hover-highlight:after{background-color:var(--td-brand-color-light);opacity:1}.t-date-picker__cell--highlight.t-date-picker__cell--hover-highlight:after{background-color:rgba(0,0,0,.06);opacity:1}.t-date-picker__cell--additional:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-container-hover);border-color:var(--td-bg-color-container-hover);box-shadow:none}.t-date-picker__cell--additional .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__cell--active .t-date-picker__cell-inner{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-date-picker__cell--active-start:before{border-bottom-left-radius:var(--td-radius-default);border-top-left-radius:var(--td-radius-default);left:calc(var(--td-comp-margin-xs)*2 - 2px);opacity:1}.t-date-picker__cell--active-start:hover:before{left:-5%}.t-date-picker__cell--active-end:before{border-bottom-right-radius:var(--td-radius-default);border-top-right-radius:var(--td-radius-default);opacity:1;right:calc(var(--td-comp-margin-xs)*2 - 2px)}.t-date-picker__cell--active-end:hover:before{right:-5%}.t-date-picker__cell--disabled:hover .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);box-shadow:none}.t-date-picker__cell--disabled .t-date-picker__cell-inner{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{background-color:var(--td-bg-color-component-disabled);border-radius:var(--td-radius-default);left:calc(0px - var(--td-comp-size-l));opacity:1}.t-date-picker__input--placeholder input{color:var(--td-text-color-placeholder)}.t-form{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;padding:0}.t-form,.t-form:not(.t-form-inline) .t-form__item:last-of-type{margin:0}.t-form__item{margin-bottom:var(--td-comp-margin-xxl)}.t-form__item.t-form__item-with-help{margin-bottom:var(--td-comp-margin-xs)}.t-form__item.t-form__item-with-extra{margin-bottom:var(--td-comp-margin-xxl)}.t-form__label{box-sizing:border-box;color:var(--td-text-color-primary);float:left;line-height:var(--td-comp-margin-xxxl);padding-right:var(--td-comp-paddingLR-xl);vertical-align:middle;white-space:nowrap}.t-form__label--top{float:none;min-height:var(--td-comp-margin-xxxl)}.t-form__label--left{text-align:left}.t-form__label--right{text-align:right}.t-form__label--required label:before{color:var(--td-error-color);content:"*";display:inline-block;line-height:var(--td-line-height-body-medium);margin-right:var(--td-comp-margin-xs)}.t-form__label--colon label:after{content:":";margin:0 var(--td-comp-margin-xxs);position:relative}.t-form__controls{display:flow-root;min-height:var(--td-comp-margin-xxxl);position:relative}.t-form__controls-content{align-items:center;display:flex;min-height:var(--td-comp-margin-xxxl)}.t-form__controls .t-form__item{margin-bottom:0;margin-right:var(--td-comp-margin-xxl)}.t-form__controls.t-form--success-border.t-is-success .t-input__extra,.t-form__controls.t-is-success .t-form__status .t-icon,.t-form__controls.t-is-success .t-input__extra{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner{border-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-form__status .t-icon{color:var(--td-success-color)}.t-form__status{display:flex;margin:0 var(--td-comp-margin-s)}.t-form__status>.t-icon{font-size:var(--td-comp-size-xxxs)}.t-form__status-without-icon{height:25px;width:25px}.t-form__status button{width:var(--td-comp-size-m)}.t-form__status button+button{margin-left:var(--td-comp-margin-s)}.t-form-inline{display:flex;flex-wrap:wrap;row-gap:var(--td-comp-margin-l)}.t-form-inline .t-form__item{display:inline-block;margin:0;margin-right:var(--td-comp-margin-xxl);min-width:200px}.t-input__extra,.t-input__help{color:var(--td-text-color-placeholder);font:var(--td-font-body-small);height:auto;margin:0;min-height:var(--td-line-height-body-small);width:100%}.t-input__extra{bottom:calc(0px - var(--td-line-height-body-small));max-width:100%;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap}.t-is-warning .t-input__extra{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader,.t-is-warning .t-form__controls-content .t-input,.t-is-warning .t-form__controls-content .t-radio-button,.t-is-warning .t-form__controls-content .t-range-input,.t-is-warning .t-form__controls-content .t-select,.t-is-warning .t-form__controls-content .t-textarea__inner{border-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader--focused,.t-is-warning .t-form__controls-content .t-input--focused,.t-is-warning .t-form__controls-content .t-radio-button--focused,.t-is-warning .t-form__controls-content .t-range-input--focused,.t-is-warning .t-form__controls-content .t-select--focused,.t-is-warning .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-warning .t-form__controls-content .t-cascader .t-icon,.t-is-warning .t-form__controls-content .t-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-input .t-icon,.t-is-warning .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-warning .t-form__controls-content .t-radio-button .t-icon,.t-is-warning .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-range-input .t-icon,.t-is-warning .t-form__controls-content .t-select .t-fake-arrow,.t-is-warning .t-form__controls-content .t-select .t-icon,.t-is-warning .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-warning .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-warning .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-cascader.t-is-active,.t-is-warning .t-form__controls-content .t-select.t-is-active,.t-is-warning .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-form__status .t-icon{color:var(--td-warning-color)}.t-is-error .t-input__extra{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader,.t-is-error .t-form__controls-content .t-input,.t-is-error .t-form__controls-content .t-radio-button,.t-is-error .t-form__controls-content .t-range-input,.t-is-error .t-form__controls-content .t-select,.t-is-error .t-form__controls-content .t-textarea__inner{border-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader--focused,.t-is-error .t-form__controls-content .t-input--focused,.t-is-error .t-form__controls-content .t-radio-button--focused,.t-is-error .t-form__controls-content .t-range-input--focused,.t-is-error .t-form__controls-content .t-select--focused,.t-is-error .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-error .t-form__controls-content .t-cascader .t-icon,.t-is-error .t-form__controls-content .t-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-input .t-icon,.t-is-error .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-error .t-form__controls-content .t-radio-button .t-icon,.t-is-error .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-range-input .t-icon,.t-is-error .t-form__controls-content .t-select .t-fake-arrow,.t-is-error .t-form__controls-content .t-select .t-icon,.t-is-error .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear),.t-is-error .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-error .t-form__controls-content .t-textarea__inner .t-icon{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-cascader.t-is-active,.t-is-error .t-form__controls-content .t-select.t-is-active,.t-is-error .t-form__controls-content .t-textarea__inner.t-is-focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-form__status .t-icon{color:var(--td-error-color)}.t-radio-group{align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;color:var(--td-text-color-primary);display:inline-flex;flex-wrap:wrap;font:var(--td-font-body-medium);list-style:none;margin:0;max-width:100%;padding:0;width:fit-content}@-moz-document url-prefix(){.t-radio-group{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-radio-group::-webkit-scrollbar{height:4px;width:4px}.t-radio-group::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:7px}.t-radio-group::-webkit-scrollbar-thumb:horizontal:hover,.t-radio-group::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-radio-group .t-radio{margin-right:var(--td-comp-margin-xxl)}.t-radio-group.t-radio-group__outline{flex-wrap:wrap;row-gap:var(--td-comp-margin-xs)}.t-radio-group.t-radio-group__outline.t-size-s .t-radio-button{height:var(--td-comp-size-xs)}.t-radio-group.t-radio-group__outline.t-size-m .t-radio-button{height:var(--td-comp-size-m)}.t-radio-group.t-radio-group__outline.t-size-l .t-radio-button{height:var(--td-comp-size-xl)}.t-radio-group.t-radio-group__outline .t-radio-button:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-radio-group.t-radio-group__outline .t-radio-button:only-child{border-radius:var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-checked{color:var(--td-brand-color)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-disabled.t-is-checked{background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-brand-color-disabled);color:var(--td-brand-color-disabled)}.t-radio-group.t-radio-group--filled{background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component);border-radius:var(--td-radius-default);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);position:relative}.t-radio-group.t-radio-group--filled .t-radio-group__bg-block{background-color:var(--td-bg-color-container-select);border-radius:var(--td-radius-small);height:calc(100% - 4px);left:2px;position:absolute;top:2px;transition:all .2s cubic-bezier(.38,0,.24,1);width:0}.t-radio-group.t-radio-group--filled .t-radio-button{background-color:transparent;border:0;color:var(--td-text-color-secondary)}.t-radio-group.t-radio-group--filled .t-radio-button:hover{color:var(--td-text-color-primary)}.t-radio-group.t-radio-group--filled .t-radio-button:before{background-color:var(--td-component-border);content:"";height:calc(100% - 16px);left:0;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .2s cubic-bezier(0,0,.15,1);width:1px}.t-radio-group.t-radio-group--filled .t-radio-button:first-child:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked{border:0;color:var(--td-text-color-primary);position:relative;transition:color .2s linear;z-index:1}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked+label:before,.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled{background-color:transparent}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-bg-color-component-disabled)}.t-radio-group.t-radio-group--primary-filled .t-radio-group__bg-block{background-color:var(--td-brand-color)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-checked,.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-anti)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-brand-color-disabled)}.t-radio-group.t-size-s .t-radio-button{font:var(--td-font-body-small);height:calc(var(--td-comp-size-xs) - var(--td-comp-paddingTB-xxs)*2);padding:0 var(--td-comp-paddingLR-s)}.t-radio-group.t-size-s .t-radio-button:before{height:calc(100% - 16px)}.t-radio-group.t-size-m .t-radio-button{font:var(--td-font-body-medium);height:calc(var(--td-comp-size-m) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l)}.t-radio-group.t-size-m .t-radio-button:before{height:calc(100% - 20px)}.t-radio-group.t-size-l .t-radio-button{font:var(--td-font-body-large);height:calc(var(--td-comp-size-xl) - var(--td-comp-paddingTB-xxs)*2);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xl)}.t-radio-group.t-size-l .t-radio-button:before{height:calc(100% - 24px)}.t-radio-group .t-radio-button{align-items:center;border:1px solid;border-color:var(--td-border-level-2-color);border-right:0;box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;position:relative;transition:color .2s cubic-bezier(0,0,.15,1);white-space:nowrap}.t-radio-group .t-radio-button:first-child{border-radius:var(--td-radius-small) 0 0 var(--td-radius-small)}.t-radio-group .t-radio-button:last-child{border-radius:0 var(--td-radius-small) var(--td-radius-small) 0;border-right:1px solid;border-right-color:var(--td-border-level-2-color)}.t-radio-group .t-radio-button__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:0;list-style:none;margin:0;opacity:0;padding:0;width:0}.t-radio-group .t-radio-button:hover{color:var(--td-brand-color)}.t-radio-group .t-radio-button.t-is-checked{border-right:1px solid;border-color:var(--td-brand-color);transition:border-color .2s cubic-bezier(0,0,.15,1)}.t-radio-group .t-radio-button.t-is-checked+.t-radio-button{border-left:0}.t-radio-group .t-radio-button.t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-radio-group .t-radio-button.t-is-disabled:hover{border-color:var(--td-border-level-2-color);color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled:hover:after{width:0}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked:after{width:0}.t-radio{cursor:pointer;display:inline-block;position:relative}.t-radio,.t-radio__former{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-radio__former{opacity:0;position:absolute}.t-radio__input{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-circle);display:inline-block;height:16px;position:relative;transition:border .2s cubic-bezier(0,0,.15,1);vertical-align:middle;width:16px}.t-radio__input:after{background-color:var(--td-brand-color);border-radius:var(--td-radius-circle);content:"";height:16px;left:50%;margin-left:-8px;margin-top:-8px;opacity:0;position:absolute;top:50%;transform:scale(.5);transition:all .2s cubic-bezier(0,0,.15,1);width:16px}.t-radio__label{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-s);vertical-align:middle;white-space:nowrap}.t-radio.t-is-checked .t-radio__input,.t-radio:hover .t-radio__input{border-color:var(--td-brand-color)}.t-radio.t-is-checked .t-radio__input:after{opacity:1}.t-radio.t-is-disabled{cursor:not-allowed}.t-radio.t-is-disabled .t-radio__label{color:var(--td-text-color-disabled)}.t-radio.t-is-disabled .t-radio__input{background-color:var(--td-bg-color-component-disabled)}.t-radio.t-is-disabled.t-is-checked .t-radio__input,.t-radio.t-is-disabled:hover .t-radio__input{border-color:var(--td-border-level-2-color)}.t-radio.t-is-disabled.t-is-checked .t-radio__input:after{background-color:var(--td-text-color-disabled)}.t-radio:focus-visible:focus-visible{border-radius:0;outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs)}.t-slider__input-container{align-items:center;display:flex;margin-left:var(--td-comp-margin-xxl)}.t-slider__input-container.is-vertical{margin-left:0;padding-top:var(--td-comp-paddingTB-l)}.t-slider__input-container .t-slider__center-line{background:rgba(0,0,0,.9);height:1px;margin:0 var(--td-comp-margin-s);width:var(--td-size-4)}.t-slider{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:calc(var(--td-comp-paddingTB-xs)*2 + var(--td-size-2));list-style:none;margin:0;padding:0;padding:var(--td-comp-paddingTB-xs) 0;position:relative;width:100%}.t-slider__container{align-items:center;display:flex;justify-content:center;width:100%}.t-slider__container.is-vertical{flex-direction:column;height:100%}.t-slider__rail{background-color:var(--td-bg-color-secondarycomponent);border-radius:var(--td-radius-round);height:var(--td-size-2);position:absolute;transition:.2s linear;width:100%}.t-slider__rail:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-slider__track{background-color:var(--td-brand-color);border-radius:var(--td-radius-round);right:auto}.t-slider__step,.t-slider__track{height:var(--td-size-2);position:absolute}.t-slider__step{cursor:pointer;width:100%}.t-slider__button{background-color:#fff;border:2px solid var(--td-brand-color);border-radius:var(--td-radius-circle);box-shadow:var(--td-shadow-1);box-sizing:border-box;height:var(--td-comp-size-xxxs);transition:.2s;user-select:none;width:var(--td-comp-size-xxxs)}.t-slider__button--dragging{box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-slider__button:hover{background-color:var(--td-gray-color-1)}.t-slider__button-wrapper{align-items:center;background-color:transparent;cursor:pointer;display:flex;line-height:normal;outline:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);user-select:none;z-index:2}.t-slider__stop{background-color:var(--td-bg-color-secondarycomponent);height:var(--td-size-2);position:absolute;top:4px;width:1px}.t-slider__mark{left:0;position:absolute;top:2px;width:100%}.t-slider__mark-text{color:var(--td-text-color-primary);cursor:pointer;display:inline-block;font:var(--td-font-body-small);position:absolute;top:calc(var(--td-size-2) + var(--td-comp-paddingTB-xs) + 2px);transform:translateX(-50%)}.t-slider__mark-text:first-child{transform:translateX(0)}.t-slider__mark-text:last-child{transform:translateX(-100%)}.t-slider--vertical{display:flex;height:100%;justify-content:center;padding:0;position:relative}.t-slider--vertical .t-slider__rail{height:100%;width:var(--td-size-2)}.t-slider--vertical .t-slider__track{top:auto;width:var(--td-size-2)}.t-slider--vertical .t-slider__step{height:100%;width:var(--td-size-2)}.t-slider--vertical .t-slider__handle{margin-left:-5px;margin-top:-6px;top:auto;transform:translateY(50%)}.t-slider--vertical .t-slider__mark{height:100%;left:12px;top:0;width:18px}.t-slider--vertical .t-slider__stop{background-color:var(--td-bg-color-secondarycomponent);height:1px;left:4px;width:var(--td-size-2)}.t-slider--vertical .t-slider__mark-text{margin-left:var(--td-comp-margin-xxs);margin-top:0;transform:translateY(-50%)}.t-slider--vertical .t-slider__button-wrapper{align-items:center;background-color:transparent;cursor:pointer;display:flex;left:50%;line-height:normal;outline:none;position:absolute;text-align:center;top:auto;transform:translate(-50%,50%);user-select:none;z-index:2}.t-is-disabled{cursor:not-allowed}.t-is-disabled .t-slider__track{background-color:var(--td-brand-color-disabled)}.t-is-disabled .t-slider__rail{background-color:var(--td-bg-color-component-disabled)}.t-is-disabled .t-slider__handle{border:2px solid var(--td-brand-color-disabled)}.t-is-disabled .t-slider__button{border-color:var(--td-brand-color-disabled);outline:none}.t-is-disabled .t-slider__mark-text{color:var(--td-text-color-disabled);cursor:not-allowed}.t-is-disabled .t-slider__button-wrapper{cursor:not-allowed}.t-switch{align-items:center;background-color:var(--td-bg-color-secondarycomponent);border:0;border-radius:var(--td-radius-round);box-sizing:border-box;color:var(--td-text-color-primary);cursor:pointer;display:inline-flex;font:var(--td-font-body-medium);height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);list-style:none;margin:0;min-width:calc(var(--td-comp-size-xxs)/.618);outline:none;padding:0;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1);user-select:none;vertical-align:middle}.t-switch:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-switch__handle{align-items:center;border-radius:var(--td-radius-round);box-shadow:var(--td-shadow-1);display:flex;height:calc(var(--td-comp-size-xxs) - 8px);justify-content:center;left:4px;position:absolute;top:4px;transition:all .2s cubic-bezier(.38,0,.24,1);width:calc(var(--td-comp-size-xxs) - 8px)}.t-switch__handle .t-icon{color:transparent;font-size:calc(var(--td-comp-size-xxs) - 4px)}.t-switch__handle:before{background-color:#fff;border-radius:var(--td-radius-round);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-switch:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-6px}.t-switch:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-6px;right:0}.t-switch:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__content{opacity:0}.t-switch__content{align-items:center;box-sizing:border-box;color:var(--td-text-color-anti);display:inline-flex;font-size:var(--td-font-size-body-small);min-width:calc(var(--td-comp-size-xxs)/.618);padding:0 var(--td-comp-margin-xs) 0 calc(var(--td-comp-size-xxs)/.618/2 + 2px);transition:padding .2s cubic-bezier(.38,0,.24,1),opacity .2s linear}.t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-is-checked{background-color:var(--td-brand-color)}.t-switch.t-is-checked:hover{background-color:var(--td-brand-color-hover)}.t-switch.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xxs) - 5px);left:calc(100% - 2.5px);top:2.5px;transform:translate(-100%);width:calc(var(--td-comp-size-xxs) - 5px)}.t-switch.t-is-checked .t-switch__content{color:var(--td-text-color-anti);padding:0 calc(var(--td-comp-size-xxs)/.618/2 + 2px) 0 var(--td-comp-margin-xs)}.t-switch.t-is-loading{background-color:var(--td-bg-color-component-disabled);cursor:not-allowed}.t-switch.t-is-loading .t-loading{display:inline-flex}.t-switch.t-is-loading .t-switch__handle .t-icon{color:var(--td-bg-color-component-disabled)}.t-switch.t-is-loading.t-is-checked{background-color:var(--td-brand-color-focus)}.t-switch.t-is-loading.t-is-checked .t-switch__handle .t-icon{color:var(--td-brand-color-focus)}.t-switch.t-is-disabled{background-color:var(--td-bg-color-component-disabled);cursor:not-allowed}.t-switch.t-is-disabled .t-switch__handle{box-shadow:none}.t-switch.t-is-disabled.t-is-checked{background-color:var(--td-brand-color-disabled)}.t-switch.t-is-disabled.t-is-checked .t-switch__handle{box-shadow:none}.t-switch.t-is-disabled.t-is-checked .t-switch__handle .t-icon{color:var(--td-brand-color-disabled)}.t-switch.t-size-l{border-radius:var(--td-radius-round);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);min-width:calc(var(--td-comp-size-xs)/.618)}.t-switch.t-size-l:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-8px}.t-switch.t-size-l:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-8px;right:0}.t-switch.t-size-l .t-switch__handle{height:calc(var(--td-comp-size-xs) - 10px);left:5px;top:5px;width:calc(var(--td-comp-size-xs) - 10px)}.t-switch.t-size-l .t-switch__handle .t-icon{font-size:calc(var(--td-comp-size-xs) - 4px)}.t-switch.t-size-l .t-switch__content{min-width:calc(var(--td-comp-size-xs)/.618);padding:0 var(--td-comp-margin-s) 0 calc(var(--td-comp-size-xs)/.618/2 + 4px)}.t-switch.t-size-l .t-switch__content,.t-switch.t-size-l .t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-size-l.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xs) - 6px);left:calc(100% - 3px);top:3px;width:calc(var(--td-comp-size-xs) - 6px)}.t-switch.t-size-l.t-is-checked .t-switch__content{padding:0 calc(var(--td-comp-size-xs)/.618/2 + 4px) 0 var(--td-comp-margin-s)}.t-switch.t-size-s{border-radius:var(--td-radius-round);height:var(--td-comp-size-xxxs);line-height:var(--td-comp-size-xxxs);min-width:calc(var(--td-comp-size-xxxs)/.618)}.t-switch.t-size-s:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-4px}.t-switch.t-size-s:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-4px;right:0}.t-switch.t-size-s .t-switch__handle{height:calc(var(--td-comp-size-xxxs) - 6px);left:3px;top:3px;width:calc(var(--td-comp-size-xxxs) - 6px)}.t-switch.t-size-s .t-switch__handle .t-icon{font-size:calc(var(--td-comp-size-xxxs) - 4px)}.t-switch.t-size-s .t-switch__content{font-size:9px;min-width:calc(var(--td-comp-size-xxxs)/.618);padding:0 var(--td-comp-margin-xxs) 0 calc(var(--td-comp-size-xxxs)/.618/2 + 2px)}.t-switch.t-size-s .t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-size-s.t-is-checked .t-switch__handle{height:calc(var(--td-comp-size-xxxs) - 4px);left:calc(100% - 2px);top:2px;width:calc(var(--td-comp-size-xxxs) - 4px)}.t-switch.t-size-s.t-is-checked .t-switch__content{padding:0 calc(var(--td-comp-size-xxxs)/.618/2 + 2px) 0 var(--td-comp-margin-xxs)}.t-textarea{list-style:none;margin:0;padding:0;position:relative}.t-textarea,.t-textarea__inner{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);width:100%}.t-textarea__inner{background-color:var(--td-bg-color-specialcomponent);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-xxxl);outline:none;padding:calc(var(--td-comp-size-m)/2 - var(--td-line-height-body-medium)/2) var(--td-comp-paddingLR-s);resize:vertical;transition:all .2s cubic-bezier(.38,0,.24,1),height 0s}.t-textarea__inner:focus,.t-textarea__inner:hover{border-color:var(--td-brand-color)}.t-textarea__inner:focus{box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-textarea__inner::placeholder{color:var(--td-text-color-placeholder)}.t-textarea__inner.t-is-success{border-color:var(--td-success-color)}.t-textarea__inner.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-textarea__inner.t-is-warning{border-color:var(--td-warning-color)}.t-textarea__inner.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-textarea__inner.t-is-error{border-color:var(--td-error-color)}.t-textarea__inner.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-textarea__info_wrapper{column-gap:var(--td-comp-margin-s);display:flex;justify-content:space-between}.t-textarea__info_wrapper_align{justify-content:end}.t-textarea__limit{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-textarea .t-is-disabled{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);cursor:not-allowed}.t-textarea .t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-textarea .t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-textarea .t-resize-none{resize:none}.t-textarea__tips{display:inline-block;font:var(--td-font-body-small);height:auto;min-height:var(--td-comp-size-xs)}.t-textarea__tips--normal{color:var(--td-text-color-placeholder)}.t-textarea__tips--success{color:var(--td-success-color)}.t-textarea__tips--warning{color:var(--td-warning-color)}.t-textarea__tips--error{color:var(--td-error-color)}.t-transfer{align-items:stretch;background:transparent;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-direction:row;font:var(--td-font-body-medium);list-style:none;margin:0;max-height:100%;padding:0;position:relative}.t-transfer__list{border:0;display:inline-block;height:200px;min-width:200px;padding-top:var(--td-comp-size-xxl);position:relative;vertical-align:middle;word-break:break-word}.t-transfer__list-source,.t-transfer__list-target{border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-medium)}.t-transfer__list-header{box-sizing:border-box;display:flex;height:var(--td-comp-size-xxl);justify-content:space-between;line-height:var(--td-comp-size-xxl);margin:0 var(--td-comp-margin-s);padding:0 var(--td-comp-paddingLR-s);position:absolute;top:0;width:calc(200px - var(--td-comp-margin-s)*2)}.t-transfer__list-header+:not(.t-transfer__list--with-search){border-top:1px solid var(--td-border-level-1-color)}.t-transfer__list-header .t-checkbox{margin-right:0}.t-transfer__list-header .t-checkbox__label{margin:0}.t-transfer__list-header div{display:flex}.t-transfer__list-header div>span{margin-left:var(--td-comp-margin-s)}.t-transfer__list-header>span{color:var(--td-text-color-placeholder)}.t-transfer__list-body{box-sizing:border-box;height:100%;position:relative}.t-transfer__list--with-search{border-top:0;padding-top:var(--td-comp-size-m)}.t-transfer__list-content{height:100%;overflow:auto;width:100%}.t-transfer__list-content .t-checkbox-group{flex-direction:column;gap:var(--td-comp-margin-xs);margin:var(--td-comp-margin-s) 0;width:100%}.t-transfer__list-content .t-checkbox-group .t-checkbox{--ripple-color:var(--td-bg-color-container-active);margin-right:var(--td-comp-margin-s)}.t-transfer__list-content .t-checkbox-group .t-checkbox+.t-checkbox{margin-left:var(--td-comp-margin-s)}.t-transfer__list-content .t-checkbox-group .t-checkbox__label{flex:1;margin:0}.t-transfer__list-content .t-checkbox-group .t-checkbox__label>span{display:inline-block;margin-left:var(--td-comp-margin-s)}.t-transfer__list .t-transfer__list-item{border-radius:var(--td-radius-default);cursor:pointer;display:flex;margin:0 var(--td-comp-margin-s);padding:var(--td-comp-paddingLR-xs) var(--td-comp-paddingLR-s);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-transfer__list .t-transfer__list-item:first-child{margin-top:0}.t-transfer__list .t-transfer__list-item.t-is-disabled:hover{background:transparent}.t-transfer__list-item:hover{background:var(--td-bg-color-container-hover);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-transfer__list-item.t-is-checked{background:var(--td-brand-color-light)}.t-transfer__list-wrapper{height:100%;overflow:auto;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);position:relative;width:100%}.t-transfer__list-pagination{height:var(--td-comp-size-xs);padding:var(--td-comp-paddingTB-m);vertical-align:middle}.t-transfer__list-footer{border-top:1px solid var(--td-border-level-1-color);bottom:0;left:0;position:absolute;width:100%}.t-transfer__operations{display:inline-flex;flex-direction:column;gap:var(--td-comp-margin-l);margin:auto var(--td-comp-margin-s);overflow:hidden;vertical-align:middle}.t-transfer__operations .t-icon{font-size:var(--td-comp-size-xxxs)}.t-transfer__operations .t-icon+.t-button__text{margin-left:0}.t-transfer__empty{color:var(--td-text-color-placeholder);left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.t-transfer__search-wrapper{box-sizing:border-box;padding:0 var(--td-comp-margin-s);position:absolute;top:0;width:100%}.t-transfer__search .t-transfer__list{height:240px}.t-transfer--with-tree .t-transfer__list{height:auto}.t-transfer--with-tree .t-transfer__list .t-tree{margin:var(--td-comp-margin-s) 0;padding:0 var(--td-comp-paddingLR-m)}.t-transfer__pagination .t-transfer__list{height:240px;padding-bottom:calc(var(--td-comp-size-xs) + var(--td-comp-paddingTB-m)*2)}.t-transfer__footer .t-transfer__list{height:248px;padding-bottom:48px}.t-transfer__pagination.t-transfer__footer .t-transfer__list{height:288px;padding-bottom:calc(var(--td-comp-size-xs) + var(--td-comp-paddingTB-m)*2 + 48px)}.t-transfer__search.t-transfer__footer .t-transfer__list{height:288px;padding-bottom:48px}.t-transfer__search.t-transfer__pagination .t-transfer__list{height:280px;padding-bottom:48px}.t-transfer__search.t-transfer__footer.t-transfer__pagination .t-transfer__list{height:328px;padding-bottom:88px}.t-transfer__wrapper .t-transfer__list{height:320px;overflow:scroll;width:206px}.flex-center{align-items:center;display:flex;justify-content:center}.t-time-picker,.t-time-range-picker{background:transparent;box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:240px}.t-time-picker.t-is-disabled,.t-time-range-picker.t-is-disabled{cursor:not-allowed}.t-time-picker>:active,.t-time-picker>:focus,.t-time-range-picker>:active,.t-time-range-picker>:focus{outline:0}.t-time-picker__group,.t-time-range-picker__group{position:relative}.t-time-picker__group.active,.t-time-range-picker__group.active{border:1px solid var(--td-brand-color);box-shadow:0 0 2px 2px var(--td-brand-color-focus)}.t-time-picker__group.active+.t-time-picker__icon-wrap>.t-time-picker__icon-clear,.t-time-range-picker__group.active+.t-time-picker__icon-wrap>.t-time-picker__icon-clear{display:block}.t-time-picker__group-text,.t-time-range-picker__group-text{color:var(--td-text-color-primary)}.t-time-picker__group input,.t-time-range-picker__group input{cursor:pointer}.t-time-range-picker{width:auto}.t-time-picker__panel{--timePickerPanelOffsetTop:15;--timePickerPanelOffsetBottom:21;background:transparent;border-radius:var(--td-radius-default);display:inline-block;font:var(--td-font-body-medium);position:relative;width:280px}.t-time-picker__panel-body{align-items:center;display:flex;height:calc(var(--td-comp-size-xs)*7 + var(--td-size-3)*7 + var(--td-size-3));justify-content:center;position:relative;user-select:none;width:100%}.t-time-picker__panel-body-active-mask{display:flex;height:var(--td-comp-size-xs);position:absolute;top:50%;width:100%}.t-time-picker__panel-body-active-mask>div{background-color:var(--td-brand-color-light);border-radius:var(--td-radius-default);flex:1;height:var(--td-comp-size-xs);margin:var(--td-size-3) var(--td-comp-margin-xs);transform:translateY(calc(0px - var(--td-comp-size-xs)/2 - var(--td-size-3)/2))}.t-time-picker__panel-body-scroll{flex:1;height:100%;list-style:none;margin:0;overflow-y:scroll;padding:0;position:relative;text-align:center}.t-time-picker__panel-body-scroll::-webkit-scrollbar{width:0}.t-time-picker__panel-body-scroll:after,.t-time-picker__panel-body-scroll:before{content:"";display:block;height:50%}.t-time-picker__panel-body-scroll:before{height:calc(50% - var(--timePickerPanelOffsetTop, 0)*1px)}.t-time-picker__panel-body-scroll:after{height:calc(50% - var(--timePickerPanelOffsetBottom, 0)*1px)}.t-time-picker__panel-body-scroll:last-child{border-right:0}.t-time-picker__panel-body-scroll-item{border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;font:var(--td-font-body-medium);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);margin:var(--td-size-3) var(--td-comp-margin-xs);text-align:center;transition:.2s linear}.t-time-picker__panel-body-scroll-item:not(.t-time-picker__panel-body-scroll-item.t-is-current):not(.t-time-picker__panel-body-scroll-item.t-is-disabled):hover{color:var(--td-text-color-primary)}.t-time-picker__panel-body-scroll-item:not(.t-time-picker__panel-body-scroll-item.t-is-current):not(.t-time-picker__panel-body-scroll-item.t-is-disabled):active{background-color:var(--td-bg-color-container-hover)}.t-time-picker__panel-body-scroll-item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-time-picker__panel-body-scroll-item.t-is-hidden{cursor:not-allowed;display:none}.t-time-picker__panel-body-scroll-item.t-is-current{color:var(--td-brand-color)}.t-time-picker__panel-section-body{padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs))}.t-time-picker__panel-section-footer{align-items:center;background-color:transparent;border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;display:flex;flex-direction:row-reverse;justify-content:space-between;padding:var(--td-pop-padding-xl);position:relative;width:100%}.t-tree{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-tree.t-is-disabled,.t-tree.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-tree.t-is-disabled .t-tree__item.t-is-active{background-color:var(--td-bg-color-container-hover);color:var(--td-text-color-disabled)}.t-tree.t-is-disabled .t-tree__item .t-icon{color:var(--td-text-color-secondary)}.t-tree__empty{color:var(--td-text-color-disabled)}.t-tree__branch{display:block}.t-tree__item{--level:0;--hscale:2;align-items:center;backface-visibility:hidden;cursor:default;display:flex;flex-wrap:nowrap;padding:0 0 0 calc(var(--td-comp-margin-xxl)*var(--level));perspective:1000;position:relative;transform:translateZ(0);will-change:opacity,max-height}.t-tree__item .t-icon,.t-tree__item .t-loading{display:inline-block;font-size:calc(var(--td-font-size-body-medium) + 2px);position:relative;z-index:2}.t-tree__item .t-icon{color:var(--td-text-color-secondary)}.t-tree__item .t-checkbox{align-items:center;font-size:0}.t-tree__item .t-checkbox__input{flex-shrink:0}.t-tree__item .t-checkbox__label{overflow:hidden;text-overflow:ellipsis}.t-tree__item .t-tree__icon--default .t-icon{transform:rotate(0)}.t-tree__item--open .t-icon{color:var(--td-text-color-brand)}.t-tree__item--open .t-tree__icon--default .t-icon{transform:rotate(90deg)}.t-tree__item--clickable{cursor:pointer}.t-tree__item--locked{color:var(--td-text-color-disabled)}.t-tree__item--matched{color:inherit}.t-tree__item--draggable{cursor:pointer}.t-tree__item--draggable:hover{background-clip:content-box;background-color:var(--td-bg-color-container-hover)}.t-tree__item--draggable:after{background-clip:content-box;border-radius:1px;content:"";display:block;height:2px;left:0;padding:inherit;position:absolute;right:0;top:-1px}.t-tree__item--tip-bottom:after,.t-tree__item--tip-top:after{background-color:var(--td-brand-color)}.t-tree__item--tip-bottom:after{bottom:-1px;top:unset}.t-tree__item--tip-highlight{background-clip:content-box;background-color:var(--td-brand-color-light)}.t-tree__item:before{content:"";display:block;flex:0 0 auto;height:calc(var(--td-comp-size-m) + 2px);width:0}.t-tree--block-node .t-tree__label{flex:1}.t-tree--hoverable .t-tree__label:not(.t-is-active):not(.t-is-checked):hover{background-color:var(--td-bg-color-container-hover)}.t-tree__line{--level:0;--color:var(--td-border-level-1-color);--space:var(--td-comp-margin-xxl);--iconSize:16px;bottom:var(--td-comp-margin-l);left:calc(var(--td-comp-margin-xxl)*var(--level) - var(--td-comp-margin-l));pointer-events:none;width:1px}.t-tree__line,.t-tree__line:before{height:calc(var(--td-comp-size-m) + 2px);position:absolute}.t-tree__line:before{border-bottom:1px solid var(--color);border-left:1px solid var(--color);bottom:0;content:"";display:block;left:0;width:var(--td-comp-margin-m)}.t-tree__line--first:before{height:var(--td-line-height-body-medium)}.t-tree__line--leaf:before{width:var(--td-comp-margin-m)}.t-tree__icon{align-items:center;cursor:pointer;display:inline-flex;flex:none;font-size:0;position:relative;text-align:center;user-select:none;width:calc(var(--td-font-size-body-medium) + 2px)}.t-tree__icon:after{border-radius:var(--td-radius-default);content:"";display:block;height:calc(var(--td-font-size-body-medium) + 6px);left:-2px;position:absolute;top:-2px;width:calc(var(--td-font-size-body-medium) + 6px)}.t-tree__icon:not(:empty):hover{background-color:var(--td-bg-color-container-hover)}.t-tree__icon:empty{cursor:auto}.t-tree__label{--ripple-color:var(--td-bg-color-container-active);word-wrap:normal;border-radius:var(--td-radius-default);cursor:pointer;flex:1;flex-wrap:nowrap;margin-left:var(--td-comp-margin-xs);overflow:hidden;padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xs);text-overflow:ellipsis;white-space:nowrap}.t-tree__label.t-is-checked{background-color:var(--td-brand-color-light);color:var(--td-text-color-primary);font-weight:500}.t-tree__label::selection{background-color:transparent}.t-is-active .t-tree__label{background-color:var(--td-brand-color-light);color:var(--td-text-color-primary);font-weight:500}.t-tree__space{display:block;flex:1 0 auto}.t-tree__operations{align-items:center;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto}.t-tree__operations .t-icon{cursor:pointer}.t-tree__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:default}.t-tree__item.t-is-disabled .t-checkbox{cursor:default}.t-tree__item--hidden{display:none}.t-tree--transition .t-tree__label{transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__icon{transition:color,transform .24s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__icon:after,.t-tree--transition .t-tree__icon:not(:empty):hover{transition:.2s linear}.t-tree--transition .t-tree__icon--default .t-icon{transition:color,transform .2s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__item--visible{display:flex;max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:1;transition:opacity .15s linear .15s,max-height .15s linear 0s}.t-tree--transition .t-tree__item--hidden{animation:initial;display:flex;max-height:0;opacity:0;overflow:hidden;pointer-events:none;transition:opacity .15s linear 0s,max-height .15s linear .15s;user-select:none}.t-tree--transition .t-tree__item--enter-active{animation:t-tree-toggle .3s linear}.t-tree--transition .t-tree__item--leave-active{animation:t-tree-toggle .3s linear reverse forwards}.t-tree__lazyload,.t-tree__vscroll{overflow-y:auto}.t-tree__vscroll-cursor{height:1px;position:absolute;transition:transform .2s;width:1px}.t-tree--scrolling .t-tree__item{will-change:auto}.t-tree--scrolling .t-tree__item--enter,.t-tree--scrolling .t-tree__item--enter-active,.t-tree--scrolling .t-tree__item--enter-to,.t-tree--scrolling .t-tree__item--hidden,.t-tree--scrolling .t-tree__item--leave,.t-tree--scrolling .t-tree__item--leave-active .t-tree__item--leave-to,.t-tree--scrolling .t-tree__item--visible,.t-tree--scrolling .v-enter,.t-tree--scrolling .v-leave{animation:none;transition:none}.t-tree--scrolling .t-tree__item--enter-active,.t-tree--scrolling .t-tree__item--enter-to,.t-tree--scrolling .t-tree__item--visible{max-height:none}.t-tree--scrolling .t-tree__item--leave-active,.t-tree--scrolling .t-tree__item--leave-to{max-height:0}@keyframes t-tree-toggle{0%{max-height:0;opacity:0}50%{max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:0}to{max-height:calc((var(--td-comp-size-m) + 2px)*var(--hscale));opacity:1}}.t-tree-select{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-tree-select--without-input input{display:none}.t-tree-select--without-input .t-input__suffix-icon{margin-left:auto}.t-tree-select .t-fake-arrow{color:var(--td-text-color-placeholder);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tree-select .t-fake-arrow--highlight{color:var(--td-text-color-brand)}.t-tree-select .t-fake-arrow--disable{color:var(--td-text-color-disabled)}.t-tree-select--placeholder{color:var(--td-text-color-placeholder)}.t-tree-select.t-single-suffix{padding-right:20px}.t-tree-select.t-tag-prefix{padding-left:4px}.t-tree-select-popup .t-popup__content{max-height:300px;overflow-y:auto;padding:var(--td-pop-padding-m)}@-moz-document url-prefix(){.t-tree-select-popup .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tree-select-popup .t-popup__content::-webkit-scrollbar{height:8px;width:8px}.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover,.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-color-picker__panel{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);padding:0;user-select:none;width:256px}.t-popup__content .t-color-picker__panel{background:transparent;box-shadow:unset}.t-color-picker{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-color-picker.t-popup__content{box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left)}.t-color-picker__icon{align-items:center;background:transparent;border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;display:flex;font-size:var(--td-comp-size-xxxs);justify-content:center;transition:.2s linear}.t-color-picker__icon:hover{background:var(--td-bg-color-container-hover);transition:.2s linear}.t-color-picker__icon.t-is-disabled{color:var(--td-text-color-disabled);pointer-events:none}.t-color-picker__head{align-items:center;display:flex;justify-content:space-between;padding:var(--td-pop-padding-xl);position:relative;z-index:2}.t-color-picker__head .t-color-picker__close{flex-shrink:0}.t-color-picker__head+.t-color-picker__body{padding-top:0}.t-color-picker__body{padding:var(--td-pop-padding-xl);padding-bottom:calc(var(--td-pop-padding-xl) - 4px)}.t-color-picker__thumb{background:var(--td-text-color-anti);border-color:currentcolor;border-radius:var(--td-radius-circle);box-shadow:var(--td-shadow-1);box-sizing:border-box;color:var(--td-text-color-brand);height:calc(var(--td-comp-size-xxxs) + var(--td-size-1));outline:none;padding:2px;position:absolute;width:calc(var(--td-comp-size-xxxs) + var(--td-size-1));z-index:1}.t-color-picker__thumb:before{background:currentcolor;border-radius:var(--td-radius-circle);content:"";display:block;height:100%;width:100%}.t-color-picker__saturation{background:transparent;border-radius:var(--td-radius-default);height:160px;overflow:hidden;position:relative}.t-color-picker__saturation:after,.t-color-picker__saturation:before{content:"";height:100%;left:0;position:absolute;top:0;width:100%}.t-color-picker__saturation:before{background:linear-gradient(90deg,#fff,transparent)}.t-color-picker__saturation:after{background:linear-gradient(0deg,#000,transparent)}.t-color-picker__saturation .t-color-picker__thumb{border-radius:var(--td-radius-circle);height:calc(var(--td-comp-size-xxxs) + var(--td-size-1));transform:translate(-50%,-50%);width:calc(var(--td-comp-size-xxxs) + var(--td-size-1))}.t-color-picker__slider-wrapper{border-radius:4px;padding:0 calc(var(--td-comp-size-xxxs)/2 + var(--td-size-1)/2);position:relative}.t-color-picker__slider-wrapper--hue-type{background:red}.t-color-picker__slider-wrapper--alpha-type{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px}.t-color-picker__slider-padding{border-radius:4px;height:8px;left:0;position:absolute;top:0;width:100%}.t-color-picker__slider{border-radius:4px;color:transparent;cursor:pointer;height:8px;outline:none;position:relative;z-index:1}.t-color-picker__slider .t-color-picker__thumb{top:50%;transform:translate(calc(var(--td-comp-size-xxxs)*-.5 + var(--td-size-1)*-.5),-50%)}.t-color-picker__slider .t-color-picker__rail{border-radius:inherit;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%}.t-color-picker__alpha,.t-color-picker__format{margin:var(--td-comp-margin-m) 0 0 0}.t-color-picker__hue{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.t-color-picker__alpha .t-color-picker__rail{background:linear-gradient(90deg,transparent,currentcolor)}.t-color-picker__sliders-wrapper{align-items:center;display:flex;margin:var(--td-comp-margin-m) 0}.t-color-picker__sliders{width:100%}.t-color-picker__sliders-preview{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px;border-radius:var(--td-radius-default);flex-shrink:0;height:var(--td-comp-size-s);margin-left:var(--td-comp-margin-m);overflow:hidden;width:var(--td-comp-size-s)}.t-color-picker__sliders-preview-inner{display:block;height:100%;width:100%}.t-color-picker__gradient{align-items:center;display:flex;margin-bottom:var(--td-comp-margin-m);padding:0}.t-color-picker__gradient-slider{flex:1}.t-color-picker__gradient-degree{flex-shrink:0;margin-left:var(--td-comp-margin-m);position:relative;width:var(--td-comp-size-xxl)}.t-color-picker__gradient-degree .t-input{font:var(--td-font-body-small);margin:0}.t-color-picker__gradient-degree .t-input-number{padding:0;width:100%}.t-color-picker__gradient .gradient-thumbs{border-radius:inherit;cursor:pointer;height:100%;left:0;list-style:none;margin:0;padding:0;position:absolute;top:0;width:100%}.t-color-picker__gradient .gradient-thumbs__item{cursor:pointer;left:0;top:50%;transform:translate(-50%,-50%);z-index:0}.t-color-picker__gradient .gradient-thumbs__item:before{display:none}.t-color-picker__gradient .gradient-thumbs__item.t-is-active{outline:2px solid var(--td-component-border);z-index:1}.t-color-picker__gradient .gradient-thumbs__item-inner{border-radius:var(--td-radius-circle);display:block;height:100%;overflow:hidden;width:100%}.t-color-picker__gradient .gradient-thumbs__item-inner:before{background-color:currentcolor;content:"";display:block;height:100%;width:100%}.t-color-picker__format{align-items:center;display:flex;justify-content:space-between}.t-color-picker__format--item:first-child{flex-shrink:0}.t-color-picker__format--item:last-child{flex:1}.t-color-picker__format--item .t-input.t-size-m,.t-color-picker__format--item .t-size-m{font:var(--td-font-body-small)}.t-color-picker__format--item .t-input-number .t-input{margin:0}.t-color-picker__format--item .input-group{align-items:center;display:flex;justify-content:space-around;margin-left:var(--td-comp-margin-s)}.t-color-picker__format--item .input-group__item{flex:1;margin-left:-1px;width:0}.t-color-picker__format--item .input-group__item .t-input{padding:0 1px}.t-color-picker__format--item .input-group__item .t-input:focus,.t-color-picker__format--item .input-group__item .t-input:focus-within,.t-color-picker__format--item .input-group__item .t-input:hover{z-index:1}.t-color-picker__format--item .input-group__item:not(:first-child):not(:last-child) .t-input{border-radius:0}.t-color-picker__format--item .input-group__item:first-child:not(:last-child) .t-input{border-bottom-right-radius:0;border-top-right-radius:0}.t-color-picker__format--item .input-group__item:last-child:not(:first-child) .t-input{border-bottom-left-radius:0;border-top-left-radius:0}.t-color-picker__format--item .input-group .t-input-number{max-width:100%;padding:0;width:100%}.t-color-picker__format-mode-select{display:flex;width:72px}.t-color-picker__format-mode-select .t-input,.t-color-picker__format-mode-select .t-select{padding-right:0}.t-color-picker__format-mode-select .t-input--prefix>.t-input__suffix{padding-left:0}.t-color-picker__format-mode-select .t-select__right-icon{margin-right:var(--td-comp-margin-xs)}.t-color-picker__swatches-wrap{position:relative}.t-color-picker__swatches-wrap,.t-color-picker__swatches-wrap .t-color-picker__swatches+.t-color-picker__swatches{margin-top:var(--td-comp-margin-m)}.t-color-picker__swatches-wrap .t-color-picker__swatches--title{align-items:center;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-small);justify-content:space-between;padding:0}.t-color-picker__swatches-wrap .t-color-picker__swatches--actions{align-items:center;display:flex;font-size:0;margin-left:auto}.t-color-picker__swatches-wrap .t-color-picker__swatches--actions .t-color-picker__icon{height:var(--td-comp-size-xxxs);margin-left:var(--td-comp-margin-s);width:var(--td-comp-size-xxxs)}.t-color-picker__swatches-wrap .t-color-picker__swatches--items{box-sizing:content-box;display:grid;gap:calc(28.44444px - var(--td-pop-padding-xl)*2/9 - var(--td-comp-size-xxxs)*10/9) calc(28.44444px - var(--td-pop-padding-xl)*2/9 - var(--td-comp-size-xxxs)*10/9);grid-template-columns:repeat(10,var(--td-comp-size-xxxs));left:calc(8px - var(--td-pop-padding-xl));list-style:none;max-height:calc(var(--td-comp-size-xxxs)*4 + 113.77778px - var(--td-pop-padding-xl)*2/9*4 - var(--td-comp-size-xxxs)*10/9*4);overflow-x:hidden;overflow-y:auto;padding:calc(var(--td-pop-padding-xl) - 8px);position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item{align-items:center;border-radius:var(--td-radius-default);box-sizing:border-box;cursor:pointer;display:flex;height:var(--td-comp-size-xxxs);justify-content:center;overflow:hidden;padding:0;position:relative;transform-origin:center;transition:all .2s cubic-bezier(.38,0,.24,1);width:var(--td-comp-size-xxxs)}.t-color-picker__swatches-wrap .t-color-picker__swatches--item:hover{transform:scale(1.25);transform-origin:center}.t-color-picker__swatches-wrap .t-color-picker__swatches--item__color{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);flex-shrink:0;height:100%;overflow:hidden;position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item__inner{display:block;height:100%;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--item:not(.t-is-active):hover{padding:0}.t-color-picker__swatches-wrap .t-color-picker__swatches--item.t-is-active .t-color-picker__swatches--color,.t-color-picker__swatches-wrap .t-color-picker__swatches--item.t-is-active .t-color-picker__swatches--item__color{border-color:var(--td-text-color-brand)}.t-color-picker__swatches-wrap .t-color-picker__swatches--color{border-radius:var(--td-radius-default);box-sizing:border-box;height:100%;overflow:hidden;position:relative;width:100%}.t-color-picker__swatches-wrap .t-color-picker__swatches--inner{border-radius:var(--td-radius-default);box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);display:block;height:100%;width:100%}.t-color-picker__trigger--default{align-items:center;display:inline-flex}.t-color-picker__trigger--default>.t-input{width:fit-content}.t-color-picker__trigger--default .t-input{padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-paddingLR-xs)}.t-color-picker__trigger--default__color{align-items:center;box-sizing:border-box;display:flex;height:100%;width:100%}.t-color-picker__trigger--default__color .color-inner{border:1px solid var(--td-scrollbar-color);border-radius:var(--td-radius-small);color:transparent;display:block;height:calc(var(--td-comp-size-xs) - 2px);position:relative;width:calc(var(--td-comp-size-xs) - 2px)}.t-color-picker__trigger--default__color .color-inner.t-size-s{height:calc(var(--td-comp-size-xxs) - 2px);width:calc(var(--td-comp-size-xxs) - 2px)}.t-color-picker__trigger--default__color .color-inner.t-size-l{height:calc(var(--td-comp-size-s) - 2px);width:calc(var(--td-comp-size-s) - 2px)}.t-color-picker__gradient-slider{border-radius:4px;padding:0 calc(var(--td-comp-size-xxxs)/2 + var(--td-size-1)/2)}.t-color-picker__gradient-slider .t-color-picker--bg-alpha{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px}.t-color-picker__panel.t-is-disabled .t-color-picker__saturation,.t-color-picker__panel.t-is-disabled .t-color-picker__slider,.t-color-picker__panel.t-is-disabled .t-color-picker__swatches--item{cursor:not-allowed;opacity:.8}.t-color-picker__panel.t-is-disabled .t-color-picker__gradient-slider .gradient-thumbs,.t-color-picker__panel.t-is-disabled .t-color-picker__gradient-slider .gradient-thumbs__item{cursor:not-allowed}.t-color-picker__panel.t-is-disabled .t-color-picker__swatches--item:hover{padding:0}.t-color-picker__select-options>.t-popup__content{box-shadow:var(--td-shadow-1),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left)}.t-image__wrapper{background:var(--td-bg-color-secondarycontainer);position:relative;z-index:1}.t-image__wrapper--shape-square{border-radius:0}.t-image__wrapper--shape-round{border-radius:var(--td-radius-medium)}.t-image__wrapper--shape-circle{border-radius:50%}.t-image__wrapper--gallery{border-radius:var(--td-radius-medium)}.t-image__wrapper--gallery .t-image{position:relative;z-index:5}.t-image__wrapper--need-hover{cursor:pointer}.t-image{border-radius:inherit;height:100%;position:relative;width:100%;z-index:inherit}.t-image--fit-fill{object-fit:fill}.t-image--fit-contain{object-fit:contain}.t-image--fit-cover{object-fit:cover}.t-image--fit-scale-down{object-fit:scale-down}.t-image--fit-none{object-fit:none}.t-image--position-center{object-position:center}.t-image--position-bottom{object-position:bottom}.t-image--position-top{object-position:top}.t-image--position-left{object-position:left}.t-image--position-right{object-position:right}.t-image__gallery-shadow{background:hsla(0,0%,93%,.26);border-radius:var(--td-radius-medium);bottom:24px;left:0;position:absolute;right:-24px;top:24px;z-index:3}.t-image__gallery-shadow:after,.t-image__gallery-shadow:before{border-radius:var(--td-radius-medium);content:"";left:0;position:absolute}.t-image__gallery-shadow:after{background:hsla(0,0%,93%,.8);bottom:-16px;right:16px;top:-16px;z-index:4}.t-image__gallery-shadow:before{background:hsla(0,0%,93%,.5);bottom:-8px;right:8px;top:-8px;z-index:2}.t-image__placeholder{align-items:center;display:flex;justify-content:center;z-index:0}.t-image__overlay-content,.t-image__placeholder{height:100%;left:0;position:absolute;top:0;width:100%}.t-image__overlay-content{opacity:1;transition:visibility 0s,opacity .2s linear;visibility:visible;z-index:6}.t-image__overlay-content--hidden{opacity:0;visibility:hidden}.t-image__error,.t-image__loading{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%;z-index:1}.t-image__loading{color:var(--td-text-color-secondary)}.t-image__error{color:var(--td-text-color-disabled)}.t-avatar{align-items:center;background:var(--td-brand-color-focus);box-sizing:border-box;box-sizing:content-box;color:var(--td-text-color-primary);color:var(--td-text-color-brand);display:inline-flex;font:var(--td-font-body-medium);font-size:var(--td-font-size-body-large);height:var(--td-comp-size-m);justify-content:center;line-height:var(--td-comp-size-m);list-style:none;margin:0;overflow:hidden;padding:0;position:relative;vertical-align:middle;white-space:nowrap;width:var(--td-comp-size-m)}.t-avatar.t-avatar__icon{font-size:var(--td-comp-size-xxs)}.t-avatar--circle{border-radius:var(--td-radius-circle)}.t-avatar--round{border-radius:var(--td-radius-default)}.t-avatar.t-size-s{font-size:var(--td-font-size-body-medium);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-avatar.t-size-s.t-avatar__icon{font-size:var(--td-comp-size-xxxs)}.t-avatar.t-size-l{font-size:var(--td-font-size-title-large);height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl);width:var(--td-comp-size-xl)}.t-avatar.t-size-l.t-avatar__icon{font-size:var(--td-comp-size-xs)}.t-avatar>.t-image__wrapper{max-height:100%;max-width:100%}.t-avatar-group{align-items:center;display:inline-flex}.t-avatar-group .t-avatar{border:2px solid var(--td-bg-color-container)}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child){margin-right:calc(0px - var(--td-size-3))}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child).t-size-s{margin-right:calc(0px - var(--td-size-2))}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child).t-size-l{margin-right:calc(0px - var(--td-size-4))}.t-avatar-group.t-avatar--offset-left .t-avatar:first-child{z-index:49}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(2){z-index:48}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(3){z-index:47}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(4){z-index:46}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(5){z-index:45}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(6){z-index:44}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(7){z-index:43}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(8){z-index:42}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(9){z-index:41}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(10){z-index:40}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(11){z-index:39}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(12){z-index:38}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(13){z-index:37}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(14){z-index:36}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(15){z-index:35}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(16){z-index:34}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(17){z-index:33}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(18){z-index:32}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(19){z-index:31}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(20){z-index:30}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(21){z-index:29}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(22){z-index:28}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(23){z-index:27}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(24){z-index:26}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(25){z-index:25}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(26){z-index:24}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(27){z-index:23}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(28){z-index:22}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(29){z-index:21}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(30){z-index:20}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(31){z-index:19}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(32){z-index:18}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(33){z-index:17}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(34){z-index:16}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(35){z-index:15}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(36){z-index:14}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(37){z-index:13}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(38){z-index:12}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(39){z-index:11}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(40){z-index:10}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(41){z-index:9}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(42){z-index:8}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(43){z-index:7}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(44){z-index:6}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(45){z-index:5}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(46){z-index:4}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(47){z-index:3}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(48){z-index:2}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(49){z-index:1}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(50){z-index:0}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child){margin-left:calc(0px - var(--td-size-3))}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child).t-size-s{margin-left:calc(0px - var(--td-size-2))}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child).t-size-l{margin-left:calc(0px - var(--td-size-4))}.t-badge{box-sizing:border-box;color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-badge--circle,.t-badge--dot,.t-badge--round{box-sizing:content-box;color:var(--td-text-color-anti);font:var(--td-font-body-small);position:absolute;right:0;text-align:center;top:0;transform:translate(50%,-50%);transform-origin:100% 0}.t-badge--static{display:inline-block;position:static;transform:none}.t-badge--dot{background-color:var(--td-error-color);border-radius:var(--td-radius-circle);height:6px;margin-top:1px;right:1px;width:6px}.t-badge--circle,.t-badge--round{background-color:var(--td-error-color);height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);min-width:8px;padding-left:calc((var(--td-comp-size-xxs) - 8px)/2);padding-right:calc((var(--td-comp-size-xxs) - 8px)/2)}.t-badge--circle.t-size-s,.t-badge--round.t-size-s{height:var(--td-comp-size-xxxs);line-height:var(--td-comp-size-xxxs);min-width:8px;padding-left:calc((var(--td-comp-size-xxxs) - 8px)/2);padding-right:calc((var(--td-comp-size-xxxs) - 8px)/2)}.t-badge--circle{border-radius:calc(var(--td-comp-size-xxs)/2)}.t-badge--round{border-radius:var(--td-radius-default)}.t-calendar{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-large);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-calendar .t-is-disabled.t-calendar__table-body-cell:hover{cursor:not-allowed}.t-calendar .t-is-disabled .t-calendar__table-body-cell-display{color:var(--td-text-color-disabled)}.t-calendar .t-is-disabled .t-calendar__table-body-cell-display:hover{box-shadow:none}.t-calendar--full{min-width:560px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-calendar--full .t-calendar__control{padding:0}.t-calendar--full .t-calendar__title{flex:1;font:var(--td-font-title-large)}.t-calendar--full .t-calendar__panel{margin-top:var(--td-comp-margin-xxxl);position:relative}.t-calendar--full .t-calendar__panel-title{color:var(--td-text-color-primary);font:var(--td-font-title-large);position:absolute}.t-calendar--full .t-calendar__table-body-cell,.t-calendar--full .t-calendar__table-head-cell{margin-right:var(--td-comp-margin-s);position:relative}.t-calendar--full .t-calendar__table-body-cell{align-items:flex-end;border-top:2px solid var(--td-border-level-1-color);display:flex;flex-direction:column;height:104px;justify-content:flex-start;line-height:var(--td-line-height-body-medium);margin-left:0;padding:0;transition-duration:.2s;transition-property:border-top,background;transition-timing-function:linear}.t-calendar--full .t-calendar__table-body-cell-content{box-sizing:border-box;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xs);width:100%}.t-calendar--full .t-calendar__table-body-cell.t-is-checked,.t-calendar--full .t-calendar__table-body-cell.t-is-checked:hover{background-color:var(--td-brand-color-light)}.t-calendar--full .t-calendar__table-body-cell--now{border-top:2px solid var(--td-brand-color)}.t-calendar--full .t-calendar__table-body-cell--now .t-calendar__table-body-cell-display{color:var(--td-text-color-primary)}.t-calendar--full .t-calendar__footer{border-top:1px solid var(--td-border-level-1-color);height:90px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-calendar--card{border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);width:280px}.t-calendar--card .t-calendar__control{padding:0}.t-calendar--card .t-calendar__control-section{justify-content:flex-start;width:100%}.t-calendar--card .t-calendar__control-section-cell:last-child{display:block;flex:1;text-align:right}.t-calendar--card .t-calendar__panel.t-calendar__panel--month{height:200px;margin-top:var(--td-comp-margin-m)}.t-calendar--card .t-calendar__panel.t-calendar__panel--year{height:168px;margin-top:var(--td-comp-margin-m)}.t-calendar--card .t-calendar__panel.t-calendar__panel--year .t-calendar__table-body-cell-display{min-width:var(--td-comp-size-xxl)}.t-calendar--card .t-calendar__table{align-items:flex-start;display:flex;flex-direction:column;height:100%;justify-self:start;width:100%}.t-calendar--card .t-calendar__table-body-row,.t-calendar--card .t-calendar__table-head-row{background:var(--td-bg-color-container);flex:1}.t-calendar--card .t-calendar__table-body-cell,.t-calendar--card .t-calendar__table-head-cell{box-sizing:border-box;font:var(--td-font-body-medium);height:100%;justify-content:center;width:100%}.t-calendar--card .t-calendar__table-body-cell-display,.t-calendar--card .t-calendar__table-head-cell-display{line-height:var(--td-comp-size-xs);width:var(--td-comp-size-xs)}.t-calendar--card .t-calendar__table-body{align-items:center;display:flex;flex:1;flex-direction:column;justify-self:center}.t-calendar--card .t-calendar__table-body-cell{align-items:center;justify-content:center}.t-calendar--card .t-calendar__table-body-cell:hover{background-color:var(--td-bg-color-container)}.t-calendar--card .t-calendar__table-body-cell-display{border-radius:var(--td-radius-default);font:var(--td-font-body-medium);padding-bottom:calc(var(--td-comp-paddingTB-xxs)/2);padding-top:calc(var(--td-comp-paddingTB-xxs)/2);text-align:center;transition:all .2s linear}.t-calendar--card .t-calendar__table-body-cell-display:hover{box-shadow:inset 0 0 0 1px var(--td-brand-color);transition:box-shadow .2s linear}.t-calendar--card .t-calendar__table-body-cell--now .t-calendar__table-body-cell-display{background-color:var(--td-brand-color-light);color:var(--td-brand-color);position:relative}.t-calendar--card .t-is-checked .t-calendar__table-body-cell-display{background:var(--td-brand-color);border-radius:var(--td-radius-default);color:var(--td-text-color-anti)}.t-calendar--card .t-calendar__footer{border-top:1px solid var(--td-border-level-1-color);height:var(--td-comp-size-xxl);padding:0 var(--td-comp-paddingLR-m)}.t-calendar__control,.t-calendar__control-section{align-items:center;display:flex;justify-content:flex-end}.t-calendar__control-section{height:100%}.t-calendar__control-section:last-child{margin-right:0}.t-calendar__control-section-cell{display:flex;height:100%;margin-right:var(--td-comp-margin-s)}.t-calendar__control-section-cell .t-radio-group{vertical-align:bottom}.t-calendar__control-section-cell .t-select{display:inline}.t-calendar__control-section-cell:last-child{margin-right:0}.t-calendar__panel{box-sizing:border-box;width:100%}.t-calendar__table{border-collapse:collapse;border-spacing:0;height:100%;width:100%}.t-calendar__table-body,.t-calendar__table-head{width:100%}.t-calendar__table-body-row,.t-calendar__table-head-row{display:flex;width:100%}.t-calendar__table-body-cell,.t-calendar__table-head-cell{color:var(--td-text-color-primary);cursor:default;display:flex;flex:1;font:var(--td-font-title-small);justify-content:flex-end;padding:0}.t-calendar__table-body-cell:last-child,.t-calendar__table-head-cell:last-child{margin-right:0}.t-calendar__table-head{display:block;margin-bottom:var(--td-comp-margin-s)}.t-calendar__table-head-row{background:var(--td-bg-color-container);padding-bottom:0}.t-calendar__table-head-cell{color:var(--td-text-color-secondary);font:var(--td-font-title-small);height:100%}.t-calendar__table-body-cell{cursor:pointer}.t-calendar__table-body-cell:hover{background-color:var(--td-bg-color-container-hover);transition:background-color .2s linear}.t-calendar__table-body-cell-display{color:var(--td-text-color-primary);font:var(--td-font-title-small)}.t-card{background-color:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;transition:box-shadow .2s cubic-bezier(.38,0,.24,1)}.t-card--bordered{border:1px solid var(--td-component-border)}.t-card--shadow,.t-card--shadow-hover:hover{box-shadow:var(--td-shadow-1)}.t-card__cover{display:flow-root}.t-card__cover img{border-radius:var(--td-radius-default) var(--td-radius-default) 0 0;display:flow-root;max-height:100%;width:100%}.t-card__body{display:flow-root;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-card__header{align-items:center;display:flex;justify-content:space-between;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);position:relative}.t-card__header-wrapper{align-items:center;display:flex;flex:1}.t-card__header+.t-card__cover img{border-radius:0}.t-card__footer{align-items:center;display:flex;justify-content:space-between;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-card__footer-wrapper{flex:1}.t-size-s .t-card__body,.t-size-s .t-card__footer,.t-size-s .t-card__header{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l)}.t-card__avatar{height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-card__avatar,.t-card__title{margin-right:var(--td-comp-margin-l)}.t-card__title{color:var(--td-text-color-primary);font:var(--td-font-title-medium);word-break:break-all}.t-card__description,.t-card__subtitle{color:var(--td-text-color-secondary);font:var(--td-font-body-medium);word-break:break-all}.t-card__description{margin-top:var(--td-comp-margin-xs)}.t-card__actions{color:var(--td-brand-color);float:right}.t-card__title--bordered{border-bottom:1px solid var(--td-component-border)}.t-comment{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;width:100%}.t-comment__inner{display:flex}.t-comment__avatar{cursor:pointer;display:flex;flex-shrink:0;margin-right:var(--td-comp-margin-xxl)}.t-comment__avatar-image{border-radius:var(--td-radius-circle);height:var(--td-comp-size-xxxl);width:var(--td-comp-size-xxxl)}.t-comment__content{flex:auto;font:var(--td-font-body-medium)}.t-comment__author{align-items:baseline;display:flex;flex-wrap:wrap;justify-content:flex-start;margin-bottom:var(--td-comp-margin-s)}.t-comment__name{align-items:center;cursor:pointer;display:inline-flex;font:var(--td-font-title-medium)}.t-comment__name,.t-comment__time{padding-right:var(--td-comp-paddingLR-s)}.t-comment__time{color:var(--td-text-color-placeholder);font:var(--td-font-body-small)}.t-comment__detail{font:var(--td-font-body-medium);word-break:break-all}.t-comment__quote{border-left:4px solid var(--td-component-stroke);margin-top:var(--td-comp-margin-l);padding-left:var(--td-comp-margin-l)}.t-comment__quote .t-comment__detail,.t-comment__quote .t-comment__name{color:var(--td-text-color-secondary)}.t-comment__actions{display:flex;gap:var(--td-comp-margin-s);justify-content:flex-end;list-style:none;margin-top:var(--td-comp-margin-s);padding:0}.t-comment__actions .t-button--variant-text{color:var(--td-text-color-placeholder)}.t-comment__actions .t-button--variant-text .t-button__text{gap:var(--td-comp-margin-s)}.t-comment__reply{background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-medium);margin-left:calc(var(--td-comp-size-xxxl) + var(--td-comp-margin-xxl));margin-top:var(--td-comp-margin-l);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-comment__reply .t-button--variant-text{color:var(--td-text-color-placeholder)}.t-comment__reply .t-button--variant-text:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-comment__reply .t-button--variant-text .t-button__text{gap:var(--td-comp-margin-s)}.t-empty{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;text-align:center}.t-empty__image{display:flex;font-size:48px;justify-content:center}.t-empty__title{color:var(--td-text-color-secondary);margin-top:var(--td-comp-margin-s)}.t-empty__description,.t-empty__title{font:var(--td-font-body-medium);margin-bottom:0}.t-empty__description{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xs)}.t-empty__action{margin-bottom:0;margin-top:var(--td-comp-margin-xxl)}.t-empty.t-size-s .t-empty__image{font-size:20px}.t-empty.t-size-s .t-empty__description,.t-empty.t-size-s .t-empty__title{font:var(--td-font-body-small);margin-top:var(--td-comp-margin-xxs)}.t-empty.t-size-l .t-empty__image{font-size:64px}@keyframes tDialogZoomIn{0%{opacity:0;transform:scale(.01)}to{opacity:1}}@keyframes tDialogZoomOut{0%{opacity:1}to{opacity:0;transform:scale(.01)}}@keyframes tDialogMaskIn{0%{opacity:0}to{opacity:1}}@keyframes tDialogMaskOut{0%{opacity:1}to{opacity:0}}.t-dialog-zoom .animation-enter{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom .animation-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom .animation-active{animation-fill-mode:both;animation-play-state:running}.t-dialog-zoom-appear,.t-dialog-zoom-enter,.t-dialog-zoom-enter-from{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom-appear-active,.t-dialog-zoom-enter-active{animation-fill-mode:both;animation-name:tDialogZoomIn;animation-play-state:running}.t-dialog-zoom-exit-active{animation-fill-mode:both;animation-name:tDialogZoomOut;animation-play-state:running}.t-dialog-zoom__vue-enter-active .t-dialog{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogZoomIn;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-zoom__vue-enter-active .t-dialog__mask{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogMaskIn;animation-play-state:running;animation-timing-function:linear}.t-dialog-zoom__vue-leave-active .t-dialog{animation-duration:.2s;animation-fill-mode:both;animation-name:tDialogZoomOut;animation-play-state:paused;animation-timing-function:cubic-bezier(.38,0,.24,1)}.t-dialog-zoom__vue-leave-active .t-dialog__mask{animation-duration:.2s;animation-name:tDialogMaskOut;animation-timing-function:linear}.t-dialog-zoom__vue-enter-to .t-dialog,.t-dialog-zoom__vue-leave-active .t-dialog__mask,.t-dialog-zoom__vue-leave-to .t-dialog{animation-fill-mode:both;animation-play-state:running}.t-dialog-fade-appear,.t-dialog-fade-enter{opacity:0}.t-dialog-fade-appear,.t-dialog-fade-enter,.t-dialog-fade-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:cubic-bezier(0,0,.15,1)}.t-dialog-fade-appear.t-dialog-fade-appear-active,.t-dialog-fade-enter.t-dialog-fade-enter-active{animation-name:tDialogFadeIn;animation-play-state:running}.t-dialog-fade-exit.t-dialog-fade-exit-active{animation-name:tDialogFadeOut;animation-play-state:running}@keyframes tDialogFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tDialogFadeOut{0%{opacity:1}to{opacity:0}}.t-dialog{background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-large);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:480px}.t-dialog .t-icon.t-is-info{color:var(--td-brand-color)}.t-dialog .t-icon.t-is-success{color:var(--td-success-color)}.t-dialog .t-icon.t-is-warning{color:var(--td-warning-color)}.t-dialog .t-icon.t-is-error{color:var(--td-error-color)}.t-dialog--lock{overflow:hidden}.t-dialog__header{align-items:center;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-title-medium);font-weight:600;gap:var(--td-comp-margin-s);word-break:break-word}.t-dialog__header .t-dialog__header-content{align-items:flex-start;display:flex;width:100%}.t-dialog__header .t-icon:not(.t-icon-close){align-items:center;display:inline-flex;flex-shrink:0;font-size:calc(var(--td-font-size-body-large) + 8px);margin-right:var(--td-comp-margin-s)}.t-dialog__header--fullscreen{align-items:center;background-color:var(--td-bg-color-secondarycontainer);display:flex;flex-direction:row;justify-content:flex-end;min-height:var(--td-comp-size-xxxl);padding:0 var(--td-comp-paddingLR-xxl)}.t-dialog__header--fullscreen .t-dialog__header-content{align-items:center;box-sizing:border-box;display:flex;justify-content:center}.t-dialog__body{color:var(--td-text-color-secondary);font:var(--td-font-body-medium);overflow:auto;padding:var(--td-comp-paddingTB-l) 0;word-break:break-word}@-moz-document url-prefix(){.t-dialog__body{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__body::-webkit-scrollbar{height:6px;width:6px}.t-dialog__body::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-dialog__body::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__body::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body--icon,.t-dialog__body__icon{padding:var(--td-comp-paddingTB-l) 0}.t-dialog__body--fullscreen{box-sizing:border-box;height:calc(100% - var(--td-comp-size-xxxl) - var(--td-comp-size-xxxxl));overflow:auto;padding:var(--td-comp-paddingTB-xl) var(--td-comp-paddingLR-xxl)}@-moz-document url-prefix(){.t-dialog__body--fullscreen{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__body--fullscreen::-webkit-scrollbar{height:6px;width:6px}.t-dialog__body--fullscreen::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-dialog__body--fullscreen::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__body--fullscreen::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body--fullscreen--without-footer{box-sizing:border-box;height:calc(100% - var(--td-comp-size-xxxl));overflow:auto;padding:var(--td-comp-paddingTB-xl) var(--td-comp-paddingLR-xxl)}.t-dialog__footer{padding:var(--td-comp-paddingTB-l) 0 0;text-align:right;width:100%}.t-dialog__footer .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-dialog__footer--fullscreen{box-sizing:border-box;min-height:var(--td-comp-size-xxxxl);padding:0 var(--td-comp-paddingLR-xxl) var(--td-comp-paddingTB-xxl)}.t-dialog--default{padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-dialog__close{align-items:center;border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);display:flex;font-size:calc(var(--td-font-size-body-large) + 4px);height:calc(var(--td-font-size-body-large) + 4px);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);transition:all .2s linear;width:calc(var(--td-font-size-body-large) + 4px)}.t-dialog__close:hover{background:var(--td-bg-color-container-hover);cursor:pointer}.t-dialog__close:active{background:var(--td-bg-color-container-active)}.t-dialog__close--fullscreen{background:transparent;display:flex}.t-dialog__close--fullscreen:hover{background:var(--td-bg-color-secondarycontainer-hover);cursor:pointer}.t-dialog__close--fullscreen:active{background:var(--td-bg-color-secondarycontainer-active)}.t-dialog.t-dialog--draggable:hover{cursor:move}.t-dialog.t-dialog--draggable .t-dialog__body:hover,.t-dialog.t-dialog--draggable .t-dialog__footer:hover,.t-dialog.t-dialog--draggable .t-dialog__header:hover{cursor:auto}.t-dialog__fullscreen{border-radius:0;width:100%}.t-dialog__ctx{height:100%;left:0;outline:none;pointer-events:auto;top:0;width:100%}.t-dialog__ctx.t-dialog__ctx--modeless{pointer-events:none}.t-dialog__ctx.t-dialog__ctx--fixed{position:fixed;z-index:2500}.t-dialog__ctx.t-dialog__ctx--absolute,.t-dialog__ctx.t-dialog__ctx--absolute .t-dialog__mask,.t-dialog__ctx.t-dialog__ctx--absolute .t-dialog__wrap{position:absolute}.t-dialog__ctx.t-is-visible{visibility:visible}.t-dialog__ctx.t-is-hidden{visibility:hidden}.t-dialog__ctx.t-is-display{display:block}.t-dialog__ctx.t-not-display{display:none}.t-dialog__ctx .t-dialog__mask{background:var(--td-mask-active);height:100%;left:0;pointer-events:auto;position:fixed;top:0;width:100%;z-index:1}.t-dialog__ctx .t-dialog__wrap{height:100%;left:0;overflow:auto;position:fixed;top:0;width:100%;z-index:1}@-moz-document url-prefix(){.t-dialog__ctx .t-dialog__wrap{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar{height:8px;width:8px}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid transparent;border-radius:15px}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb:horizontal:hover,.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__ctx .t-dialog__position{box-sizing:border-box;display:flex;justify-content:center;min-height:100%;padding:48px 0;position:relative;width:100%}.t-dialog__ctx .t-dialog__position.t-dialog--top{align-items:flex-start;padding-top:20vh}.t-dialog__ctx .t-dialog__position.t-dialog--center{align-items:center}.t-dialog__ctx .t-dialog__position_fullscreen{box-sizing:border-box;display:flex;justify-content:center;min-height:100%;position:relative;width:100%}.t-dialog__ctx .t-is-hidden{background:none}.t-dialog__ctx .t-dialog{pointer-events:auto;z-index:2500}.t-dialog__ctx.t-dialog__ctx--modeless .t-dialog{box-shadow:var(--td-shadow-3)}.t-image-viewer__img-error{background-color:var(--td-bg-color-component-disabled);border-radius:4px;color:#000;cursor:inherit;height:440px;position:absolute;width:440px}.t-image-viewer__img-error .t-image-viewer__img-error-content{align-content:center;align-items:center;display:flex;flex-direction:column;flex-wrap:wrap;font:var(--td-font-body-medium);height:100%;justify-content:center;position:absolute;width:100%}.t-image-viewer__img-error .t-image-viewer__img-error-content .t-image-viewer__img-error-text{margin-top:var(--td-comp-margin-s)}@keyframes modal-image-hide{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes modal-mask-show{0%{opacity:0}to{opacity:1}}@keyframes modal-mask-hide{0%{opacity:1}to{opacity:0}}.t-image-viewer-preview-image{animation:modal-mask-show .2s cubic-bezier(.82,0,1,.9);bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:3000}.t-image-viewer-preview-image.t-is-hide{animation:modal-mask-hide .2s cubic-bezier(0,0,.15,1) forwards}.t-image-viewer-preview-image.t-is-hide .t-image-viewer__modal-pic .t-image-viewer__modal-box{animation:modal-image-hide .2s cubic-bezier(0,0,.15,1) forwards}.t-image-viewer-preview-image .t-image-viewer__modal-index{background:rgba(0,0,0,.4);border-radius:var(--td-radius-default);color:var(--td-text-color-anti);font-size:var(--td-font-size-body-medium);left:50%;padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);position:absolute;text-align:center;top:92px;transform:translateX(-50%);z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-mask{background-color:var(--td-mask-active);bottom:0;height:100%;left:0;opacity:1;position:fixed;right:0;top:0;transition:all .2s ease;width:100%}.t-image-viewer-preview-image .t-image-viewer__modal-pic{height:0;left:50%;position:absolute;top:50%;width:0}.t-image-viewer-preview-image .t-image-viewer__modal-pic .t-image-viewer__modal-box{align-items:center;animation:modal-image-show .2s cubic-bezier(.38,0,.24,1);display:flex;height:100%;justify-content:center;width:100%}.t-image-viewer-preview-image .t-image-viewer__modal-pic .t-image-viewer__modal-box .t-image-viewer__modal-image{display:block;max-height:min(90vh,800px);max-width:min(90vw,1000px);object-fit:contain;transform:rotate(0deg);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-image-viewer-preview-image .t-image-viewer__modal-header{align-items:center;background-color:var(--td-bg-color-container);display:flex;height:auto;justify-content:center;padding:0 0 12px;position:absolute;top:0;width:100%;z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show{padding:12px 0}@keyframes preview-icon-range{0%{transform:translate(-50%,50%) rotate(0)}to{transform:translate(-50%,50%) rotate(-180deg)}}@keyframes preview-icon-unrange{0%{transform:translate(-50%,50%) rotate(-180deg)}to{transform:translate(-50%,50%) rotate(0)}}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt{align-items:center;animation:preview-icon-unrange .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running;background-color:var(--td-bg-color-container);border-radius:50%;bottom:0;box-shadow:var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);color:var(--td-text-color-primary);display:inline-flex;height:var(--td-comp-size-xxs);justify-content:center;left:50%;position:absolute;transform:translate(-50%,50%);width:var(--td-comp-size-xxs)}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt .t-icon{font-size:var(--td-font-size-body-large)}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt:hover{background-color:inherit}@keyframes preview-image-show{0%{height:0}to{height:40px}}@keyframes preview-image-hide{0%{height:40px}to{height:0}}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show .t-image-viewer__header-prev{animation:preview-image-show .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show .t-image-viewer__header-pre-bt{animation:preview-icon-range .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev{animation:preview-image-hide .2s cubic-bezier(.38,0,.24,1) 0s 1 normal forwards running;display:flex;overflow:hidden;position:relative;width:521.77778px}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:after,.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:before{content:"";height:100%;pointer-events:none;position:absolute;width:71.11111px;z-index:1}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:before{background-image:linear-gradient(to right,var(--td-bg-color-container),hsla(0,0%,100%,0));left:0}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:after{background-image:linear-gradient(to right,hsla(0,0%,100%,0),var(--td-bg-color-container));right:0}.t-image-viewer-preview-image .t-image-viewer__header-trans{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;margin-left:225.33333px;transition:transform .2s}.t-image-viewer-preview-image .t-image-viewer__header-box{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border:1px solid transparent;border-radius:var(--td-radius-default);box-sizing:border-box;display:flex;height:40px;justify-content:center;overflow:hidden;position:relative;transition:.2s;width:71.11111px}.t-image-viewer-preview-image .t-image-viewer__header-box .t-image-viewer__header-img{height:100%;width:auto}.t-image-viewer-preview-image .t-image-viewer__header-box.t-is-active,.t-image-viewer-preview-image .t-image-viewer__header-box:hover{border-color:var(--td-brand-color)}.t-image-viewer-preview-image .t-image-viewer__modal-icon{border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;transition:.2s}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-close-bt{right:40px;top:100px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{top:50%;transform:translateY(-50%)}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{left:40px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt{right:40px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-close-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{align-items:center;background-color:rgba(0,0,0,.4);border-radius:50%;color:var(--td-text-color-anti);display:flex;height:var(--td-comp-size-xl);justify-content:center;position:fixed;width:var(--td-comp-size-xl);z-index:10}.t-image-viewer-preview-image .t-image-viewer__modal-icon .t-image-viewer__modal-icon-label{margin-left:2px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-is-disabled{color:hsla(0,0%,100%,.22)}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-is-disabled:hover{background-color:rgba(0,0,0,.4)}.t-image-viewer-preview-image .t-image-viewer__modal-icon:hover{background-color:rgba(0,0,0,.2)}.t-image-viewer__mask{background-color:transparent;height:100vh;left:0;position:fixed;top:0;width:100vh;z-index:99}.t-image-viewer__utils{align-items:center;bottom:32px;color:var(--td-text-color-primary);display:flex;height:auto;justify-content:center;position:absolute;user-select:none;width:100%;z-index:1}.t-image-viewer__utils .t-image-viewer__utils-content{align-items:center;background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);display:inline-flex;height:50px;justify-content:center;line-height:100%;padding:0 var(--td-comp-paddingLR-xs)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__modal-icon{align-items:center;border-radius:var(--td-radius-default);display:flex;height:var(--td-comp-size-m);justify-content:center;margin:0 var(--td-comp-margin-xs);transition:.2s;width:var(--td-comp-size-m)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__modal-icon:hover{background-color:var(--td-bg-color-container-hover)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__utils-scale{cursor:inherit;text-align:center;width:var(--td-comp-size-xl)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__utils-scale:hover{background-color:var(--td-bg-color-container)}.t-image-viewer-mini__footer .t-image-viewer__utils{position:inherit}.t-image-viewer-mini__content{max-height:min(90vh,800px);max-width:min(90vw,1000px)}@keyframes modal-image-show{0%{transform:scale(0)}to{transform:scale(1)}}.t-image-viewer-mini__content .t-image-viewer__modal-pic .t-image-viewer__modal-box{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.t-image-viewer-mini__content .t-image-viewer__modal-pic .t-image-viewer__modal-box .t-image-viewer__modal-image{display:block;max-height:min(80vh,600px);max-width:min(80vw,800px);object-fit:contain;transform:rotate(0deg);transition:all .2s ease}.t-image-viewer__dialog.t-dialog__ctx--fixed{z-index:3000}.t-image-viewer__dialog .t-dialog__header{padding:0 var(--td-comp-paddingLR-s);pointer-events:none}.t-image-viewer__dialog .t-dialog__header .t-image-viewer__dialog-title{pointer-events:all}.t-image-viewer__dialog .t-dialog__header .t-dialog__close{pointer-events:auto}.t-image-viewer__dialog .t-dialog{border-color:var(--td-component-border);box-shadow:var(--td-shadow-3);overflow:hidden;padding:0}.t-image-viewer__dialog .t-dialog__header{background-color:var(--td-bg-color-secondarycontainer);font-size:var(--td-font-size-body-medium);height:40px;width:100%}.t-image-viewer__dialog .t-dialog__header-content{justify-content:center;margin-left:32px}.t-image-viewer__dialog .t-dialog__close:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-list{background:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;overflow:auto;padding:0}@-moz-document url-prefix(){.t-list{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-list::-webkit-scrollbar{height:6px;width:6px}.t-list::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-list::-webkit-scrollbar-thumb:horizontal:hover,.t-list::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-list__inner{list-style:none;margin:0;padding:0}.t-list-item{align-items:center;display:flex;font:var(--td-font-body-medium);justify-content:space-between;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);position:relative}.t-list-item:after{bottom:0;content:"";height:1px;left:0;position:absolute;width:100%}.t-list-item-main{align-items:center;display:flex;flex:1;justify-content:space-between;width:100%}.t-list-item__meta{display:flex}.t-list-item__meta-avatar{background:var(--td-bg-color-page);border-radius:calc(var(--td-comp-size-xxxl)/2);flex-shrink:0;height:var(--td-comp-size-xxxl);margin-right:var(--td-comp-margin-l);overflow:hidden;width:var(--td-comp-size-xxxl)}.t-list-item__meta-avatar img{height:100%;max-width:100%;width:100%}.t-list-item__meta-title{color:var(--td-text-color-primary);font:var(--td-font-title-medium);margin:0 0 var(--td-comp-margin-s);padding:0}.t-list-item__meta-description{color:var(--td-text-color-primary);margin-right:var(--td-comp-margin-xxl)}.t-list-item__action{flex-shrink:0;list-style:none;padding:0}.t-list-item__action>li{display:inline-block}.t-list-item__action>li:not(:last-child){margin-right:var(--td-comp-margin-l)}.t-list-item__action>li .t-icon{color:var(--td-text-color-secondary);font-size:var(--td-comp-size-xxxs)}.t-list-item__action>li .t-icon:hover{color:var(--td-text-color-link);cursor:pointer}.t-list-item__action>li>a{color:var(--td-brand-color);text-decoration:none}.t-list--split .t-list-item:after{background:var(--td-border-level-1-color)}.t-list--stripe .t-list-item:nth-child(2n){background:var(--td-bg-color-secondarycontainer)}.t-list--vertical-action .t-list-item{flex-direction:column}.t-list.t-size-s .t-list-item{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-m)}.t-list.t-size-l .t-list-item{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-list__footer,.t-list__header{background:var(--td-bg-color-container);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-list__load{background:var(--td-bg-color-container);line-height:var(--td-line-height-body-medium);text-align:center}.t-list__load>div{align-items:center;display:flex;justify-content:center}.t-list__load:not(:empty){padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-list__load .t-loading{font-size:var(--td-comp-size-xxxs);margin-right:var(--td-comp-margin-s)}.t-list__load .t-loading.t-is-load-more{cursor:pointer}.t-progress{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-progress__inner{background:var(--td-brand-color);border-radius:var(--td-radius-round);height:100%;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-progress__info{color:var(--td-text-color-primary);display:inline-flex;margin-left:var(--td-comp-margin-s);white-space:nowrap}.t-progress__icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-progress__bar{background:var(--td-bg-color-component);border-radius:var(--td-radius-round);height:var(--td-size-3);overflow:hidden;width:100%}.t-progress--thin{align-items:center;display:flex;justify-content:space-between}.t-progress--plump{align-items:center;border-radius:calc(var(--td-comp-size-xxs)/2);display:flex;height:var(--td-comp-size-xxs)}.t-progress--plump .t-progress__info{font-size:var(--td-font-size-body-small)}.t-progress--over-ten .t-progress__info{color:var(--td-text-color-anti);position:absolute;right:var(--td-comp-margin-s);top:50%;transform:translateY(-50%);z-index:10}.t-progress--under-ten .t-progress__info,.t-progress--under-ten .t-progress__inner{display:inline-block}.t-progress--under-ten .t-progress__info{vertical-align:top}.t-progress--circle{position:relative}.t-progress--circle .t-progress__info{display:block;font-size:inherit;font-weight:600;left:50%;line-height:1;margin:0;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);width:100%}.t-progress--circle .t-progress__circle-outer{stroke:var(--td-bg-color-component)}.t-progress--circle .t-progress__circle-inner{stroke:var(--td-brand-color);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-progress--circle .t-progress__icon{font-size:2.4em}.t-progress--status--active .t-progress__inner:before{animation:progress-active-animation 2s cubic-bezier(.23,.99,.86,.2) infinite;background:var(--td-text-color-anti);bottom:0;content:"";left:0;opacity:.2;position:absolute;right:0;top:0;z-index:1}.t-progress--status--success .t-progress__inner{background:var(--td-success-color)}.t-progress--status--success .t-progress__circle-inner{stroke:var(--td-success-color)}.t-progress--status--success .t-progress__icon{color:var(--td-success-color)}.t-progress--status--warning .t-progress__inner{background:var(--td-warning-color)}.t-progress--status--warning .t-progress__circle-inner{stroke:var(--td-warning-color)}.t-progress--status--warning .t-progress__icon{color:var(--td-warning-color)}.t-progress--status--error .t-progress__inner{background:var(--td-error-color)}.t-progress--status--error .t-progress__circle-inner{stroke:var(--td-error-color)}.t-progress--status--error .t-progress__icon{color:var(--td-error-color)}@keyframes progress-active-animation{0%{opacity:.1;width:0}35%{opacity:.4;width:50%}to{opacity:0;width:100%}}:root,:root[theme-mode=light]{--skeleton-animation-gradient:rgba(0,0,0,.04)}:root[theme-mode=dark]{--skeleton-animation-gradient:hsla(0,0%,100%,.06)}.t-skeleton{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-skeleton__row{align-items:center;display:flex;margin-bottom:var(--td-comp-margin-l)}.t-skeleton__row:last-child,.t-skeleton__row:only-child{margin-bottom:0}.t-skeleton__col{align-items:center;background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-disabled);display:flex;justify-content:center;margin-right:var(--td-comp-margin-l)}.t-skeleton__col:first-child:last-child,.t-skeleton__col:last-child{margin-right:0}.t-skeleton--type-text{border-radius:var(--td-radius-default);height:var(--td-font-size-body-large);width:100%}.t-skeleton--type-rect{border-radius:var(--td-radius-default);height:88px;width:120px}.t-skeleton--type-circle{border-radius:var(--td-radius-circle);flex-shrink:0;height:32px;width:32px}.t-skeleton--animation-gradient{overflow-x:hidden;position:relative}.t-skeleton--animation-gradient:after{animation:t-skeleton--gradient 1.5s linear 2s infinite;background:linear-gradient(90deg,hsla(0,0%,100%,0),var(--skeleton-animation-gradient),hsla(0,0%,100%,0));bottom:0;content:" ";left:0;position:absolute;right:0;top:0}.t-skeleton--animation-flashed{animation:t-skeleton--flashed 2s linear 2s infinite}@keyframes t-skeleton--gradient{0%{transform:translateX(-100%) skewX(-15deg)}to{transform:translateX(100%) skewX(-15deg)}}@keyframes t-skeleton--flashed{0%{opacity:1}50%{background-color:hsla(0,0%,90%,.3);opacity:.3}to{opacity:1}}.t-statistic{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium)}.t-statistic-title{font-size:var(--td-font-body-medium);margin-bottom:var(--td-comp-margin-s)}.t-statistic-content{color:var(--td-text-color-primary);display:inline-block;text-align:left;white-space:nowrap}.t-statistic-content-value{font-size:var(--td-font-size-headline-medium);line-height:var(--td-line-height-headline-medium)}.t-statistic-content-unit,.t-statistic-content-value{font-family:TCloudNumber,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei,Source Han Sans CN,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.t-statistic-content-unit{font-size:var(--td-font-size-body-medium);margin-left:var(--td-comp-margin-xs)}.t-statistic-content-suffix{margin-left:var(--td-comp-margin-s)}.t-statistic-content-prefix,.t-statistic-content-suffix{align-items:center;display:inline-flex;font-size:var(--td-font-size-title-large)}.t-statistic-content-prefix{margin-right:var(--td-comp-margin-s)}.t-statistic-content-prefix .t-icon{font-size:var(--td-font-size-title-large)}.t-statistic-extra{margin-top:8px}.t-statistic-extra .t-space .t-space-item{display:flex}.t-swiper{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative}.t-swiper__wrap{display:block;height:100%;position:relative}.t-swiper__content{overflow:hidden;position:relative;z-index:1}.t-swiper__container{display:flex;flex-direction:row;height:100%;position:relative;z-index:1}.t-swiper__container__item{display:inline-block;flex:0 0 auto;height:100%;width:100%}.t-swiper__arrow{align-items:center;display:flex}.t-swiper__arrow svg.t-icon{height:20px;width:20px}.t-swiper__arrow svg.t-icon:before{font-size:24px}.t-swiper__arrow--default .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-font-white-2);cursor:pointer;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:50%;transform:translateY(-50%);transition:.2s linear;width:24px;z-index:2}.t-swiper__arrow--default .t-swiper__arrow-left:hover{background-color:var(--td-font-white-4);border-radius:var(--td-radius-default);color:var(--td-bg-color-container);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-left:active{background-color:var(--td-font-white-3);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-font-white-2);cursor:pointer;display:flex;height:24px;justify-content:center;position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:.2s linear;width:24px;z-index:2}.t-swiper__arrow--default .t-swiper__arrow-right:hover{background-color:var(--td-font-white-4);border-radius:var(--td-radius-default);color:var(--td-bg-color-container);transition:.2s linear}.t-swiper__arrow--default .t-swiper__arrow-right:active{background-color:var(--td-font-white-3);transition:.2s linear}.t-swiper-card .t-swiper__container{display:block}.t-swiper-card .t-swiper__container .t-is-active{z-index:2}.t-swiper-card .t-swiper__card{height:100%;left:0;position:absolute;top:0;width:41.5%;z-index:0}.t-swiper-fade .t-swiper__container{display:block}.t-swiper-fade .t-swiper__fade{left:0;position:absolute;top:0}.t-swiper__navigation{bottom:0;display:flex;flex-direction:row;left:50%;margin:0;padding:0;position:absolute;transform:translateX(-50%);z-index:2}.t-swiper__navigation>li{display:flex;flex:1 0 auto;list-style-type:none}.t-swiper__navigation .t-swiper__arrow svg.t-icon{height:16px;width:16px}.t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:14px}.t-swiper__navigation-bars .t-swiper__navigation-item span{height:3px;width:100%}.t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:24px}.t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:14px}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1.5px;height:3px;width:100%}.t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{width:24px}.t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 6px;padding:18px 0;width:var(--td-size-2)}.t-swiper__navigation-dots .t-swiper__navigation-item span{border-radius:50%;height:var(--td-size-2);width:100%}.t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--vertical .t-swiper__container{flex-direction:column}.t-swiper--vertical .t-swiper__navigation{bottom:auto;display:flex;flex-direction:column;justify-content:center;left:auto;position:absolute;right:0;top:50%;transform:translateY(-50%)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:14px;margin:6px 0 0;padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:3px}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:24px}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;height:14px;margin:6px 0 0;padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1.5px;height:100%;width:3px}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{height:24px}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;margin:6px 0 0;max-height:var(--td-size-2);padding:0 18px;width:auto}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{border-radius:50%;height:100%;width:var(--td-size-2)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--outside .t-swiper__navigation{bottom:-36px}.t-swiper--outside .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation{bottom:auto;right:-36px}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-is-active span,.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation{bottom:0}.t-swiper--inside .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-medium));height:var(--td-line-height-body-medium);left:50%;line-height:var(--td-line-height-body-medium);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-medium);justify-content:center;width:var(--td-line-height-body-medium);z-index:2}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-medium);margin:0}.t-swiper--large .t-swiper__arrow i.t-icon:before{font-size:32px}.t-swiper--large .t-swiper__arrow--default .t-swiper__arrow-left{height:32px;left:24px;width:32px}.t-swiper--large .t-swiper__arrow--default .t-swiper__arrow-right{height:32px;right:24px;width:32px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 8px;padding:24px 0;width:21px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span{height:4px;width:100%}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:36px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-large));height:var(--td-line-height-body-large);left:50%;line-height:var(--td-line-height-body-large);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-large);justify-content:center;width:var(--td-line-height-body-large);z-index:2}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-large);justify-content:center;width:var(--td-line-height-body-large);z-index:2}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-large);margin:0}.t-swiper--large.t-swiper--outside .t-swiper__navigation{bottom:-48px}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:21px;margin:8px 0 0;padding:0 24px;width:auto}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:4px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:36px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation{right:-48px}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__arrow i.t-icon:before{font-size:16px}.t-swiper--small .t-swiper__arrow--default .t-swiper__arrow-left{height:16px;left:8px;width:16px}.t-swiper--small .t-swiper__arrow--default .t-swiper__arrow-right{height:16px;right:8px;width:16px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:auto;margin:0 0 0 4px;padding:12px 0;width:9px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span{height:2px;width:100%}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:15px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation--fraction{bottom:calc(-12px - var(--td-line-height-body-small));height:var(--td-line-height-body-small);left:50%;line-height:var(--td-line-height-body-small);position:absolute;right:auto;top:auto;transform:translateX(-50%)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-small);justify-content:center;width:var(--td-line-height-body-small);z-index:2}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right{align-items:center;background-color:transparent;color:var(--td-text-color-secondary);cursor:pointer;display:flex;height:var(--td-line-height-body-small);justify-content:center;width:var(--td-line-height-body-small);z-index:2}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{color:var(--td-text-color-secondary);display:inline-block;font-size:var(--td-font-size-body-small);margin:0}.t-swiper--small.t-swiper--outside .t-swiper__navigation{bottom:-24px}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;height:9px;margin:4px 0 0;padding:0 12px;width:auto}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{height:100%;width:2px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:15px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation{right:-24px}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-is-active span,.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-brand-color-active)}@-moz-document url-prefix(){.scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.scrollbar::-webkit-scrollbar{height:6px;width:6px}.scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.scrollbar::-webkit-scrollbar-thumb:horizontal:hover,.scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.scrollbar.t-table__affixed-footer-elm::-webkit-scrollbar-track,.scrollbar.t-table__scrollbar--obvious::-webkit-scrollbar-track{background:var(--td-scroll-track-color)}.t-table--width-overflow.t-table--footer-affixed .t-table__content::-webkit-scrollbar-thumb,.t-table--width-overflow.t-table--horizontal-bar-affixed .t-table__content::-webkit-scrollbar-thumb,.t-table__affixed-footer-wrap>.scrollbar.t-table__affixed-footer-elm::-webkit-scrollbar-thumb{background:transparent}.t-table.t-table--overflow-visible{overflow:initial}.t-table{background-color:var(--td-bg-color-container);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0;position:relative;width:100%}.t-table .t-popup:not(.t-tooltip)[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-table:focus-visible{outline:none}.t-table .t-loading--full{z-index:72}.t-table.t-vertical-align-top td:not(.t-table__cell-check),.t-table.t-vertical-align-top th:not(.t-table__cell-check){vertical-align:top}.t-table.t-vertical-align-middle td:not(.t-table__cell-check),.t-table.t-vertical-align-middle th:not(.t-table__cell-check){vertical-align:middle}.t-table.t-vertical-align-bottom td:not(.t-table__cell-check),.t-table.t-vertical-align-bottom th:not(.t-table__cell-check){vertical-align:bottom}.t-table .t-table__resize-line{border-left:1px solid var(--td-component-border);display:none;left:10px;position:absolute;width:0;z-index:1001}.t-table__column-controller-trigger.t-align-bottom-right,.t-table__column-controller-trigger.t-align-top-right{text-align:right}.t-table__column-controller-trigger{padding:var(--td-comp-paddingTB-l) 0}.t-table__column-controller-item:not(:last-child){margin-bottom:var(--td-comp-margin-l)}.t-table__content{position:relative}@-moz-document url-prefix(){.t-table__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__content::-webkit-scrollbar{height:6px;width:6px}.t-table__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__content::-webkit-scrollbar-thumb:horizontal:hover,.t-table__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__pagination{box-sizing:border-box;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table .t-icon{font-size:var(--td-font-size-body-large)}.t-table table{border-spacing:0;width:100%}.t-table .t-text-ellipsis{word-wrap:normal;line-height:var(--td-line-height-body-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-table td,.t-table th{background-color:inherit;border-bottom:1px solid var(--td-component-border);box-sizing:border-box;font-weight:400;line-height:var(--td-line-height-body-medium);overflow-wrap:break-word;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);position:relative;text-align:left}.t-table th.t-table__th-drag{height:0;padding:0;text-align:center}.t-table th,.t-table thead td{color:var(--td-text-color-placeholder)}.t-table td[key=row-select]{padding:13px 0 11px var(--td-comp-paddingLR-l)}.t-table td.t-align-left,.t-table th.t-align-left{text-align:left}.t-table td.t-align-right,.t-table th.t-align-right{text-align:right}.t-table td.t-align-center,.t-table th.t-align-center{text-align:center}.t-table tr{background-color:var(--td-bg-color-container)}.t-table.t-size-s td,.t-table.t-size-s th{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s)}.t-table.t-size-l td,.t-table.t-size-l th{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-table .t-table__expandable-icon-cell,.t-table .t-table__selection-cell{height:0;padding:0}.t-table td.t-table__handle-draggable{height:0;padding:0;text-align:center}.t-table .t-table__cell--selectable>.t-checkbox{vertical-align:middle}.t-table .t-table__cell--selectable+td,.t-table .t-table__cell--selectable+th{padding-left:0}.t-table--bordered td,.t-table--bordered th{border-left:1px solid var(--td-component-border)}.t-table--bordered td.t-table__cell--fixed-left-last:before,.t-table--bordered th.t-table__cell--fixed-left-last:before{border-right:1px solid var(--td-component-border)}.t-table--bordered td.t-table__td-first-col,.t-table--bordered th:first-child,.t-table--bordered:not(.t-table--rowspan-colspan) td:first-child{border-left-width:0}.t-table--bordered .t-table__content{border-left:1px solid var(--td-component-border)}.t-table--bordered .t-table__content::-webkit-scrollbar-corner{background-color:transparent}.t-table--bordered .t-table__content{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default)}.t-table--bordered .t-table--loading{border-bottom:1px solid var(--td-component-border)}.t-table--bordered .t-table__pagination{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table--bordered .t-table__bottom-content+.t-table__pagination{padding:0}.t-table--bordered.t-table__header--fixed .t-table__content{border-bottom:1px solid var(--td-component-border)}.t-table--bordered .t-table__td-last-row,.t-table--striped:not(.t-table--bordered) td,.t-table--striped:not(.t-table--bordered) th{border-bottom:none}.t-table--striped.t-table--header-fixed>.t-table__content>table>tbody tr:nth-of-type(2n),.t-table--striped:not(.t-table--header-fixed)>.t-table__content>table>tbody>tr:nth-of-type(odd):not(.t-table__expanded-row){background-color:var(--td-bg-color-secondarycontainer)}.t-table--striped.t-table--hoverable.t-table__header--fixed tbody tr:nth-of-type(2n):hover,.t-table--striped.t-table--hoverable:not(.t-table__header--fixed)>.t-table__content>table>tbody tr:nth-of-type(odd):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-table--striped.t-table--hoverable>.t-table__content>table>tbody tr{transition:background-color .2s linear}.t-table--striped.t-table--hoverable>.t-table__content>table>tbody tr:hover{background-color:var(--td-bg-color-container-hover)}.t-table--hoverable tbody tr{transition:background-color .2s linear}.t-table--hoverable tbody tr:hover{background-color:var(--td-bg-color-container-hover)}.t-table.t-table--align-top tbody td{vertical-align:top}.t-table .t-table__cell--highlight{background-color:var(--td-bg-color-secondarycontainer)}.t-table__header--fixed table{table-layout:fixed}.t-table__header--fixed td,.t-table__header--fixed th{overflow-wrap:break-word}.t-table__header--fixed .t-table__header,.t-table__header--fixed.t-table__header{position:relative;width:fit-content;z-index:5}@-moz-document url-prefix(){.t-table__header--fixed .t-table__header{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__header::-webkit-scrollbar{height:6px;width:6px}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:horizontal:hover,.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__header--fixed .t-table__body{overflow-y:auto;width:fit-content}@-moz-document url-prefix(){.t-table__header--fixed .t-table__body{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__body::-webkit-scrollbar{height:6px;width:6px}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid transparent;border-radius:11px}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:horizontal:hover,.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table:not(.t-table--bordered) .t-table__cell--selectable+td,.t-table:not(.t-table--bordered) .t-table__cell--selectable+th{padding-left:0}.t-table__cell--fixed.t-table__header--fixed .t-table__header{overflow:hidden;width:100%}.t-table__cell--fixed.t-table__header--fixed .t-table__header .t-table__cell--fixed-left:last-child:after,.t-table__cell--fixed.t-table__header--fixed .t-table__header .t-table__cell--fixed-right:last-child:after{background-color:var(--td-bg-color-secondarycontainer);content:"";height:100%;position:absolute;right:-6px;top:0;width:6px}.t-table__cell--fixed.t-table__header--fixed .t-table__body{overflow:auto scroll}.t-table__cell--fixed .t-table__content{overflow:auto hidden}.t-table__cell--fixed table{min-width:100%;table-layout:fixed}.t-table__cell--fixed td,.t-table__cell--fixed th{position:relative}.t-table__cell--fixed .t-table__cell--fixed-left-last:before{background-color:inherit;z-index:-1}.t-table__cell--fixed .t-table__cell--fixed-left-last:after{bottom:0;content:"";pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:box-shadow .3s;z-index:-2}.t-table__cell--fixed .t-table__cell--fixed-right-first:before{background-color:inherit;z-index:-1}.t-table__cell--fixed .t-table__cell--fixed-right-first:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;top:0;transform:translateX(-100%);transition:box-shadow .3s;z-index:-2}.t-table .t-table__cell-resizable{position:relative}.t-table .t-table__cell-resizable .t-table__cell--resizer{bottom:0;cursor:col-resize;position:absolute;right:-5px;top:0;width:10px;z-index:10}.t-table .t-table__row--disabled{color:var(--td-text-color-disabled)}.t-table .t-table__cell--title{align-items:center;display:flex}.t-table__column-controller-desc{margin-bottom:var(--td-comp-margin-xxl)}.t-table__column-controller-block{border-bottom:1px solid var(--td-component-border);border:1px solid var(--td-component-border);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-table__column-controller-block+.t-table__column-controller-block{border-bottom:1px solid var(--td-component-border);border-top:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__column-controller--fixed .t-checkbox{width:108px}.t-table.t-table__row--active-multiple tbody>tr.t-table__row--active,.t-table.t-table__row--active-single tbody>tr.t-table__row--active{background-color:var(--td-brand-color-light)}.t-table.t-table--hoverable tbody>tr.t-table__row--active:hover,.t-table.t-table__row--active-multiple tbody>tr.t-table__row--active.t-table__row--hover,.t-table.t-table__row--active-single tbody>tr.t-table__row--active.t-table__row--hover{background-color:var(--td-brand-color-light-hover)}.t-table.t-table--row-expandable tbody>tr.t-table__row--hover,.t-table.t-table--row-select tbody>tr.t-table__row--hover,.t-table.t-table__row--active-multiple tbody>tr.t-table__row--hover{background-color:var(--td-bg-color-container-hover)}.t-table--bordered .t-table__cell--filterable .t-table__cell--title,.t-table--bordered .t-table__cell--sortable .t-table__cell--title{justify-content:space-between}.t-table th.t-align-right .t-table__cell--title{justify-content:flex-end}.t-table__cell--sort-trigger{text-align:center;vertical-align:text-bottom}.t-table__cell--sort-trigger svg{vertical-align:initial}.t-table--loading{position:relative}.t-table--loading-progressbar{animation:tTableProgressbar 2s ease-in-out;animation-fill-mode:both;background-color:var(--td-brand-color);height:1px;left:0;overflow:hidden;position:absolute;top:0}.t-table--loading-message{align-items:center;color:var(--td-text-color-placeholder);display:flex;justify-content:center;min-height:120px}.t-table__expanded-cell{padding-left:45px}.t-table__async-loading{text-align:center}.t-table__async-loading.t-is-load-more{cursor:pointer}.t-table__empty{align-items:center;color:var(--td-text-color-disabled);display:flex;justify-content:center;min-height:120px}.t-table__filter-icon,.t-table__sort-icon{align-items:center;background-color:transparent;cursor:pointer;display:inline-flex;transition:.2s linear;vertical-align:text-bottom}.t-table__filter-icon>svg,.t-table__sort-icon>svg{margin-top:0}.t-table__sort-icon .t-is-focus,.t-table__sort-icon.t-is-focus,.t-table__sort-icon:hover{border-radius:var(--td-radius-circle);color:var(--td-brand-color);transition:.2s linear}.t-table__filter-icon .t-is-focus,.t-table__filter-icon.t-is-focus,.t-table__filter-icon:hover{color:var(--td-brand-color);transition:.2s linear}.t-table__filter-pop .t-popup__content{padding:0}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-inner{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-table__filter-popup-input{margin-bottom:var(--td-comp-margin-s)}.t-table__filter-pop .t-table__filter-pop-content .t-radio-group{display:block;height:auto}.t-table__filter-pop .t-table__filter-pop-content .t-checkbox-group{display:block}.t-table__filter-pop .t-table__filter-pop-content .t-checkbox,.t-table__filter-pop .t-table__filter-pop-content .t-radio{display:block;margin:var(--td-comp-margin-xs) 0}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-button{border-top:1px solid var(--td-component-border);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-button .t-button+.t-button{margin-left:var(--td-comp-margin-l)}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner{max-height:280px;overflow:auto;padding:0;position:relative}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-input__wrap{background-color:var(--td-bg-color-container);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) 0 var(--td-comp-paddingLR-l);position:sticky;top:0;z-index:1}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-radio-group{padding:0 var(--td-comp-paddingLR-l)}.t-table__filter-pop-content-inner>.t-input__wrap{width:200px}.t-table__filter-pop-content-inner>.t-date-range-picker__panel{margin:calc(0px - var(--td-comp-margin-l))}.t-table__sort-icon--active{color:var(--td-brand-color);transition:.2s linear}.t-table__double-icons{display:flex;flex-direction:column;justify-content:center}.t-table__double-icons .t-table__sort-icon{position:relative}.t-table__double-icons .t-table-sort-asc{top:var(--td-comp-margin-xxs)}.t-table__double-icons .t-table-sort-desc{bottom:var(--td-comp-margin-xxs)}.t-table__filter-icon-wrap{align-items:center;display:flex;height:var(--td-font-size-body-large);margin-left:var(--td-comp-margin-s);pointer-events:all;width:var(--td-font-size-body-large)}.t-table--bordered .t-table__filter-icon-wrap{justify-content:flex-end}.t-table--bordered .t-table__cell--sortable.t-table__cell--filterable .t-table__filter-icon-wrap{flex:1;justify-content:space-between}.t-table .t-align-center .t-table__cell--filterable,.t-table .t-align-center .t-table__cell--sortable{display:flex;justify-content:space-around}.t-table__expand-box{align-items:center;color:var(--td-text-color-placeholder);cursor:pointer;display:flex;height:100%;justify-content:center;transition:all .2s cubic-bezier(.38,0,.24,1) 0s;width:100%}.t-table__expand-box:hover{color:var(--td-brand-color);transition:.2s linear}@keyframes tTableProgressbar{0%{width:0}to{width:100%}}.t-table__th-row-select .t-table__th-cell-inner{align-items:center;display:inline-flex}.t-table-expandable-icon-cell+.t-table__cell--selectable[key=row-select]{padding-left:var(--td-comp-margin-s)}.t-table__filter--bottom-buttons{border-top:1px solid var(--td-component-border);display:flex;justify-content:flex-end;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter--bottom-buttons>.t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-table__row-filter-inner{left:0;position:sticky;text-align:center}.t-table__filter-result{align-items:center;display:flex;justify-content:center}.t-table__filter-result>.t-button{margin-left:var(--td-comp-margin-s)}.t-table--layout-fixed{table-layout:fixed}.t-table--layout-auto{table-layout:auto}.t-table__ellipsis{white-space:nowrap;width:100%}.t-table__content{overflow:auto}.t-table__content--scrollable-to-left .t-table__cell--fixed-left-last:after{border-right:2px solid var(--td-component-border)}.t-table__content--scrollable-to-right .t-table__cell--fixed-right-first:after{border-left:2px solid var(--td-component-border)}.t-table--bordered.t-table__content--scrollable-to-left .t-table__cell--fixed-left-last:after{border-right:4px solid var(--td-component-border)}.t-table--bordered.t-table__content--scrollable-to-right .t-table__cell--fixed-right-first:after{border-left:4px solid var(--td-component-border)}.t-table__scroll-bar-divider{border-right:1px solid var(--td-component-border);bottom:0;height:100%;position:absolute;right:0;z-index:71}.t-table__footer,.t-table__header.t-table__header--fixed{position:sticky;z-index:50}.t-table:not(.t-table--striped) .t-table__footer>tr,.t-table__header--fixed:not(.t-table__header--multiple)>tr>th{background-color:var(--td-bg-color-secondarycontainer)}.t-table__row--fixed-bottom,.t-table__row--fixed-top{position:sticky;z-index:70}.t-table__row--fixed-bottom-first>td{border-top:1px solid var(--td-component-border)}.t-table--bordered .t-table__content .t-table__row--without-border-bottom>td,.t-table--bordered tbody>tr:last-child>td,.t-table--bordered tfoot>tr:last-child>td{border-bottom:0}.t-table--bordered tfoot>tr:first-child>td{border-top:1px solid var(--td-component-border)}.t-table__header.t-table__header--fixed{top:0}.t-table__footer.t-table__footer--fixed{bottom:0}.t-table--column-fixed .t-table__cell--fixed-left-last:before{background-color:inherit;z-index:-1}.t-table--column-fixed .t-table__cell--fixed-left-last:after{bottom:0;content:"";pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:box-shadow .3s;z-index:-2}.t-table--column-fixed .t-table__cell--fixed-right-first:before{background-color:inherit;z-index:-1}.t-table--column-fixed .t-table__cell--fixed-right-first:after{bottom:0;content:"";left:0;pointer-events:none;position:absolute;top:0;transform:translateX(-100%);transition:box-shadow .3s;z-index:-2}.t-table--column-fixed .t-table__cell--fixed-left,.t-table--column-fixed .t-table__cell--fixed-right{position:sticky}.t-table--column-fixed .t-table__cell--fixed-left{z-index:30}.t-table--column-fixed .t-table__cell--fixed-right{z-index:31}.t-table__empty-row>td{border:0;padding:0}.t-table:not(.t-table--bordered) .t-table__header.t-table--bordered>tr:first-child>th{border-top:1px solid var(--td-component-border)}.t-table--multiple-header .t-table__header th.t-table__header-th--bordered{border-left-width:1px}.t-table__header.t-table__header--multiple>tr{background-color:var(--td-bg-color-container)}.t-table__tree-op-icon{cursor:pointer;display:inline-flex;margin-right:var(--td-comp-margin-s);vertical-align:-3px}.t-table__tree-op-icon:hover{color:var(--td-brand-color);transition:.2s linear}.t-table__tree-leaf-node .t-table__tree-op-icon{margin-right:var(--td-comp-margin-xxs);min-width:0}.t-table__virtual-scroll-cursor{height:1px;position:absolute;transition:transform .2s;width:1px}.t-table__virtual-scroll-header{left:0;position:absolute;z-index:51}.t-table__affixed-header-elm-wrap{overflow:hidden}.t-table__affixed-header-elm,.t-table__affixed-header-elm-wrap{left:0;position:absolute;z-index:51}.t-table__affixed-header-elm{opacity:1;overflow:auto;transition:opacity .2s linear}.t-table__affixed-footer-elm{overflow:auto;z-index:50}.t-table--bordered .t-table__affixed-header-elm{border:1px solid var(--td-component-border);border-bottom:0;border-right:0}.t-table--bordered .t-table__affixed-footer-elm{border-bottom:1px solid var(--td-component-border);border-left:1px solid var(--td-component-border)}.t-table--multiple-header.t-table--bordered .t-table__affixed-header-elm{border-right:0}.t-is-hidden{display:none}.t-positive-rotate-90{transform:rotate(90deg)}.t-negative-rotate-180{transform:rotate(180deg)}.t-table__expanded-row>td,.t-table__row--full>td{padding:0}.t-table__row-full-element{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-table__row-full-inner{left:0;position:sticky}.t-table__row-full-inner:not(.t-table__empty){display:inline-block}.t-table__tree-col{align-items:center;display:flex}.t-table__tree-col--inline{display:inline}.t-table--full-height{height:100%}.t-table--loading .t-table__content{min-height:168px}.t-table--row-draggable tr,.t-table__handle-draggable:hover,.t-table__th--drag-sort{cursor:move}.t-table__ele--draggable-chosen{box-shadow:var(--td-shadow-1)}.t-table:not(.t-table--row-edit) .t-table__cell--editable{cursor:pointer;line-height:var(--td-line-height-body-medium);min-height:22px}.t-table:not(.t-table--row-edit) .t-table__cell--editable .t-icon{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-large);margin-left:var(--td-comp-margin-s);transition:.2s linear}.t-table:not(.t-table--row-edit) .t-table__cell--editable .t-icon:hover{color:var(--td-brand-color)}.t-table:not(.t-table--row-edit) .t-table__cell--editable:hover{transition:.2s linear}.t-affix .t-table__pagination{background-color:var(--td-bg-color-container)}.t-table--bordered .t-affix .t-table__pagination{border-top:1px solid var(--td-component-border)}.t-table__bottom-content+.t-table__pagination-wrap .t-table__pagination{border:0;padding:0}.t-table--column-resizable:not(.t-table--bordered) th{border-top:1px solid transparent}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header:hover th:not(:last-child){border-right:1px solid var(--td-component-border)}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header:hover th{border-top:1px solid var(--td-component-border)}.t-table--column-resizable:not(.t-table--bordered).t-table__content--scrollable-to-left thead.t-table__header:hover .t-table__cell--fixed-left-last:not(:last-child),.t-table--column-resizable:not(.t-table--bordered).t-table__content--scrollable-to-left.t-table__content--scrollable-to-right thead.t-table__header:hover .t-table__cell--fixed-left-last:not(:last-child){border-right:0}.t-table td.t-table__cell-check,.t-table th.t-table__cell-check{height:0;padding:0}.t-table td.t-table__cell-check .t-checkbox__label:empty,.t-table td.t-table__cell-check .t-radio__label:empty,.t-table th.t-table__cell-check .t-checkbox__label:empty,.t-table th.t-table__cell-check .t-radio__label:empty{display:none}.t-table .t-table__cell-check .t-checkbox,.t-table .t-table__cell-check .t-radio,.t-table .t-table__cell-check .t-table__th-cell-inner{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.t-table td .t-input__tips{position:static}.t-table .t-table__sort-column{background-color:var(--td-bg-color-secondarycontainer)}.t-table__ellipsis-content.t-size-s .t-popup__content,.t-timeline{font:var(--td-font-body-medium)}.t-timeline{box-sizing:border-box;color:var(--td-text-color-primary);display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.t-timeline-item{display:flex;flex-direction:row;min-height:72px;position:relative}.t-timeline-item__label.t-timeline-item__label--alternate{position:absolute}.t-timeline-item__wrapper{position:relative;width:8px}.t-timeline-item__wrapper .t-timeline-item__dot{border:2px solid transparent;border-radius:50%;box-sizing:unset;height:4px;position:absolute;top:8px;width:4px}.t-timeline-item__wrapper .t-timeline-item__dot--primary{border-color:var(--td-brand-color)}.t-timeline-item__wrapper .t-timeline-item__dot--default{border-color:var(--td-component-border)}.t-timeline-item__wrapper .t-timeline-item__dot--success{border-color:var(--td-success-color)}.t-timeline-item__wrapper .t-timeline-item__dot--warning{border-color:var(--td-warning-color)}.t-timeline-item__wrapper .t-timeline-item__dot--error{border-color:var(--td-error-color)}.t-timeline-item__wrapper .t-timeline-item__dot--custom{border:0;left:50%;position:relative;top:4px;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__dot--custom .t-timeline-item__dot-content{left:50%;position:absolute;top:0;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__tail{border-left:2px solid transparent;border-color:var(--td-component-border);bottom:0;box-sizing:border-box;height:calc(100% - 24px);left:50%;padding-bottom:var(--td-comp-size-s);position:absolute;transform:translateX(-50%)}.t-timeline-item__wrapper .t-timeline-item__tail--theme-dot{border-style:dashed;border-right:0}.t-timeline-item__label{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-medium)}.t-timeline-item__content{flex:1;font-size:var(--td-font-size-body-large);padding-left:var(--td-comp-margin-l)}.t-timeline-item--last .t-timeline-item__tail{display:none}.t-timeline-label.t-timeline-label--alternate.t-timeline-left .t-timeline-item__label{left:0;text-align:right}.t-timeline-label.t-timeline-label--alternate.t-timeline-left .t-timeline-item__wrapper{margin-left:100px}.t-timeline-label.t-timeline-label--alternate.t-timeline-right .t-timeline-item__label{right:0;text-align:left}.t-timeline-label.t-timeline-label--alternate.t-timeline-right .t-timeline-item__wrapper{margin-right:100px}.t-timeline-right .t-timeline-item{flex-direction:row-reverse}.t-timeline-right .t-timeline-item__content{padding-left:0;padding-right:var(--td-comp-margin-l);text-align:right}.t-timeline-alternate .t-timeline-item-left{margin-left:calc(50% - 4px)}.t-timeline-alternate .t-timeline-item-right{flex-direction:row-reverse;margin-right:calc(50% - 4px);text-align:right}.t-timeline-alternate .t-timeline-item-right .t-timeline-item__content{padding-left:0;padding-right:var(--td-comp-margin-l)}.t-timeline-label.t-timeline-alternate .t-timeline-item__label{width:100%}.t-timeline-label.t-timeline-alternate .t-timeline-item-left .t-timeline-item__label--alternate{left:0;padding-right:var(--td-comp-margin-l);text-align:right;transform:translateX(-100%)}.t-timeline-label.t-timeline-alternate .t-timeline-item-right .t-timeline-item__label--alternate{padding-left:var(--td-comp-margin-l);right:0;text-align:left;transform:translateX(100%)}.t-timeline-horizontal{align-items:center;flex-direction:row;min-height:200px}.t-timeline-horizontal .t-timeline-item{flex-direction:column;min-width:160px;padding-right:8px}.t-timeline-horizontal .t-timeline-item__wrapper{height:8px;width:100%}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot{border-radius:50%;height:4px;left:unset;position:absolute;top:50%;transform:translateY(-50%);width:4px}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot--custom{border:0;position:relative;top:50%;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot--custom .t-timeline-item__dot-content{left:0;position:absolute;top:50%;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__tail{border:0;border-top:2px solid transparent;border-color:var(--td-component-border);left:calc(8px + var(--td-comp-margin-s));padding-bottom:0;top:50%;transform:translateY(-50%);width:calc(100% - 8px - var(--td-comp-margin-s))}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__tail--theme-dot{border-style:dashed;border-right:0}.t-timeline-horizontal .t-timeline-item__content{flex:unset;padding-left:unset;padding-top:var(--td-comp-margin-l)}.t-timeline-vertical .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l)}.t-timeline-label.t-timeline-horizontal.t-timeline-top .t-timeline-item__label--alternate{padding-bottom:0;top:0;transform:translateY(-100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item{flex-direction:column-reverse}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__wrapper{padding-top:0}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__label--alternate{bottom:0;padding-top:var(--td-comp-margin-l);transform:translateY(100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l);padding-top:0}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-top .t-timeline-item__label--alternate{padding-bottom:var(--td-comp-margin-l);top:0;transform:translateY(-100%);width:100%}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom{flex-direction:column-reverse;position:relative;transform:translateY(calc(-100% + 8px))}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l);padding-top:unset}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom .t-timeline-item__label--alternate{bottom:0;padding-top:var(--td-comp-margin-l);transform:translateY(100%)}.t-collapse{background:var(--td-bg-color-container);border:1px solid var(--td-component-border);border-bottom:0;box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-collapse.t--border-less{border:none}.t-collapse.t--border-less .t-collapse-panel__header{border-bottom:none}.t-collapse.t--border-less .t-collapse-panel__body{background:var(--td-bg-color-container);border:none}.t-collapse-panel__icon{align-items:center;cursor:pointer;display:flex;justify-content:center;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-collapse-panel__icon>.t-fake-arrow{transform:rotate(-90deg);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-collapse-panel__icon--left{margin-right:var(--td-comp-margin-s)}.t-collapse-panel__icon--right{margin-left:var(--td-comp-margin-s)}.t-collapse-panel__icon--active>.t-fake-arrow{transform:rotate(0)}.t-collapse-panel__icon:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-small)}.t-collapse-panel__wrapper{overflow:hidden}.t-collapse-panel__wrapper.t--borderless .t-collapse-panel__header{border-bottom:none}.t-collapse-panel__wrapper.t--borderless .t-collapse-panel__body{background:var(--td-bg-color-container);border:none}.t-collapse-panel__wrapper .t-collapse-panel__header{align-items:center;border-bottom:1px solid var(--td-component-border);display:flex;font:var(--td-font-title-small);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-collapse-panel__wrapper .t-collapse-panel__header--blank{flex:1}.t-collapse-panel__wrapper .t-collapse-panel__header.t-is-clickable{cursor:pointer}.t-collapse-panel__wrapper .t-collapse-panel__header-left,.t-collapse-panel__wrapper .t-collapse-panel__header-right,.t-collapse-panel__wrapper .t-collapse-panel__header-right-content{display:flex}.t-collapse-panel__wrapper .t-collapse-panel__body{background:var(--td-bg-color-secondarycontainer);border-bottom:1px solid var(--td-component-border);overflow:inherit}.t-collapse-panel__wrapper .t-collapse-panel__body--collapsed{border:none}.t-collapse-panel__wrapper .t-collapse-panel__content{color:var(--td-text-color-secondary);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-m) calc(var(--td-comp-paddingLR-l) + var(--td-comp-margin-xxl))}.t-collapse-panel.t-is-disabled .t-collapse-panel__header{color:var(--td-text-color-disabled);cursor:not-allowed}.t-collapse-panel.t-is-disabled .t-collapse-panel__icon{cursor:not-allowed;pointer-events:none}.t-collapse-panel.t-is-disabled .t-collapse-panel__body{background:var(--td-bg-color-component-disabled)}.t-collapse-panel.t-is-disabled .t-collapse-panel__content{color:var(--td-text-color-disabled)}.t-rate{align-items:center;display:flex}.t-rate .t-rate__star-top{height:100%;left:0;overflow:hidden;position:absolute;top:0;transition:all .2s cubic-bezier(.38,0,.24,1);width:0}.t-rate .t-rate__star-bottom,.t-rate .t-rate__star-top{display:grid}.t-rate__list{display:flex;list-style:none;margin:0;padding:0}.t-rate__item{cursor:pointer;position:relative;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-rate__item:hover{transform:scale(1.33)}.t-rate__item--half .t-rate__star-top{width:50%}.t-rate__item--full .t-rate__star-top{width:100%}.t-rate__text{font:var(--td-font-mark-medium);margin-left:var(--td-comp-margin-l)}.t-rate__text,.t-typography{color:var(--td-text-color-primary)}.t-typography{font:var(--td-font-body-medium);margin:var(--td-comp-margin-m) 0}h1.t-typography{font:var(--td-font-headline-large);margin-top:var(--td-comp-margin-xxxxl)}h1.t-typography,h2.t-typography{margin-bottom:var(--td-comp-margin-l)}h2.t-typography{font:var(--td-font-headline-medium);margin-top:var(--td-comp-margin-xxxl)}h3.t-typography{font:var(--td-font-headline-small);margin-top:var(--td-comp-margin-xxl)}h3.t-typography,h4.t-typography{margin-bottom:var(--td-comp-margin-m)}h4.t-typography{font:var(--td-font-title-large);margin-top:var(--td-comp-margin-xl)}h5.t-typography{font:var(--td-font-title-medium);margin-bottom:var(--td-comp-margin-m);margin-top:var(--td-comp-margin-l)}h6.t-typography{font:var(--td-font-title-small)}.t-typography strong{font-weight:600}.t-typography mark{background-color:#fcdf47}.t-typography code{background-color:var(--td-bg-color-secondarycontainer);display:inline-block;font:var(--td-font-body-small);font-family:Source Code Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei;margin:0 var(--td-comp-margin-xs);padding:1px var(--td-comp-paddingLR-s);transition:background-color .2s;white-space:nowrap}.t-typography code,.t-typography code:hover{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default)}.t-typography code:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-typography kbd{background-color:var(--td-bg-color-secondarycontainer);border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);box-shadow:0 1px 0 0 var(--td-component-border);display:inline-block;font:var(--td-font-body-small);font-family:Source Code Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei;margin:0 var(--td-comp-margin-xs);padding:1px var(--td-comp-paddingLR-s)}.t-typography--disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-typography--success{color:var(--td-success-color)}.t-typography--warning{color:var(--td-warning-color)}.t-typography--error{color:var(--td-error-color)}.t-typography--secondary{color:var(--td-text-color-secondary)}.t-typography .t-icon-copy,.t-typography-ellipsis-symbol{color:var(--td-brand-color);cursor:pointer}.t-typography .t-icon-copy:hover,.t-typography-ellipsis-symbol:hover{color:var(--td-brand-color-hover)}.t-typography .t-icon-checked{color:var(--td-success-color)}.t-alert{align-items:flex-start;border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;opacity:1;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);transition:opacity .2s}.t-alert.t-is-hidden{display:none}.t-alert--closing{opacity:0}.t-alert--info{background-color:var(--td-brand-color-focus)}.t-alert--info .t-alert__icon,.t-alert--info .t-alert__swiper-trigger--active,.t-alert--info .t-alert__swiper-trigger-wrap{color:var(--td-brand-color)}.t-alert--success{background-color:var(--td-success-color-focus)}.t-alert--success .t-alert__icon{color:var(--td-success-color)}.t-alert--success .t-alert__swiper-trigger-wrap{color:var(--td-success-color-focus)}.t-alert--success .t-alert__swiper-trigger--active{color:var(--td-success-color)}.t-alert--warning{background-color:var(--td-warning-color-focus)}.t-alert--warning .t-alert__icon{color:var(--td-warning-color)}.t-alert--warning .t-alert__swiper-trigger-wrap{color:var(--td-warning-color-focus)}.t-alert--warning .t-alert__swiper-trigger--active{color:var(--td-warning-color)}.t-alert--error{background-color:var(--td-error-color-focus)}.t-alert--error .t-alert__icon{color:var(--td-error-color)}.t-alert--error .t-alert__swiper-trigger-wrap{color:var(--td-error-color-focus)}.t-alert--error .t-alert__swiper-trigger--active{color:var(--td-error-color)}.t-alert__icon{display:inherit;font-size:var(--td-line-height-body-medium)}.t-alert__close,.t-alert__icon{flex:0 0 auto;line-height:var(--td-line-height-body-small)}.t-alert__content{flex:1 1 0;font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium);overflow:hidden}.t-alert__message,.t-alert__title{display:flex;width:100%}.t-alert__title{color:var(--td-text-color-primary);font-weight:700}.t-alert__title+.t-alert__message{margin-top:var(--td-comp-margin-s)}.t-alert__description{color:var(--td-text-color-secondary);flex:0 1 auto;transition:height .2s}.t-alert__operation{color:var(--td-brand-color);cursor:pointer;flex:0 0 auto;padding:0 var(--td-comp-paddingLR-s);transition:color .2s}.t-alert__operation:hover{color:var(--td-brand-color-hover)}.t-alert__operation:active{color:var(--td-brand-color-active)}.t-alert__icon+.t-alert__content{margin-left:var(--td-comp-margin-s)}.t-alert__collapse{color:var(--td-brand-color);cursor:pointer;margin-top:var(--td-comp-margin-s)}.t-alert__close{align-items:center;color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;margin-left:var(--td-comp-margin-l);transition:color .2s}.t-alert__close:hover{color:var(--td-text-color-primary)}.t-alert__close>.t-icon{font-size:calc(var(--td-line-height-body-medium) - 2px);padding:calc((var(--td-line-height-body-medium) - var(--td-line-height-body-medium) - 2px)/2) 0}.t-drawer-fade-appear,.t-drawer-fade-enter{opacity:0}.t-drawer-fade-appear,.t-drawer-fade-enter,.t-drawer-fade-exit{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused;animation-timing-function:linear}.t-drawer-fade-appear.t-drawer-fade-appear-active,.t-drawer-fade-appear.t-drawer-fade-appear-active.t-drawer-fade-appear-to,.t-drawer-fade-enter.t-drawer-fade-enter-active,.t-drawer-fade-enter.t-drawer-fade-enter-active.t-drawer-fade-enter-to{animation-duration:.2s;animation-name:tDrawerFadeIn;animation-play-state:running}.t-drawer-fade-exit.t-drawer-fade-exit-active,.t-drawer-fade-leave-active.t-drawer-fade-leave-to{animation-duration:.2s;animation-name:tDrawerFadeOut;animation-play-state:running}@keyframes tDrawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tDrawerFadeOut{0%{opacity:1}to{opacity:0}}.t-drawer{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);height:100%;list-style:none;margin:0;outline:none;padding:0;pointer-events:none;position:fixed;width:100%;z-index:1500}.t-drawer,.t-drawer--lock{overflow:hidden}.t-drawer--attach{position:absolute}.t-drawer--left,.t-drawer--right{top:0}.t-drawer--left{left:0}.t-drawer--right{right:0}.t-drawer--bottom,.t-drawer--top{left:0}.t-drawer--top{top:0}.t-drawer--bottom{bottom:0}.t-drawer__mask{background-color:var(--td-mask-active);height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s cubic-bezier(.38,0,.24,1);width:100%}.t-drawer__content-wrapper{background:var(--td-bg-color-container);box-shadow:var(--td-shadow-2);color:var(--td-text-color-secondary);display:flex;flex-direction:column;font-size:var(--td-font-body-medium);height:16px;overflow:hidden;pointer-events:auto;position:relative;transition:transform .28s cubic-bezier(.38,0,.24,1),visibility .28s cubic-bezier(.38,0,.24,1);width:16px}.t-drawer .t-drawer__content-wrapper{height:100%;position:absolute;visibility:hidden;width:100%}.t-drawer .t-drawer__content-wrapper--left,.t-drawer .t-drawer__content-wrapper--right{top:0}.t-drawer .t-drawer__content-wrapper--left{left:0;transform:translateX(-100%)}.t-drawer .t-drawer__content-wrapper--right{right:0;transform:translateX(100%)}.t-drawer .t-drawer__content-wrapper--bottom,.t-drawer .t-drawer__content-wrapper--top{left:0}.t-drawer .t-drawer__content-wrapper--top{top:0;transform:translateY(-100%)}.t-drawer .t-drawer__content-wrapper--bottom{bottom:0;transform:translateY(100%)}.t-drawer__header{align-items:center;border-bottom:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-small) var(--td-radius-small) 0 0;box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-title-medium);min-height:var(--td-comp-size-xxxl);padding:0 var(--td-comp-paddingLR-l)}.t-drawer__body{flex:1;overflow:auto}.t-drawer__body,.t-drawer__footer{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-drawer__footer{background-color:var(--td-bg-color-container);border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;text-align:left;width:100%}.t-drawer__footer .t-button{margin-left:var(--td-comp-margin-s)}.t-drawer__footer .t-button:first-child{margin-left:0}.t-drawer__close-btn{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);color:var(--td-text-color-primary);cursor:pointer;display:flex;height:var(--td-comp-size-xs);justify-content:center;position:absolute;right:var(--td-comp-margin-s);top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-xs))/2);transition:background-color .2s;width:var(--td-comp-size-xs)}.t-drawer__close-btn:hover{background-color:var(--td-bg-color-container-hover)}.t-drawer__close-btn:active{background-color:var(--td-bg-color-container-active)}.t-drawer__close-btn .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px);vertical-align:unset}.t-drawer--open{height:100%;pointer-events:auto;width:100%}.t-drawer--open>.t-drawer__content-wrapper{visibility:visible}.t-drawer--open>.t-drawer__mask{height:100%;opacity:1;width:100%}.t-drawer--without-mask{pointer-events:none}[tabindex="-1"]:focus{outline:none!important}.t-guide{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-guide--lock{overflow:hidden}.t-guide--absolute{position:absolute}.t-guide--fixed{position:fixed}.t-guide__overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:999997}.t-guide__highlight{border-radius:var(--td-radius-default);transition:.2s cubic-bezier(0,0,.15,1);z-index:999998}.t-guide__highlight--dialog{border-radius:var(--td-radius-large)}.t-guide__highlight--mask{box-shadow:0 0 0 0 var(--td-mask-active),var(--td-mask-active) 0 0 0 5000px}.t-guide__highlight--nomask{border:2px solid var(--td-brand-color);border-radius:var(--td-radius-medium);box-sizing:border-box}.t-guide__reference{z-index:999999}.t-guide__wrapper{bottom:0;display:flex;justify-content:center;left:0;padding-top:20vh;position:fixed;right:0;top:0;z-index:999999}.t-guide__wrapper--center{align-items:center;padding-top:0}.t-guide__dialog{animation:tGuideDialogFadeIn .3s ease-out;background:var(--td-bg-color-container);border-radius:var(--td-radius-large);box-sizing:border-box;max-width:500px;min-width:320px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-guide__dialog--nomask{border:1px solid var(--td-component-border)}.t-guide__dialog .t-guide__title{font:var(--td-font-title-medium);font-weight:700}.t-guide__dialog .t-guide__desc{font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-l)}.t-guide__tooltip{max-height:300px;max-width:600px;min-width:240px;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-s)}.t-guide__title{color:var(--td-text-color-primary);font:var(--td-font-title-small);font-weight:700;text-align:left}.t-guide__desc{color:var(--td-text-color-secondary);font:var(--td-font-body-small);margin-top:var(--td-comp-margin-s);text-align:left}.t-guide__action{align-items:center;display:flex}.t-guide__action button{margin-right:var(--td-comp-margin-s)}.t-guide__action button:last-child{margin-right:0}.t-guide__footer{align-items:center;display:flex}.t-guide__footer--popup{margin-top:var(--td-comp-margin-l)}.t-guide__footer--dialog{margin-top:24px}.t-guide__footer--dialog .t-guide__action{display:flex;justify-content:center}.t-guide__counter{color:var(--td-text-color-placeholder);flex:1;font:var(--td-font-body-small);text-align:left}.t-guide__popup .t-guide__popup--content{background:none;box-shadow:none;padding:0}@keyframes tGuideDialogFadeIn{0%{opacity:0}to{opacity:1}}.t-message{align-items:center;background-color:var(--td-bg-color-container);border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-3),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:0;padding:0;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);width:fit-content}.t-message .t-loading,.t-message>.t-icon,.t-message>[data-t-icon]>.t-icon{color:var(--td-brand-color);flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 6px);margin-right:var(--td-comp-margin-s)}.t-message.t-is-success .t-loading,.t-message.t-is-success>.t-icon,.t-message.t-is-success>[data-t-icon]>.t-icon{color:var(--td-success-color)}.t-message.t-is-warning .t-loading,.t-message.t-is-warning>.t-icon,.t-message.t-is-warning>[data-t-icon]>.t-icon{color:var(--td-warning-color)}.t-message.t-is-error .t-loading,.t-message.t-is-error>.t-icon,.t-message.t-is-error>[data-t-icon]>.t-icon{color:var(--td-error-color)}.t-message.t-is-closable .t-message__close{color:var(--td-text-color-secondary);cursor:pointer;display:inline-flex;margin-left:var(--td-comp-margin-xxl);margin-right:0}.t-message.t-is-closable .t-message__close .t-icon-close{border-radius:var(--td-radius-default);font-size:calc(var(--td-font-size-body-medium) + 2px);transition:all .2s linear}.t-message.t-is-closable .t-message__close .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-message.t-is-closable .t-message__close .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-message__list{position:fixed;z-index:6000}.t-message__list .t-message{margin-bottom:var(--td-comp-margin-s);word-break:break-all}.t-notification{background-color:var(--td-bg-color-container);border:0;border-radius:var(--td-radius-medium);box-shadow:var(--td-shadow-2),var(--td-shadow-inset-top),var(--td-shadow-inset-right),var(--td-shadow-inset-bottom),var(--td-shadow-inset-left);box-sizing:border-box;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);list-style:none;margin:0;outline:0;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);width:360px}.t-notification__icon{margin-right:var(--td-comp-margin-s);text-align:center;width:calc(var(--td-font-size-body-large) + 8px)}.t-notification__icon .t-icon{font-size:calc(var(--td-font-size-body-large) + 8px)}.t-notification .t-icon.t-is-info{color:var(--td-brand-color)}.t-notification .t-icon.t-is-success{color:var(--td-success-color)}.t-notification .t-icon.t-is-warning{color:var(--td-warning-color)}.t-notification .t-icon.t-is-error{color:var(--td-error-color-6)}.t-notification__main{flex:1}.t-notification__title__wrap{display:flex;justify-content:space-between}.t-notification__title{color:var(--td-text-color-primary);font:var(--td-font-title-medium)}.t-notification .t-icon-close{border-radius:var(--td-radius-default);color:var(--td-text-color-secondary);cursor:pointer;font-size:var(--td-font-size-body-large)}.t-notification .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-notification .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-notification__content{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--td-text-color-secondary);display:-webkit-box;font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-s);max-height:66px;overflow:hidden;text-overflow:ellipsis;word-break:break-all}.t-notification__detail{font:var(--td-font-body-medium);margin-top:var(--td-comp-margin-l);text-align:right}.t-notification__detail-item{cursor:pointer}.t-notification__detail-item:hover{background:var(--td-bg-color-container-hover);color:inherit}.t-notification__detail-item:active{background:var(--td-bg-color-container-active);color:inherit}.t-notification__detail-item+.t-notification__detail-item{margin-left:var(--td-comp-margin-s)}.t-notification__detail-item.t-is-active{color:var(--td-brand-color)}.t-notification__show--top-left{left:0;position:fixed;top:0}.t-notification__show--top-left>.t-notification{animation-duration:.3s;animation-name:slidein-top-left}@keyframes slidein-top-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--top-right{position:fixed;right:0;top:0}.t-notification__show--top-right>.t-notification{animation-duration:.3s;animation-name:slidein-top-right}@keyframes slidein-top-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-left{bottom:0;display:flex;flex-direction:column-reverse;left:0;position:fixed}.t-notification__show--bottom-left>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-left}@keyframes slidein-bottom-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification__show--bottom-right{bottom:0;display:flex;flex-direction:column-reverse;position:fixed;right:0}.t-notification__show--bottom-right>.t-notification{animation-duration:.3s;animation-name:slidein-bottom-right}@keyframes slidein-bottom-right{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}.t-notification-list__show{position:fixed}.t-popconfirm{border-radius:var(--td-radius-medium);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;min-width:160px;padding:0}.t-popconfirm .t-popup__content{padding:0}.t-popconfirm.t-popup[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-popconfirm__content{border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);position:relative}.t-popconfirm__body{align-items:flex-start;display:flex;text-align:left}.t-popconfirm__body>.t-icon{display:inline-block;font-size:calc(var(--td-font-size-body-medium) + 6px);margin-right:var(--td-comp-margin-s);padding:calc(var(--td-line-height-body-medium)/2 - var(--td-font-size-body-medium)/2 - 3px) 0}.t-popconfirm__confirm{margin-left:var(--td-comp-margin-s)}.t-popconfirm__inner{color:var(--td-text-color-primary);display:inline-block;font:var(--td-font-body-medium);max-width:320px;vertical-align:top}.t-popconfirm__icon--warning{color:var(--td-warning-color)}.t-popconfirm__icon--danger{color:var(--td-error-color)}.t-popconfirm__icon--default{color:var(--td-brand-color)}.t-popconfirm__buttons{margin-top:var(--td-comp-margin-l);text-align:right}.t-popconfirm__buttons>span:last-child{margin-right:0}.t-upload{box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);list-style:none;margin:0;padding:0}.t-upload .t-is-bordered{border:1px solid var(--td-component-border)}.t-upload .t-upload__trigger{display:inline-block}.t-upload .t-icon{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload .t-icon-check-circle-filled{color:var(--td-success-color)}.t-upload .t-icon-error-circle-filled{color:var(--td-error-color)}.t-upload .t-icon-time-filled{color:var(--td-text-color-placeholder)}.t-upload .t-icon-add{color:var(--td-text-color-primary)}.t-upload__list-file{align-items:center;display:flex;height:100px;justify-content:center;margin-right:var(--td-comp-margin-m);overflow:hidden;width:100px}.t-upload__list-file .t-icon{color:var(--td-brand-color);font-size:var(--td-comp-size-xl)}.t-upload__list-item{align-items:center;border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);display:flex;font:var(--td-font-body-medium);height:124px;justify-content:space-between;margin-top:var(--td-comp-margin-m);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);width:496px}.t-upload__list-item.t-is--error .t-upload__list-file .t-icon,.t-upload__list-item.t-is--error .t-upload__list-name{color:var(--td-error-color)}.t-upload__list-content{align-items:center;display:flex}.t-upload-list__control{cursor:pointer}.t-upload-list__control:hover{color:var(--td-error-color)}.t-upload__list-img{cursor:pointer;max-height:100%;max-width:100%;object-fit:cover}.t-upload__list-name{word-wrap:normal;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload--highlight{color:var(--td-text-color-brand)}.t-upload__single-name{margin-right:var(--td-comp-margin-s)}.t-upload__card{display:flex;flex-wrap:wrap;font:var(--td-font-body-small);gap:var(--td-comp-margin-s);margin:0;overflow:hidden;padding:0;width:100%}.t-upload__card .t-is-disabled :hover{cursor:not-allowed}.t-upload__card-item{box-sizing:border-box;cursor:pointer;list-style:none}.t-upload__card-item:after{content:"";display:block}.t-upload__card-item:hover .t-upload__card-mask{opacity:1;transition:opacity .2s linear}.t-upload__card-item.t-is--error .t-icon-warning_fill{color:var(--td-error-color);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-item.t-is--error .t-upload__card-status{color:var(--td-error-color)}.t-upload__card-item.t-is-background{transition:border-color .2s linear}.t-upload__card .t-icon-loading{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-name{word-wrap:normal;margin-top:var(--td-comp-margin-s);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__card-content{overflow:hidden;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s)}.t-upload__card-container,.t-upload__card-content{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border:1px dashed var(--td-component-border);border-radius:var(--td-radius-default);box-sizing:border-box;display:flex;height:110px;justify-content:center;position:relative;width:110px}.t-upload__card-container{flex-direction:column;transition:border .2s linear}.t-upload__card-container:hover:not(.t-is-disabled){border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__card-container>.t-icon{color:var(--td-text-color-placeholder)}.t-upload__card-container .t-loading,.t-upload__card-container>.t-icon{font-size:var(--td-comp-size-xs);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-container .t-upload__add-text,.t-upload__card-container>p{color:var(--td-text-color-placeholder);margin:0}.t-upload__card-status-wrap{text-align:center}.t-upload__card-status-wrap>svg{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-status-wrap .t-icon,.t-upload__card-status-wrap .t-loading{font-size:var(--td-comp-size-xs)}.t-upload__card-image{height:100%;max-height:100%;max-width:100%;width:100%}.t-upload__card-status{color:var(--td-text-color-disabled);font:var(--td-font-body-small)}.t-upload__card-mask{align-items:center;background-color:var(--td-mask-active);bottom:0;color:var(--td-text-color-anti);display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s linear;will-change:transform;z-index:2}.t-upload__card-mask-item-divider{border-left:1px solid var(--td-text-color-anti);height:var(--td-comp-size-xxxs);margin:0 var(--td-comp-margin-l)}.t-upload__card-mask-item>.t-icon{cursor:pointer;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dialog .t-dialog{max-width:80%}.t-upload__dialog .t-dialog--default{padding:32px}.t-upload__dialog .t-dialog-body{padding-bottom:0}.t-upload__dialog .t-dialog-body-img-box img{display:block;max-height:100%;max-width:100%}.t-upload__dragger{border:1px dashed var(--td-component-border);border-radius:var(--td-radius-small);box-sizing:border-box;color:var(--td-text-color-secondary);cursor:pointer;display:flex;font:var(--td-font-body-medium);height:144px;overflow:auto;padding:var(--td-comp-margin-l);position:relative;transition:border-color .2s linear;width:336px}.t-upload__dragger.t-is--active{background-color:var(--td-bg-color-container-active)}.t-upload__dragger.t-is--active,.t-upload__dragger:hover{border-color:var(--td-brand-color)}.t-upload__dragger-btns{bottom:var(--td-comp-margin-l);position:absolute}.t-upload__dragger .t-size-s{display:block}.t-upload__dragger-center{align-items:center;justify-content:center}.t-upload__dragger-error,.t-upload__dragger-error:hover{border-color:var(--td-error-color)}.t-upload__dragger-text{align-items:center;color:var(--td-text-color-primary);display:flex;font:var(--td-font-body-medium);margin-bottom:var(--td-comp-margin-s);max-width:calc(336px - var(--td-comp-margin-l)*2)}.t-upload__dragger-text .t-upload__single-name{word-wrap:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__tips{color:var(--td-text-color-placeholder);display:block;font:var(--td-font-body-small);margin-top:var(--td-comp-margin-s)}.t-upload__tips.t-upload__tips-error{color:var(--td-error-color)}.t-upload__tips.t-upload__tips-warn{color:var(--td-warning-color)}.t-upload__placeholder{color:var(--td-text-color-placeholder)}.t-upload__display-text--margin{margin-top:var(--td-comp-margin-s)}.t-upload__single-display-text{align-items:center;color:var(--td-text-color-secondary);display:flex;font:var(--td-font-body-small)}.t-upload__single-display-text .t-upload__flow-status .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-icon-clear-circle-filled{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xxs);transition:color .2s linear}.t-icon-clear-circle-filled:hover{color:var(--td-text-color-secondary);cursor:pointer;transition:color .2s linear}.t-upload__single-percent{margin-left:var(--td-comp-margin-xs)}.t-upload__single-progress{align-items:center;color:var(--td-brand-color);display:flex}.t-upload__single-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__single-input-delete{color:var(--td-brand-color);cursor:pointer;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-l)}.t-upload__single-input-preview{display:flex;flex:1;justify-content:space-between}.t-upload__single-input-text{word-wrap:normal;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-upload__single-file-input{align-items:center;display:flex}.t-upload__single-file-input .t-upload__trigger{margin-left:var(--td-comp-margin-l)}.t-upload__single-file-input .t-upload__single-progress{white-space:nowrap}.t-upload__single-file-input .t-input__inner{align-items:center;display:flex;justify-content:space-between}.t-upload__dragger-progress{display:flex;width:100%}.t-upload__dragger-progress .t-icon,.t-upload__dragger-progress .t-loading{flex-shrink:0;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dragger-img-wrap{align-items:center;background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);display:flex;flex-shrink:0;height:110px;justify-content:center;width:110px}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square{width:100%}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square .t-space-item{text-align:center}.t-upload__dragger-img-wrap>img{max-height:100%;max-width:100%}.t-upload__dragger-img-wrap+.t-upload__dragger-progress-info{margin-left:var(--td-comp-margin-l);max-width:calc(226px - var(--td-comp-margin-l)*2 - var(--td-comp-margin-l))}.t-upload__dragger-progress-info{flex:1}.t-upload__dragger-progress-info .t-upload__single-display-text{margin-bottom:var(--td-comp-margin-s)}.t-upload__dragger-progress-info .t-button:hover{background-color:transparent}.t-upload__dragger-progress-cancel,.t-upload__dragger-progress-reupload{margin-right:var(--td-comp-margin-l)}.t-upload__dragger-delete-btn:hover,.t-upload__dragger-progress-cancel:hover,.t-upload__dragger-progress-reupload:hover,.t-upload__dragger-upload-btn:hover{border-color:transparent}.t-upload__flow-image-flow{width:498px}.t-upload__flow{max-width:960px;min-width:498px}.t-upload__flow-placeholder{display:inline-block;margin-left:var(--td-comp-margin-l)}.t-upload__flow-op{align-items:center;display:flex}.t-upload__flow-bottom{display:flex;justify-content:flex-end;margin-top:var(--td-comp-margin-xxl)}.t-upload__flow-bottom .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-upload__flow-empty{align-items:center;color:var(--td-text-color-placeholder);display:flex;height:184px;justify-content:center;width:100%}.t-upload__flow-table{border:1px dashed var(--td-component-border);border-collapse:collapse;margin-top:var(--td-comp-margin-xxl);width:100%}.t-upload__flow-table>tbody>tr,.t-upload__flow-table>tfoot>tr,.t-upload__flow-table>thead>tr,.t-upload__flow-table>tr{border-top:1px solid var(--td-component-border)}.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>th{background-color:var(--td-bg-color-container);border:1px solid var(--td-component-border);color:var(--td-text-color-placeholder);font-weight:400;text-align:left}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>tr>td{color:var(--td-text-color-primary)}.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tr>td,.t-upload__flow-table>tr>th{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-upload__flow-table__batch-row{border-left:1px solid var(--td-component-border)}.t-upload__flow-button{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__flow-button:hover{color:var(--td-text-color-secondary)}.t-upload__flow-status{align-items:center;display:flex}.t-upload__flow-status .t-icon,.t-upload__flow-status .t-loading{font-size:calc(var(--td-font-size-body-medium) + 2px);margin-right:var(--td-comp-margin-s)}.t-upload__flow-card-area{border:1px dashed var(--td-component-border);margin-top:var(--td-comp-margin-xxl);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);transition:border .2s linear}.t-upload__flow-card-area:hover{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__icon-delete,.t-upload__single-input-clear{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__icon-delete:hover,.t-upload__single-input-clear:hover{color:var(--td-text-color-secondary);transition:color .2s linear}.t-icon.t-upload__single-input-clear{display:none}.t-upload__single-input-preview:hover .t-upload__single-input-clear{display:initial}.t-upload__single-input-preview:hover .t-upload__status-icon{display:none}.t-upload .t-upload__single-name{color:var(--td-text-color-secondary)}.t-upload .t-upload__file-thumbnail{align-items:center;cursor:pointer;display:flex;height:var(--td-comp-size-xxl);justify-content:center;margin-right:var(--td-comp-paddingLR-s);width:var(--td-comp-size-xxl)}.t-upload .t-upload__file-thumbnail>svg{color:var(--td-text-color-placeholder);font-size:var(--td-comp-size-s)}.t-upload__card-name{margin-top:8px}.t-upload--theme-file-input{width:100%}.t-upload__dragger-btns>.t-button{padding:0}.t-upload__file-info{align-items:center;display:flex}.t-upload__card-container.t-is-disabled{cursor:not-allowed}.t-upload__card-container.t-is-disabled .t-icon,.t-upload__card-container.t-is-disabled .t-upload__add-text{color:var(--td-text-color-disabled)} +/*# sourceMappingURL=tdesign.min.css.map */ \ No newline at end of file diff --git a/docs/assets/css/tdesign.min.css.map b/docs/assets/css/tdesign.min.css.map new file mode 100644 index 0000000..f23d831 --- /dev/null +++ b/docs/assets/css/tdesign.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../packages/common/style/web/_global.less","_global.less","../../packages/common/style/web/mixins/_scrollbar.less","../../packages/common/style/web/theme/_light.less","_index.less","../../packages/common/style/web/theme/_dark.less","../../packages/common/style/web/theme/_radius.less","../../packages/common/style/web/theme/_font.less","../../packages/common/style/web/theme/_size.less","../../packages/common/style/web/components/loading/_index.less","../../packages/common/style/web/mixins/_reset.less","../../packages/common/style/web/components/button/_index.less","../../packages/common/style/web/components/button/_mixin.less","index.css","../../packages/common/style/web/components/link/_index.less","../../packages/common/style/web/components/grid/_index.less","../../packages/common/style/web/components/grid/_mixin.less","../../packages/common/style/web/components/layout/_index.less","../../packages/common/style/web/components/divider/_index.less","../../packages/common/style/web/components/space/_index.less","../../packages/common/style/web/components/descriptions/_index.less","../../packages/common/style/web/components/descriptions/_mixin.less","../../packages/common/style/web/components/affix/_index.less","../../packages/common/style/web/components/popup/_mixin.less","../../packages/common/style/web/components/popup/_index.less","../../packages/common/style/web/components/anchor/_index.less","../../packages/common/style/web/components/tooltip/_index.less","../../packages/common/style/web/components/breadcrumb/_mixin.less","../../packages/common/style/web/components/breadcrumb/_index.less","../../packages/common/style/web/components/dropdown/_index.less","../../packages/common/style/web/components/tabs/_index.less","../../packages/common/style/web/components/tabs/_mixin.less","../../packages/common/style/web/components/menu/_index.less","../../packages/common/style/web/mixins/_layout.less","../../packages/common/style/web/components/input/_mixin.less","../../packages/common/style/web/utilities/_tips.less","../../packages/common/style/web/mixins/_text.less","../../packages/common/style/web/components/input/_index.less","../../packages/common/style/web/components/input-number/_index.less","../../packages/common/style/web/components/tag/_index.less","../../packages/common/style/web/utilities/_animation.less","../../packages/common/style/web/components/tag-input/_index.less","../../packages/common/style/web/components/tag-input/_var.less","../../packages/common/style/web/components/select-input/_index.less","../../packages/common/style/web/components/checkbox/_index.less","../../packages/common/style/web/mixins/_focus.less","../../packages/common/style/web/components/select/_index.less","../../packages/common/style/web/components/input-adornment/_index.less","../../packages/common/style/web/components/pagination/_mini.less","../../packages/common/style/web/components/pagination/_index.less","../../packages/common/style/web/components/pagination/_mixin.less","../../packages/common/style/web/components/steps/_mixin.less","../../packages/common/style/web/components/steps/_index.less","../../packages/common/style/web/components/sticky-tool/_index.less","../../packages/common/style/web/components/sticky-tool/_mixin.less","../../packages/common/style/web/components/back-top/_index.less","../../packages/common/style/web/components/back-top/_mixin.less","../../packages/common/style/web/components/auto-complete/_index.less","../../packages/common/style/web/components/cascader/_index.less","../../packages/common/style/web/components/range-input/_mixin.less","../../packages/common/style/web/components/range-input/_index.less","../../packages/common/style/web/components/date-picker/_index.less","../../packages/common/style/web/components/form/_index.less","../../packages/common/style/web/components/form/_mixin.less","../../packages/common/style/web/components/radio/_index.less","../../packages/common/style/web/components/slider/_index.less","../../packages/common/style/web/components/switch/_index.less","../../packages/common/style/web/components/textarea/_index.less","../../packages/common/style/web/components/textarea/_mixin.less","../../packages/common/style/web/components/transfer/_index.less","../../packages/common/style/web/components/time-picker/_mixin.less","../../packages/common/style/web/components/time-picker/_index.less","../../packages/common/style/web/components/tree/_index.less","../../packages/common/style/web/components/tree-select/_index.less","../../packages/common/style/web/components/color-picker/_index.less","../../packages/common/style/web/components/image/_index.less","../../packages/common/style/web/components/avatar/_index.less","../../packages/common/style/web/components/avatar/_mixin.less","../../packages/common/style/web/components/badge/_index.less","../../packages/common/style/web/components/calendar/_index.less","../../packages/common/style/web/components/card/_index.less","../../packages/common/style/web/components/comment/_index.less","../../packages/common/style/web/components/empty/_index.less","../../packages/common/style/web/components/dialog/_animate.less","../../packages/common/style/web/components/dialog/_index.less","../../packages/common/style/web/components/image-viewer/_index.less","../../packages/common/style/web/components/list/_index.less","../../packages/common/style/web/components/progress/_index.less","../../packages/common/style/web/components/skeleton/_var.less","../../packages/common/style/web/components/skeleton/_index.less","../../packages/common/style/web/components/statistic/_index.less","../../packages/common/style/web/components/swiper/_index.less","../../packages/common/style/web/components/swiper/_mixin.less","../../packages/common/style/web/components/table/_index.less","../../packages/common/style/web/components/table/_mixin.less","../../packages/common/style/web/components/timeline/_index.less","../../packages/common/style/web/components/collapse/_index.less","../../packages/common/style/web/components/rate/_index.less","../../packages/common/style/web/components/typography/_index.less","../../packages/common/style/web/components/alert/_index.less","../../packages/common/style/web/components/drawer/_animate.less","../../packages/common/style/web/components/drawer/_index.less","../../packages/common/style/web/components/guide/_index.less","../../packages/common/style/web/components/message/_index.less","../../packages/common/style/web/components/message/_mixin.less","../../packages/common/style/web/components/notification/_index.less","../../packages/common/style/web/components/notification/_mixin.less","../../packages/common/style/web/components/popconfirm/_index.less","../../packages/common/style/web/components/upload/_index.less","../../packages/common/style/web/components/upload/_mixin.less"],"names":[],"mappings":"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J,CO/GG,8DACC,6CPiHJ,CO/CK,gDAzDH,wCAAA,CAAA,oCAAA,CA0DI,+BPmDN,CO1IE,oHAEE,8CP4IJ,COrIG,6DACC,wCPuIJ,CO9HG,8DACC,iDPgIJ,COpJE,oHAEE,0CPsJJ,CO/IG,6DACC,oCPiJJ,COxIG,8DACC,6CP0IJ,COlEK,+CA/DH,sCAAA,CAAA,kCAAA,CAgEI,+BPsEN,COnKE,kHAEE,4CPqKJ,CO9JG,4DACC,sCPgKJ,COvJG,6DACC,+CPyJJ,CO7KE,kHAEE,wCP+KJ,COxKG,4DACC,kCP0KJ,COjKG,6DACC,2CPmKJ,COrFK,wCArEH,4BAAA,CAAA,sCAAA,CAAA,+BP+JF,CO5LE,oGAEE,4BP8LJ,COvLG,oGACC,4BP4LJ,COxLG,sDACC,oCP2LJ,CO1ME,oGAEE,iCP4MJ,COzME,+CACE,kCP2MJ,COxMG,qDACC,+BP0MJ,COtMG,sDACC,yBPyMJ,COxNE,oGAEE,wCP0NJ,COvNE,+CACE,yCPyNJ,COtNG,qDACC,sCPwNJ,COpNG,sDAEC,4BAAA,CADA,gCPuNJ,CO/HO,gEA1EL,kCAAA,CAAA,2BP6MF,CO1OE,oJAEE,iCP4OJ,COzOE,uEACE,kCP2OJ,COxOG,6EACC,2BP0OJ,COtOG,8EACC,yBPyOJ,COxPE,oJAEE,wCP0PJ,COvPE,uEACE,yCPyPJ,COtPG,6EACC,kCPwPJ,COpPG,8EAEC,4BAAA,CADA,gCPuPJ,CO1JO,gEA/EL,oCAAA,CAAA,6BP6OF,CO1QE,oJAEE,mCP4QJ,COzQE,uEACE,oCP2QJ,COxQG,6EACC,6BP0QJ,COtQG,8EACC,yBPyQJ,COxRE,oJAEE,0CP0RJ,COvRE,uEACE,2CPyRJ,COtRG,6EACC,oCPwRJ,COpRG,8EAEC,4BAAA,CADA,gCPuRJ,COrLO,gEApFL,oCAAA,CAAA,6BP6QF,CO1SE,oJAEE,mCP4SJ,COzSE,uEACE,oCP2SJ,COxSG,6EACC,6BP0SJ,COtSG,8EACC,yBPySJ,COxTE,oJAEE,0CP0TJ,COvTE,uEACE,2CPyTJ,COtTG,6EACC,oCPwTJ,COpTG,8EAEC,4BAAA,CADA,gCPuTJ,COhNO,+DAzFL,kCAAA,CAAA,2BP6SF,CO1UE,kJAEE,iCP4UJ,COzUE,sEACE,kCP2UJ,COxUG,4EACC,2BP0UJ,COtUG,6EACC,yBPyUJ,COxVE,kJAEE,wCP0VJ,COvVE,sEACE,yCPyVJ,COtVG,4EACC,kCPwVJ,COpVG,6EAEC,4BAAA,CADA,gCPuVJ,COxOE,2BAjGA,oDAAA,CAAA,2CAAA,CAAA,kCAAA,CCbA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDR6VF,COjPE,yECxGE,wCR6VJ,COnXE,0EAEE,iCPqXJ,CO9WG,wCACC,kCPgXJ,COvWG,yCACC,mCPyWJ,CO7XE,0EAEE,oDP+XJ,COxXG,wCACC,oDP0XJ,COjXG,yCACC,sDPmXJ,COvYE,0EAEE,wCPyYJ,COxXG,iFACC,2CP6XJ,CO5QK,mDAxGH,kCAAA,CAAA,2BPwXF,COrZE,0HAEE,iCPuZJ,COhZG,gEACC,2BPkZJ,COzYG,iEACC,oCP2YJ,CO/ZE,0HAEE,wCPiaJ,CO1ZG,gEACC,kCP4ZJ,COnZG,iEACC,2CPqZJ,CO/RK,mDA7GH,oCAAA,CAAA,6BPgZF,CO7aE,0HAEE,mCP+aJ,COxaG,gEACC,6BP0aJ,COjaG,iEACC,sCPmaJ,COvbE,0HAEE,0CPybJ,COlbG,gEACC,oCPobJ,CO3aG,iEACC,6CP6aJ,COlTK,mDAlHH,oCAAA,CAAA,6BPwaF,COrcE,0HAEE,mCPucJ,COhcG,gEACC,6BPkcJ,COzbG,iEACC,sCP2bJ,CO/cE,0HAEE,0CPidJ,CO1cG,gEACC,oCP4cJ,COncG,iEACC,6CPqcJ,COrUK,kDAvHH,kCAAA,CAAA,2BPgcF,CO7dE,wHAEE,iCP+dJ,COxdG,+DACC,2BP0dJ,COjdG,gEACC,oCPmdJ,COveE,wHAEE,wCPyeJ,COleG,+DACC,kCPoeJ,CO3dG,gEACC,2CP6dJ,COxVK,2CA5HH,4BAAA,CAAA,sCAAA,CAAA,+BPydF,COtfE,0GAEE,4BPwfJ,COjfG,0GACC,4BPsfJ,COlfG,yDACC,oCPqfJ,COpgBE,0GAEE,iCPsgBJ,COngBE,kDACE,kCPqgBJ,COlgBG,wDACC,+BPogBJ,COhgBG,yDACC,yBPmgBJ,COlhBE,0GAEE,wCPohBJ,COjhBE,kDACE,yCPmhBJ,COhhBG,wDACC,sCPkhBJ,CO9gBG,yDAEC,4BAAA,CADA,gCPihBJ,COlYO,mEAjIL,kCAAA,CAAA,2BPugBF,COpiBE,0JAEE,iCPsiBJ,COniBE,0EACE,kCPqiBJ,COliBG,gFACC,2BPoiBJ,COhiBG,iFACC,yBPmiBJ,COljBE,0JAEE,wCPojBJ,COjjBE,0EACE,yCPmjBJ,COhjBG,gFACC,kCPkjBJ,CO9iBG,iFAEC,4BAAA,CADA,gCPijBJ,CO7ZO,mEAtIL,oCAAA,CAAA,6BPuiBF,COpkBE,0JAEE,mCPskBJ,COnkBE,0EACE,oCPqkBJ,COlkBG,gFACC,6BPokBJ,COhkBG,iFACC,yBPmkBJ,COllBE,0JAEE,0CPolBJ,COjlBE,0EACE,2CPmlBJ,COhlBG,gFACC,oCPklBJ,CO9kBG,iFAEC,4BAAA,CADA,gCPilBJ,COxbO,mEA3IL,oCAAA,CAAA,6BPukBF,COpmBE,0JAEE,mCPsmBJ,COnmBE,0EACE,oCPqmBJ,COlmBG,gFACC,6BPomBJ,COhmBG,iFACC,yBPmmBJ,COlnBE,0JAEE,0CPonBJ,COjnBE,0EACE,2CPmnBJ,COhnBG,gFACC,oCPknBJ,CO9mBG,iFAEC,4BAAA,CADA,gCPinBJ,COndO,kEAhJL,kCAAA,CAAA,2BPumBF,COpoBE,wJAEE,iCPsoBJ,COnoBE,yEACE,kCPqoBJ,COloBG,+EACC,2BPooBJ,COhoBG,gFACC,yBPmoBJ,COlpBE,wJAEE,wCPopBJ,COjpBE,yEACE,yCPmpBJ,COhpBG,+EACC,kCPkpBJ,CO9oBG,gFAEC,4BAAA,CADA,gCPipBJ,CO3eE,0BAxJA,oDAAA,CAAA,2CAAA,CA8JE,mBAAA,CA9JF,kCAAA,CCbA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDRwpBF,COrfE,uEC/JE,wCRwpBJ,CO9qBE,wEAEE,iCPgrBJ,COzqBG,uCACC,kCP2qBJ,COlqBG,wCACC,mCPoqBJ,COxrBE,wEAEE,oDP0rBJ,COnrBG,uCACC,oDPqrBJ,CO5qBG,wCACC,sDP8qBJ,COlsBE,wEAEE,wCPosBJ,COnrBG,+EACC,2CPwrBJ,CO/gBK,kDAhKH,kCAAA,CAAA,2BPmrBF,COhtBE,wHAEE,iCPktBJ,CO3sBG,+DACC,2BP6sBJ,COpsBG,gEACC,oCPssBJ,CO1tBE,wHAEE,wCP4tBJ,COrtBG,+DACC,kCPutBJ,CO9sBG,gEACC,2CPgtBJ,COliBK,kDArKH,oCAAA,CAAA,6BP2sBF,COxuBE,wHAEE,mCP0uBJ,COnuBG,+DACC,6BPquBJ,CO5tBG,gEACC,sCP8tBJ,COlvBE,wHAEE,0CPovBJ,CO7uBG,+DACC,oCP+uBJ,COtuBG,gEACC,6CPwuBJ,COrjBK,kDA1KH,oCAAA,CAAA,6BPmuBF,COhwBE,wHAEE,mCPkwBJ,CO3vBG,+DACC,6BP6vBJ,COpvBG,gEACC,sCPsvBJ,CO1wBE,wHAEE,0CP4wBJ,COrwBG,+DACC,oCPuwBJ,CO9vBG,gEACC,6CPgwBJ,COxkBK,iDA/KH,kCAAA,CAAA,2BP2vBF,COxxBE,sHAEE,iCP0xBJ,COnxBG,8DACC,2BPqxBJ,CO5wBG,+DACC,oCP8wBJ,COlyBE,sHAEE,wCPoyBJ,CO7xBG,8DACC,kCP+xBJ,COtxBG,+DACC,2CPwxBJ,CO3lBK,0CApLH,4BAAA,CAAA,sCAAA,CAAA,+BPoxBF,COjzBE,wGAEE,4BPmzBJ,CO5yBG,wGACC,4BPizBJ,CO7yBG,wDACC,oCPgzBJ,CO/zBE,wGAEE,iCPi0BJ,CO9zBE,iDACE,kCPg0BJ,CO7zBG,uDACC,+BP+zBJ,CO3zBG,wDACC,yBP8zBJ,CO70BE,wGAEE,wCP+0BJ,CO50BE,iDACE,yCP80BJ,CO30BG,uDACC,sCP60BJ,COz0BG,wDAEC,4BAAA,CADA,gCP40BJ,COroBO,kEAzLL,kCAAA,CAAA,2BPk0BF,CO/1BE,wJAEE,iCPi2BJ,CO91BE,yEACE,kCPg2BJ,CO71BG,+EACC,2BP+1BJ,CO31BG,gFACC,yBP81BJ,CO72BE,wJAEE,wCP+2BJ,CO52BE,yEACE,yCP82BJ,CO32BG,+EACC,kCP62BJ,COz2BG,gFAEC,4BAAA,CADA,gCP42BJ,COhqBO,kEA9LL,oCAAA,CAAA,6BPk2BF,CO/3BE,wJAEE,mCPi4BJ,CO93BE,yEACE,oCPg4BJ,CO73BG,+EACC,6BP+3BJ,CO33BG,gFACC,yBP83BJ,CO74BE,wJAEE,0CP+4BJ,CO54BE,yEACE,2CP84BJ,CO34BG,+EACC,oCP64BJ,COz4BG,gFAEC,4BAAA,CADA,gCP44BJ,CO3rBO,kEAnML,oCAAA,CAAA,6BPk4BF,CO/5BE,wJAEE,mCPi6BJ,CO95BE,yEACE,oCPg6BJ,CO75BG,+EACC,6BP+5BJ,CO35BG,gFACC,yBP85BJ,CO76BE,wJAEE,0CP+6BJ,CO56BE,yEACE,2CP86BJ,CO36BG,+EACC,oCP66BJ,COz6BG,gFAEC,4BAAA,CADA,gCP46BJ,COttBO,iEAxML,kCAAA,CAAA,2BPk6BF,CO/7BE,sJAEE,iCPi8BJ,CO97BE,wEACE,kCPg8BJ,CO77BG,8EACC,2BP+7BJ,CO37BG,+EACC,yBP87BJ,CO78BE,sJAEE,wCP+8BJ,CO58BE,wEACE,yCP88BJ,CO38BG,8EACC,kCP68BJ,COz8BG,+EAEC,4BAAA,CADA,gCP48BJ,CO9uBE,wBAhNA,4BAAA,CAAA,wBAAA,CAAA,kCAAA,CCbA,+BAAA,CADA,4BAAA,CAEA,mDAAA,CACA,oDRk9BF,COvvBE,mECvNE,wCRk9BJ,COx+BE,oEAEE,kCP0+BJ,COn+BG,qCACC,kCPq+BJ,CO59BG,sCACC,mCP89BJ,COl/BE,oEAEE,mDPo/BJ,COn+BG,2EACC,4BPw+BJ,CO5/BE,oEAEE,+CP8/BJ,CO7+BG,2EACC,wBPk/BJ,COnxBK,gDAtNH,2BP4+BF,COzgCE,oHAEE,iCP2gCJ,COpgCG,6DACC,2BPsgCJ,CO7/BG,8DACC,oCP+/BJ,CO5xBK,gDA1NH,6BPy/BF,COthCE,oHAEE,mCPwhCJ,COjhCG,6DACC,6BPmhCJ,CO1gCG,8DACC,sCP4gCJ,COryBK,gDA9NH,6BPsgCF,COniCE,oHAEE,mCPqiCJ,CO9hCG,6DACC,6BPgiCJ,COvhCG,8DACC,sCPyhCJ,CO9yBK,+CAlOH,2BPmhCF,COhjCE,kHAEE,iCPkjCJ,CO3iCG,4DACC,2BP6iCJ,COpiCG,6DACC,oCPsiCJ,COvzBK,wCACC,eAAA,CAvOJ,+BPiiCF,CO9jCE,oGAEE,iCPgkCJ,CO7jCE,+CACE,kCP+jCJ,CO5jCG,qDACC,+BP8jCJ,CO1jCG,sDAEC,4BAAA,CADA,yBP6jCJ,COp0BO,gEA3OL,2BPkjCF,CO/kCE,oJAEE,iCPilCJ,CO9kCE,uEACE,kCPglCJ,CO7kCG,6EACC,2BP+kCJ,CO3kCG,8EAEC,4BAAA,CADA,yBP8kCJ,COj1BO,gEA/OL,6BPmkCF,COhmCE,oJAEE,mCPkmCJ,CO/lCE,uEACE,oCPimCJ,CO9lCG,6EACC,6BPgmCJ,CO5lCG,8EAEC,4BAAA,CADA,yBP+lCJ,CO91BO,gEAnPL,6BPolCF,COjnCE,oJAEE,mCPmnCJ,COhnCE,uEACE,oCPknCJ,CO/mCG,6EACC,6BPinCJ,CO7mCG,8EAEC,4BAAA,CADA,yBPgnCJ,CO32BO,+DAvPL,2BPqmCF,COloCE,kJAEE,iCPooCJ,COjoCE,sEACE,kCPmoCJ,COhoCG,4EACC,2BPkoCJ,CO9nCG,6EAEC,4BAAA,CADA,yBPioCJ,COt3BG,+CAEC,kBPw3BJ,COr3BG,mBC/QD,8BAAA,CADA,6BAAA,CAEA,mDAAA,CACA,oDRwoCF,CO33BG,yDCzQC,yCRwoCJ,CO33BG,mBCnRD,8BAAA,CADA,6BAAA,CAEA,oDAAA,CACA,qDRkpCF,COj4BG,yDC7QC,yCRkpCJ,COj4BE,wBAEE,SAAA,CADA,2BPo4BJ,COj4BK,iCAEC,SAAA,CADA,4BPo4BN,COh4BK,iCAEC,SAAA,CADA,4BPm4BN,CO93BE,uBACE,oCPg4BJ,CO93BK,gCACC,4CPg4BN,CO73BK,gCACC,4CP+3BN,CO33BE,wBAIE,2CAAA,CAFA,SAAA,CACA,iBAAA,CAFA,2BPg4BJ,COj4BE,mEAWI,wCP43BN,COz3BK,iCAEC,4CAAA,CADA,4BP43BN,COx3BK,iCAGC,4CAAA,CADA,SAAA,CADA,4BP43BN,COt3BG,4BACC,YAAA,CACA,UPw3BJ,COp3BC,iBACC,sCPs3BF,COn3BC,oDACC,kDPq3BF,COl3BC,kEACC,kDPo3BF,COj3BC,0FACC,2CPm3BF,COh3BC,0FACC,6CPk3BF,CO/2BC,0FACC,6CPi3BF,CO92BC,yFACC,2CPg3BF,CS5uCA,QACE,oBAAqB,CAGrB,UAAW,CAFX,qBAAsB,CACtB,SAEF,CACA,eACE,iBACF,CAIA,QACE,iBACF,CACA,4BAEE,cACF,CACA,4BAEE,cACF,CACA,4BAEE,cACF,CCqEC,QAGC,kBAAA,CADA,cAAA,CADA,mBAAA,CAbA,+BAAA,CAkBA,YAAA,CACA,SAAA,CAHA,iBAAA,CACA,oBAAA,CAGA,yBVrGF,CU6FC,6BARG,YAAA,CADA,oCVhFJ,CUyFC,6BAHG,YAAA,CADA,mCVjFJ,CUiGG,iBAxBD,8BVtEF,CU8FG,sCApBC,YAAA,CADA,qCVrEJ,CU0FG,sCAfC,YAAA,CADA,oCVtEJ,CUyFG,iBA3BD,8BV3DF,CUsFG,sCAvBC,YAAA,CADA,oCV1DJ,CUkFG,sCAlBC,YAAA,CADA,mCV3DJ,CUkFE,uBA9GA,kCV+BF,CU7BE,8BACE,kCV+BJ,CU3BI,qDAOE,oDAAA,CADA,QAAA,CALA,UAAA,CAIA,QAAA,CAFA,MAAA,CAMA,SAAA,CAPA,iBAAA,CAEA,OAAA,CAMA,yBV4BN,CUzBI,2DACE,SV2BN,CUxBI,4DAEE,yCAAA,CADA,SV2BN,CUrBI,iDACE,iCVuBN,CUpBK,sEACC,wCVsBN,CUpBK,uEACC,yCVsBN,CUnBI,kDACE,kCVqBN,CUhBI,4CAQE,oDAAA,CAFA,QAAA,CALA,UAAA,CAIA,QAAA,CAFA,MAAA,CAIA,SAAA,CALA,iBAAA,CAEA,OAAA,CAKA,yBVkBN,CUdG,qCAEC,mCAAA,CADA,kBViBJ,CUdI,uFAEE,mCVgBN,CUdK,0DACC,0CVgBN,CU4BE,uBAlHA,2BVyFF,CUvFE,8BACE,kCVyFJ,CUrFI,qDAOE,6CAAA,CADA,QAAA,CALA,UAAA,CAIA,QAAA,CAFA,MAAA,CAMA,SAAA,CAPA,iBAAA,CAEA,OAAA,CAMA,yBVsFN,CUnFI,2DACE,SVqFN,CUlFI,4DAEE,yCAAA,CADA,SVqFN,CU/EI,iDACE,iCViFN,CU9EK,sEACC,wCVgFN,CU9EK,uEACC,yCVgFN,CU7EI,kDACE,kCV+EN,CU1EI,4CAQE,6CAAA,CAFA,QAAA,CALA,UAAA,CAIA,QAAA,CAFA,MAAA,CAIA,SAAA,CALA,iBAAA,CAEA,OAAA,CAKA,yBV4EN,CUxEG,qCAEC,oCAAA,CADA,kBV2EJ,CUxEI,uFAEE,oCV0EN,CUxEK,0DACC,2CV0EN,CU1BE,uBAtHA,6BVmJF,CUjJE,8BACE,oCVmJJ,CU/II,qDAOE,+CAAA,CADA,QAAA,CALA,UAAA,CAIA,QAAA,CAFA,MAAA,CAMA,SAAA,CAPA,iBAAA,CAEA,OAAA,CAMA,yBVgJN,CU7II,2DACE,SV+IN,CU5II,4DAEE,2CAAA,CADA,SV+IN,CUzII,iDACE,mCV2IN,CUxIK,sEACC,0CV0IN,CUxIK,uEACC,2CV0IN,CUvII,kDACE,oCVyIN,CUpII,4CAQE,+CAAA,CAFA,QAAA,CALA,UAAA,CAIA,QAAA,CAFA,MAAA,CAIA,SAAA,CALA,iBAAA,CAEA,OAAA,CAKA,yBVsIN,CUlIG,qCACC,kBVqIJ,CUlII,4HAFA,sCVwIJ,CUlIK,0DACC,6CVoIN,CUhFE,sBA1HA,2BV6MF,CU3ME,6BACE,kCV6MJ,CUzMI,oDAOE,6CAAA,CADA,QAAA,CALA,UAAA,CAIA,QAAA,CAFA,MAAA,CAMA,SAAA,CAPA,iBAAA,CAEA,OAAA,CAMA,yBV0MN,CUvMI,0DACE,SVyMN,CUtMI,2DAEE,yCAAA,CADA,SVyMN,CUnMI,gDACE,iCVqMN,CUlMK,qEACC,wCVoMN,CUlMK,sEACC,yCVoMN,CUjMI,iDACE,kCVmMN,CU9LI,2CAQE,6CAAA,CAFA,QAAA,CALA,UAAA,CAIA,QAAA,CAFA,MAAA,CAIA,SAAA,CALA,iBAAA,CAEA,OAAA,CAKA,yBVgMN,CU5LG,oCACC,kBV+LJ,CU5LI,yHAFA,oCVkMJ,CU5LK,yDACC,2CV8LN,CUtIE,uBA9HA,6BVuQF,CUrQE,8BACE,oCVuQJ,CUnQI,qDAOE,+CAAA,CADA,QAAA,CALA,UAAA,CAIA,QAAA,CAFA,MAAA,CAMA,SAAA,CAPA,iBAAA,CAEA,OAAA,CAMA,yBVoQN,CUjQI,2DACE,SVmQN,CUhQI,4DAEE,2CAAA,CADA,SVmQN,CU7PI,iDACE,mCV+PN,CU5PK,sEACC,0CV8PN,CU5PK,uEACC,2CV8PN,CU3PI,kDACE,oCV6PN,CUxPI,4CAQE,+CAAA,CAFA,QAAA,CALA,UAAA,CAIA,QAAA,CAFA,MAAA,CAIA,SAAA,CALA,iBAAA,CAEA,OAAA,CAKA,yBV0PN,CUtPG,qCACC,kBVyPJ,CUtPI,4HAFA,sCV4PJ,CUtPK,0DACC,6CVwPN,CW/TC,OLNC,qBAAA,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/C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,SpBsBF,CoBlBE,uBAME,uCAAA,CAJA,UAAA,CAEA,UAAA,CAHA,iBAAA,CAIA,uBAAA,CAFA,SpBuBJ,CmB/DG,uDAEG,qCnBgEN,CmB9DM,8DACE,qCnBgER,CmBzDG,0DAEG,kCnB0DN,CmBxDM,iEACE,kCnB0DR,CmBnDG,wDAEG,oCnBoDN,CmBlDM,+DACE,oCnBoDR,CmBjDM,8DACE,enBmDR,CmB5CG,yDAEG,mCnB6CN,CmB3CM,gEACE,mCnB6CR,CmB1CM,+DACE,enB4CR,CmBpCI,4DACE,2BAAA,CACA,oEnBsCN,CmBlCG,0DACC,QnBoCJ,CmBjCG,oDACC,QAAA,CACA,gBnBmCJ,CmBhCG,wDACC,sBnBkCJ,CmB7BG,wDACC,QnB+BJ,CmB7BI,+DACE,+BAAA,CACA,kEnB+BN,CmB3BG,6DACC,QnB6BJ,CmB1BG,uDACC,QAAA,CACA,gBnB4BJ,CmBzBG,2DACC,sBnB2BJ,CmBtBG,sDACC,UnBwBJ,CmBtBI,6DACE,iEnBwBN,CmBpBG,2DACC,OnBsBJ,CmBnBG,qDAEC,eAAA,CADA,OnBsBJ,CmBlBG,yDACC,qBnBoBJ,CmBfG,uDACC,SnBiBJ,CmBfI,8DACE,qEnBiBN,CmBbG,4DACC,OnBeJ,CmBZG,sDAEC,eAAA,CADA,OnBeJ,CmBXG,0DACC,qBnBaJ,CoBnGC,kHAIC,SAAA,CACA,iBpBqGF,CoBlGC,mHAIC,SAAA,CAEA,cAAA,CADA,kBpBqGF,CoBjGC,iCACC,6BpBmGF,CoBhGC,iCACC,sFpBkGF,CmBEG,oEACC,4FnBAJ,CmBGG,oEACC,+GnBDJ,CmBSI,2CACE,GACE,0DnBPN,CmBUI,GACE,oDnBRN,CACF,CmBWI,4CACE,GACE,oDnBTN,CmBYI,GACE,0DnBVN,CACF,CmBpBG,uEACC,+FnBsBJ,CmBnBG,uEACC,kHnBqBJ,CmBbI,8CACE,GACE,8CnBeN,CmBZI,GACE,oDnBcN,CACF,CmBXI,+CACE,GACE,oDnBaN,CmBVI,GACE,8CnBYN,CACF,CqBtNC,UAGC,uCAAA,CAGA,uCAAA,CfTA,qBAAA,CeWA,kCAAA,CACA,+BAAA,CfTA,eAAA,CAFA,QAAA,CACA,SAAA,CeMA,iBAAA,CAEA,WrBJF,CqBHC,yBAaG,2BrBPJ,CqBWE,gBAME,2CAAA,CACA,cAAA,CAFA,WAAA,CAFA,MAAA,CAFA,iBAAA,CACA,KAAA,CAEA,SrBNJ,CqBWI,+BAEE,aAAA,CACA,QAAA,CACA,SAAA,CAHA,iBAAA,CAIA,+CrBTN,CqBII,sDAUI,sCAAA,CADA,WAAA,CADA,SrBPR,CqBeE,gBAGE,SAAA,CAGA,YAAA,CACA,qBAAA,CANA,+DAAA,CAIA,2DrBbJ,CqBiBK,4BACC,erBfN,CqBmBE,qBAKE,kCAAA,CAJA,oBAAA,CAEA,eAAA,CADA,iBAAA,CAKA,kBAAA,CADA,oBAAA,CAFA,oBrBdJ,CqB9CC,YAmEG,2BrBlBJ,CqBjDC,kBAuEG,2BAAA,CACA,crBnBJ,CqBrDC,mBA4EG,kCrBpBJ,CqBuBG,mBACC,WrBrBJ,CqBwBG,mBACC,WrBtBJ,CqB0BC,kBAGC,kCAAA,CAFA,cAAA,CACA,+BrBvBF,CqB0BE,mBACE,GACE,SrBxBJ,CqB2BE,GAEE,YAAA,CADA,SrBxBJ,CACF,CqBYC,kCAoBG,YAAA,CACA,qCrB7BJ,CqBgCG,wCACC,oBrB9BJ,CqBmCE,+BAQE,gCAAA,CACA,4BAAA,CAHA,sCAAA,CADA,qCAAA,CAHA,UAAA,CADA,oBAAA,CAGA,UAAA,CAGA,qBAAA,CAJA,SrB3BJ,CsB9FC,6BAGG,QAAA,CAMA,qCAAA,CADA,qBAAA,CAEA,kCAAA,CARA,oBAAA,CAGA,iBAAA,CACA,eAAA,CACA,qBAAA,CAHA,YtBFJ,CsBWE,sCAGI,kCAAA,CACA,oKAAA,CAFA,+BtBRN,CsBaK,wEACC,uFtBXN,CsBcK,yEACC,uFtBZN,CsBeK,uEACC,wFtBbN,CsBgBK,0EACC,sFtBdN,CsBkBE,sCAGI,sCAAA,CADA,2BtBhBN,CsBqBE,sCAGI,wCAAA,CADA,6BtBnBN,CsBwBE,qCAGI,sCAAA,CADA,2BtBtBN,CsB2BE,sCAGI,wCAAA,CADA,6BtBzBN,CsBnCC,2BAkEG,kBAAA,CACA,WtB5BJ,CsB8BI,kCACE,kBtB5BN,CsBgCE,0GAGI,etB/BN,CuBjCA,uBACE,GACE,iCvBpBF,CuBuBA,GACE,kCvBrBF,CACF,CwBCC,cDLC,kBAAA,CjBEA,qBAAA,CADA,kCAAA,CiBFA,YAAA,CADA,+BAAA,CjBOA,eAAA,CAFA,QAAA,CACA,SNUF,CwBLE,yBAGE,kBAAA,CADA,YAAA,CADA,iCxBSJ,CwBAE,qDAJI,sCxBaN,CwBTE,oBAEE,kBAAA,CADA,YAAA,CAGA,oBxBKJ,CwBHK,iCACC,kCxBKN,CwBNK,yCAIG,sCxBKR,CwBDI,+BACE,kCxBGN,CwBJI,wDAII,YxBGR,CwBrBE,4BAuBI,wCxBCN,CwBxBE,4BA2BI,aAAA,CACA,oBxBAN,CwBEM,kCACE,2BxBAR,CwB/BE,mCAoCI,kBxBFN,CwBlCE,wDAuCM,mCxBFR,CwBIQ,8DACE,mCAAA,CACA,kBxBFV,CwBKQ,+DACE,cxBHV,CwBiBI,sDAGE,sCAAA,CD/EJ,oBAAA,CC8EI,aAAA,CADA,iCAAA,CD5EJ,qBvBwEF,CwBWE,qBDpFA,oBAAA,CCqFE,+BAAA,CDpFF,qBAAA,CCqFE,oBxBPJ,CwBKE,6BAMI,iCxBRN,CwBaE,sBACE,iBxBXJ,CwBaI,kDAGI,axBbR,CwBkBM,yCAEI,2BxBjBV,CwBuBE,sBAOE,uCAAA,CACA,6BAAA,CAPA,YAAA,CAGA,QAAA,CAEA,eAAA,CAJA,iBAAA,CACA,QAAA,CAEA,0BAAA,CAIA,UxBrBJ,CwBuBI,2BAGE,kCAAA,CADA,+BAAA,CDzHJ,eAAA,CCwHI,WAAA,CDzHJ,sBAAA,CAEA,kBvBuGF,CwByBO,wEACC,2BxBpBR,CwB0BE,yBASE,uCAAA,CACA,+CAAA,CANA,WAAA,CAOA,6BAAA,CAHA,kCAAA,CAPA,YAAA,CAEA,QAAA,CAIA,WAAA,CALA,iBAAA,CAGA,0BAAA,CACA,WAAA,CAMA,UxBxBJ,CwB0BI,gCAUE,6EAAA,CAFA,kBAAA,CACA,sBAAA,CANA,WAAA,CAFA,UAAA,CAMA,QAAA,CAHA,QAAA,CACA,gBAAA,CAHA,iBAAA,CAIA,OAAA,CAKA,UxBxBN,CwB4BE,6BAGE,kBAAA,CADA,YAAA,CADA,iBxBxBJ,CwB4BI,4DAGI,axB5BR,CwBoBE,kDAeI,kBAAA,CADA,YAAA,CADA,eAAA,CAGA,2BxB9BN,CwBgCM,uDDvLJ,eAAA,CADA,sBAAA,CAEA,kBvB2JF,CwB+BM,wDACE,2BAAA,CACA,cxB7BR,CwBgCM,yDD3LJ,gCvB8JF,CyBtKC,YAGC,6CAAA,CAKA,4CAAA,CADA,6BAAA,CnBZA,qBAAA,CmBUA,kCAAA,CnBZA,+BAAA,CmBWA,yCAAA,CnBNA,eAAA,CAFA,QAAA,CACA,SAAA,CmBSA,iBzBHF,CyBQE,8BAFA,qCzBIF,CyBFE,kBAGE,YAAA,CAEA,qBAAA,CAGA,OAAA,CAJA,0BAAA,CAMA,iBAAA,CADA,eAAA,CAFA,+BzBLJ,CFlBE,4BAAA,kBACE,qDAAA,CACA,oBEqBF,CACF,CFlBE,qCAEE,UAAA,CADA,SEqBJ,CFjBE,2CAEE,2BAAA,CACA,0CAAA,CAFA,4BAAA,CAGA,kBEmBJ,CFfE,sHAEE,gDEiBJ,CyBtBE,6BAcI,iCAAA,CADA,yGAAA,CAEA,4CzBYN,CyB3BE,8CAmBI,oCzBWN,CyBLQ,gEACE,sBzBOV,CyBJQ,+DACE,uBzBMV,CyBAE,qBAGE,6CAAA,CAGA,4CAAA,CADA,qCAAA,CADA,6BAAA,CAMA,YAAA,CAEA,kBAAA,CADA,eAAA,CAFA,+BAAA,CADA,iBAAA,CADA,YzBKJ,CFhEE,4BAAA,qBACE,qDAAA,CACA,oBEmEF,CACF,CFhEE,wCAEE,UAAA,CADA,SEmEJ,CF/DE,8CAEE,2BAAA,CACA,0CAAA,CAFA,4BAAA,CAGA,kBEiEJ,CF7DE,4HAEE,gDE+DJ,CyBhCE,wBAgBI,YAAA,CAEA,OAAA,CAHA,eAAA,CAEA,czBqBN,CyBjBI,+BACE,iBzBmBN,CyBzCE,iDA0BI,oCzBkBN,CyBfI,oCACE,qBzBiBN,CyBdI,mCACE,sBzBgBN,CyBZE,kBA8ME,kDAAA,CArMA,kBAAA,CARA,sCAAA,CAEA,cAAA,CAKA,YAAA,CANA,+BAAA,CAGA,YAAA,CAKA,0EAAA,CAJA,wDAAA,CAFA,gBAAA,CAGA,kBzBkBJ,CyBbI,uBAEE,kBAAA,CADA,YAAA,CAGA,wCAAA,CADA,oCzBgBN,CyBZI,gCACE,YzBcN,CyBXI,4BACE,kBzBaN,CyBVI,0BAGE,kBAAA,CAFA,YAAA,CACA,MAAA,CAEA,6BAAA,CACA,czBYN,CyBTI,uBAIE,MAAA,CAHA,eAAA,CACA,sBAAA,CACA,kBzBYN,CyBRK,sEAEG,kBAAA,CAEA,aAAA,CADA,wCzBUR,CyBJI,iCACE,kCzBMN,CyBJM,uCACE,mDzBMR,CyBHM,wCACE,oDzBKR,CyBFO,0DAEC,4CAAA,CADA,2BzBKR,CyBFQ,gEACE,mDzBIV,CyBDQ,iEACE,oDzBGV,CyBCO,4DACC,mCzBCR,CyBCQ,kEACE,mDzBCV,CyBIQ,gEACE,4CAAA,CACA,2BzBFV,CyBOI,iCACE,6BzBLN,CyBOM,uCACE,mDzBLR,CyBQM,wCACE,oDzBNR,CyBSO,0DACC,8CzBPR,CyBSQ,gEACE,mDzBPV,CyBUQ,iEACE,oDzBRV,CyBYO,2DACC,mCzBVR,CyBYQ,iEACE,mDzBVV,CyBeQ,gEACE,8CzBbV,CyBkBI,+BACE,2BzBhBN,CyBkBM,qCACE,mDzBhBR,CyBmBM,sCACE,oDzBjBR,CyBoBO,wDACC,4CzBlBR,CyBoBQ,8DACE,mDzBlBV,CyBqBQ,+DACE,oDzBnBV,CyBuBO,0DACC,mCzBrBR,CyBuBQ,gEACE,mDzBrBV,CyB0BQ,8DACE,4CzBxBV,CyB8BI,iCACE,6BzB5BN,CyB8BM,uCACE,mDzB5BR,CyB+BM,wCACE,oDzB7BR,CyBgCO,0DACC,8CzB9BR,CyBgCQ,gEACE,mDzB9BV,CyBiCQ,iEACE,oDzB/BV,CyBmCO,4DACC,mCzBjCR,CyBmCQ,kEACE,mDzBjCV,CyBsCQ,gEACE,8CzBpCV,C0B1PC,QAIC,6CAAA,CpBTA,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CoBOA,eAAA,CpBNA,SNEF,C0BQK,0BACC,U1BNN,C0BSK,2BACC,W1BPN,C0BCE,wBAUI,wC1BRN,C0BYE,aAEE,eAAA,CADA,iBAAA,CAEA,gB1BVJ,C0BaE,oBAKE,6CAAA,CADA,kDAAA,CAHA,YAAA,CACA,kBAAA,CACA,iB1BTJ,C0BaI,0BACE,MAAA,CACA,S1BXN,C0BcI,2B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BG,aAAA,CADA,kDAAA,CAFA,qCAAA,CACA,iDnCHJ,CmCbC,0BAyBG,cAAA,CADA,+BAAA,CADA,mCAAA,CADA,cAAA,CAIA,8CnCNJ,CmCSE,gBAEE,6CAAA,CADA,kCnCNJ,CmCKE,mCAKI,sCnCPN,CmCSM,yCACE,kCnCPR,CmCWI,uBACE,cnCTN,CmCaK,gCAEC,sDAAA,CACA,uCAAA,CAFA,mCAAA,CAGA,kBnCXN,CmCaM,sCACE,kBnCXR,CmCeQ,8CACE,cnCbV,CmCkBK,+BACC,uCnChBN,CmCuBK,kEAHC,sDnCbN,CmCgBK,qCACC,uCnCjBN,CmCsBE,gBACE,sCnCpBJ,CmCsBK,+BACC,kCnCpBN,CmC2BK,kEAHC,4CnCjBN,CmCoBK,qCACC,kCnCrBN,CmCyBK,iGACC,2BnCrBN,CmCwBQ,4KACE,iCnCpBV,CmC0BE,gBACE,wCnCxBJ,CmC0BK,+BACC,oCnCxBN,CmC+BK,kEAHC,8CnCrBN,CmCwBK,qCACC,oCnCzBN,CmC6BK,iGACC,6BnCzBN,CmC4BQ,4KACE,mCnCxBV,CmC8BE,gBACE,wCnC5BJ,CmC8BK,+BACC,oCnC5BN,CmCmCK,kEAHC,8CnCzBN,CmC4BK,qCACC,oCnC7BN,CmCiCK,iGACC,6BnC7BN,CmCgCQ,4KACE,mCnC5BV,CmCkCE,eACE,sCnChCJ,CmCkCK,8BACC,kCnChCN,CmCuCK,gEAHC,4CnC7BN,CmCgCK,oCACC,kCnCjCN,CmCqBE,kCAiBI,0BnCnCN,CmCqCM,wCACE,gCnCnCR,CmCuCK,8FACC,2BnCnCN,CmCsCQ,yKACE,iCnClCV,CmCwCE,2DAGI,4BnCxCN,CmC0CM,iEACE,4BnCxCR,CmC6CG,sBACC,sBnC3CJ,CmC8CG,gBAGC,8BAAA,CADA,8BAAA,CADA,qCnC1CJ,CmCyCG,wBAMG,mCnC5CN,CmCgDG,gBAEC,4BAAA,CADA,oCnC5CJ,CmC2CG,wCAGC,+BnC3CJ,CmCkDG,oBACC,yCnChDJ,CmCmDG,mBACC,yEnCjDJ,CmCoDG,oCH/OD,gBAAA,CGkPI,oBAAA,CHjPJ,eAAA,CACA,sBAAA,CAHA,kBhCmMF,CmCsDC,0CAEC,cAAA,CADA,y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CC,UzEmFJ,CyEpFG,8DACC,UzEsFJ,CyEvFG,8DACC,UzEyFJ,CyE1FG,8DACC,UzE4FJ,CyE7FG,8DACC,UzE+FJ,CyEhGG,8DACC,UzEkGJ,CyEnGG,8DACC,UzEqGJ,CyEtGG,8DACC,UzEwGJ,CyEzGG,8DACC,UzE2GJ,CyE5GG,8DACC,UzE8GJ,CyE/GG,8DACC,UzEiHJ,CyElHG,8DACC,UzEoHJ,CyErHG,8DACC,UzEuHJ,CyExHG,8DACC,UzE0HJ,CyE3HG,8DACC,UzE6HJ,CyE9HG,8DACC,UzEgIJ,CyEjIG,8DACC,UzEmIJ,CyEpIG,8DACC,UzEsIJ,CyEvIG,8DACC,UzEyIJ,CyE1IG,8DACC,UzE4IJ,CyE7IG,8DACC,UzE+IJ,CyEhJG,8DACC,UzEkJJ,CyEnJG,8DACC,UzEqJJ,CyEtJG,8DACC,UzEwJJ,CyEzJG,8DACC,UzE2JJ,CyE5JG,8DACC,UzE8JJ,CyE/JG,8DACC,UzEiKJ,CyElKG,8DACC,UzEoKJ,CyErKG,8DACC,SzEuKJ,CyExKG,8DACC,SzE0KJ,CyE3KG,8DACC,SzE6KJ,CyE9KG,8DACC,SzEgLJ,CyEjLG,8DACC,SzEmLJ,CyEpLG,8DACC,SzEsLJ,CyEvLG,8DACC,SzEyLJ,CyE1LG,8DACC,SzE4LJ,CyE7LG,8DACC,SzE+LJ,CyEhMG,8DACC,SzEkMJ,CwE/IM,kECzDJ,wCzE2MF,CyE7LG,2EAdD,wCzE8MF,CyE5LG,2EAlBD,wCzEiNF,C0ExNC,SpENC,qBAAA,CADA,kCAAA,CoEWA,oBAAA,CpEZA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,CoEOA,iB1ELF,C0EQE,+CAWE,sBAAA,CALA,+BAAA,CAEA,8BAAA,CALA,iBAAA,CAEA,OAAA,CAEA,iBAAA,CAHA,KAAA,CAKA,6BAAA,CACA,uB1ELJ,C0ESE,iBAEE,oBAAA,CADA,eAAA,CAEA,c1EPJ,C0EUE,cAME,sCAAA,CADA,qCAAA,CADA,UAAA,CAFA,cAAA,CADA,SAAA,CAEA,S1ELJ,C0EWE,iCAME,sCAAA,CADA,8BAAA,CAEA,mCAAA,CAHA,aAAA,CADA,oDAAA,CADA,qD1EJJ,C0EWK,mDAIC,+BAAA,CACA,oCAAA,CAFA,aAAA,CADA,qDAAA,CADA,sD1EJN,C0EYE,iBACE,6C1EVJ,C0EaE,gBACE,sC1EXJ,C2ElDC,YAIC,6CAAA,CADA,+CAAA,CAEA,oCAAA,CrERA,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNGF,C2EOM,6DACE,kB3ELR,C2ELC,gEAeK,mC3EPN,C2ESM,sEACE,e3EPR,C2EYE,kBACE,eAAA,CACA,iE3EVJ,C2EQE,uCAKI,S3EVN,C2EKE,qCAUI,MAAA,CADA,+B3EVN,C2ECE,qCAeI,qCAAA,CADA,iB3EXN,C2EcM,2CAEE,kCAAA,CADA,+BAAA,CAEA,iB3EZR,C2EiBM,8FAEE,oCAAA,CACA,iB3EfR,C2EkBM,+CAOE,oBAAA,CANA,mDAAA,CAIA,YAAA,CACA,qBAAA,CAHA,YAAA,CAKA,0BAAA,CAJA,6CAAA,CAKA,aAAA,CAPA,SAAA,CAQA,uBAAA,CACA,yCAAA,CACA,iC3EhBR,C2EkBQ,uDAGE,qBAAA,CAFA,8DAAA,CACA,U3EfV,C2EsBU,8HACE,4C3EjBZ,C2EqBQ,oDACE,0C3EnBV,C2EkBQ,yFAGI,kC3ElBZ,C2E5CE,sCAuEI,mDAAA,CAFA,WAAA,CACA,iE3ErBN,C2E0BE,kBAEE,qCAAA,CACA,6DAAA,CAFA,W3EtBJ,C2EqBE,uCAKI,S3EvBN,C2EyBM,+CAEE,0BAAA,CADA,U3EtBR,C2E0BU,+DAGE,aAAA,CAFA,MAAA,CACA,gB3EvBZ,C2EgCO,8DACC,YAAA,CACA,kC3E9BR,C2EiCO,6DACC,YAAA,CACA,kC3E/BR,C2EmCc,kGACE,iC3EjChB,C2EFE,qCAiDI,sBAAA,CAHA,YAAA,CACA,qBAAA,CAFA,WAAA,CAGA,kBAAA,CAJA,U3ElCN,C2E2CQ,4FAEE,uCAAA,CADA,M3EvCV,C2E2CQ,8FAKE,qBAAA,CADA,+BAAA,CAFA,WAAA,CACA,sBAAA,CAFA,U3EpCV,C2E0CU,8GAEE,kCAAA,CADA,4B3EtCZ,C2E4CM,0CAIE,kBAAA,CAHA,YAAA,CAIA,MAAA,CAHA,qBAAA,CACA,mB3ExCR,C2E4CQ,+CAEE,kBAAA,CADA,sB3EzCV,C2E4CU,qDACE,6C3E1CZ,C2E6CU,uDAKE,sCAAA,CAJA,+BAAA,CAEA,mDAAA,CADA,gDAAA,CAEA,iBAAA,CAEA,yB3E3CZ,C2E6CY,6DACE,gDAAA,CACA,gC3E3Cd,C2E+CU,yFAGI,4CAAA,CADA,2BAAA,CAEA,iB3E9Cd,C2E3DE,qEAkHM,gCAAA,CACA,sCAAA,CACA,+B3EpDR,C2EhEE,sCA2HI,mDAAA,CAFA,8BAAA,CACA,oC3ErDN,C2E+DI,kDAFA,kBAAA,CAFA,YAAA,CACA,wB3EjDJ,C2EoDI,6BACE,W3ErDN,C2E0DM,wCACE,c3ExDR,C2E2DM,kCAGE,YAAA,CAFA,WAAA,CACA,oC3ExDR,C2EsDM,iDAMI,qB3EzDV,C2EmDM,4CAUI,c3E1DV,C2E6DQ,6CACE,c3E3DV,C2EiEE,mBACE,qBAAA,CACA,U3E/DJ,C2EkEE,mBACE,wBAAA,CACA,gBAAA,CAEA,WAAA,CADA,U3E/DJ,C2EkEI,gDAEE,U3EhEN,C2EkEM,wDAEE,YAAA,CADA,U3E9DR,C2EkEM,0DAKE,kCAAA,CACA,cAAA,CAJA,YAAA,CADA,MAAA,CAGA,+BAAA,CADA,wBAAA,CAIA,S3E/DR,C2EiEQ,gFACE,c3E9DV,C2EmEI,wBAEE,aAAA,CADA,qC3EhEN,C2EmEM,4BAEE,uCAAA,CADA,gB3EhER,C2EoEM,6BAGE,oCAAA,CADA,+BAAA,CADA,W3EhER,C2EuEM,6BACE,c3ErER,C2EuEQ,mCACE,mDAAA,CACA,sC3ErEV,C2EwEQ,qCAEE,kCAAA,CADA,+B3ErEV,C4E1PC,QAMC,6CAAA,CADA,qCAAA,CADA,qBAAA,CAGA,kCAAA,CtEdA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,CsEMA,iBAAA,CAKA,mD5EPF,C4EUC,kBACC,2C5ERF,C4EWC,4CAEC,6B5ETF,C4EYC,eACC,iB5EVF,C4EaC,mBAIC,mEAAA,CAHA,iBAAA,CAEA,eAAA,CADA,U5ETF,C4EcC,cACC,iBAAA,CACA,8D5EZF,C4EeC,gBAGC,kBAAA,CAFA,YAAA,CACA,6BAAA,CAEA,8DAAA,CACA,iB5EbF,C4EeE,wBAGE,kBAAA,CADA,YAAA,CADA,M5EXJ,C4EGC,mCAcG,e5EdJ,C4EkBC,gBAEC,kBAAA,CADA,YAAA,CAEA,6BAAA,CACA,8D5EhBF,C4EkBE,wBACE,M5EhBJ,C4EoBC,4EAUG,6D5ErBJ,C4EyBC,gBAGC,+BAAA,CADA,8B5EtBF,C4E0BC,+BALC,oC5EfF,C4EoBC,eAEC,kCAAA,CADA,gCAAA,CAGA,oB5ExBF,C4EiCC,uCAJC,oCAAA,CADA,+BAAA,CAEA,oB5EnBF,C4EsBC,qBAGC,mC5EzBF,C4E6BC,iBAEC,2BAAA,CADA,W5E1BF,C4E8BC,yBACC,kD5E5BF,C6EnFC,WvELC,qBAAA,CuESA,kCAAA,CvEXA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,CuEMA,U7ELF,C6EQE,kBACE,Y7ENJ,C6ESE,mBAGE,cAAA,CACA,YAAA,CAHA,aAAA,CACA,sC7ELJ,C6EUE,yBAGE,qCAAA,CADA,+BAAA,CADA,8B7ENJ,C6EWE,oBACE,SAAA,CACA,+B7ETJ,C6EYE,mBAIE,oBAAA,CAHA,YAAA,CACA,cAAA,CACA,0BAAA,CAEA,qC7EVJ,C6EaE,iBAEE,kBAAA,CAGA,cAAA,CAJA,mBAAA,CAEA,gC7ETJ,C6EcE,kCAJE,wC7ELJ,C6ESE,iBAGE,sCAAA,CAFA,8B7EVJ,C6EeE,mBAEE,+BAAA,CADA,oB7EZJ,C6EgBE,kBAEE,gDAAA,CADA,kCAAA,CAEA,oC7EdJ,C6EiBM,wEAEE,oC7EfR,C6EoBE,oBAEE,YAAA,CAIA,2BAAA,CAHA,wBAAA,CACA,eAAA,CAHA,kCAAA,CAIA,S7EjBJ,C6EYE,4CASI,sC7ElBN,C6ESE,4DAYM,2B7ElBR,C6EuBE,kBAGE,sDAAA,CACA,qCAAA,CAFA,sEAAA,CADA,kCAAA,CAIA,8D7ErBJ,C6EgBE,0CAQI,sC7ErBN,C6EuBM,gDACE,4D7ErBR,C6EUE,0DAeM,2B7EtBR,C8ElFC,SxEDC,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CwEGA,SAAA,CACA,iB9EFF,C8EIE,gBAEE,YAAA,CADA,cAAA,CAEA,sB9EFJ,C8EKE,gBAEE,oCAAA,CACA,kC9EFJ,C8EME,sCANE,+BAAA,CAGA,e9EGJ,C8EAE,sBAEE,sCAAA,CACA,mC9EHJ,C8EOE,iBAEE,eAAA,CADA,oC9EJJ,C8ESG,kCAEG,c9ERN,C8EMG,0EAWG,8BAAA,CACA,oC9EVN,C8EcG,kCAEG,c9EbN,C+EvCE,yBAEE,GACE,SAAA,CACA,oB/EJJ,C+EOE,GACE,S/ELJ,CACF,C+EQE,0BACE,GACE,S/ENJ,C+ESE,GACE,SAAA,CACA,oB/EPJ,CACF,C+EUE,yBACE,GACE,S/ERJ,C+EWE,GACE,S/ETJ,CACF,C+EYE,0BACE,GACE,S/EVJ,C+EaE,GACE,S/EXJ,CACF,C+E/BC,gCA8CG,sBAAA,CACA,wBAAA,CAEA,2BAAA,CADA,iD/EXJ,C+ErCC,+BAqDG,sBAAA,CACA,wBAAA,CAEA,2BAAA,CADA,mD/EZJ,C+E3CC,iCA6DG,wBAAA,CADA,4B/EbJ,C+EiBE,qEAlBE,sBAAA,CACA,wBAAA,CAEA,2BAAA,CADA,iD/EOJ,C+EeE,oBAjBE,sBAAA,CACA,wBAAA,CAEA,2BAAA,CADA,mD/EMJ,C+EaE,yDAbE,wBAAA,CAeA,4BAAA,CAhBA,4B/EOJ,C+EaE,2BAnBE,wBAAA,CAoBA,6BAAA,CArBA,4B/EYJ,C+EcI,2CAxCA,sBAAA,CACA,wBAAA,CA0CI,4BAAA,CAxCJ,2BAAA,CADA,iD/E+BJ,C+EOI,iDASI,sBAAA,CAlCJ,wBAAA,CAiCI,4BAAA,CAlCJ,4BAAA,CAoCI,gC/EVR,C+EeI,2CAhDA,sBAAA,CACA,wBAAA,CAkDI,6BAAA,CAhDJ,2BAAA,CADA,mD/EsCJ,C+EQI,iDASI,sBAAA,CADA,6BAAA,CAEA,gC/EXR,C+EuBI,+HA9DA,wBAAA,CADA,4B/EgDJ,C+EwBC,2CAEC,S/ElBF,C+EyBC,+DANC,sBAAA,CACA,wBAAA,CAEA,2BAAA,CADA,iD/EfF,C+E0BC,kGAEC,4BAAA,CACA,4B/ExBF,C+E2BC,8CACC,6BAAA,CACA,4B/EzBF,C+E4BA,yBACE,GACE,S/E1BF,C+E6BA,GACE,S/E3BF,CACF,C+E8BA,0BACE,GACE,S/E5BF,C+E+BA,GACE,S/E7BF,CACF,CgFtIC,UAIC,6CAAA,CAEA,+CAAA,CACA,oCAAA,C1EjBA,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,C0EaA,iBAAA,CAFA,WhFgJF,CgFnJC,4BAWG,2BhF2IJ,CgFtJC,+BAeG,6BhF0IJ,CgFzJC,+BAmBG,6BhFyIJ,CgF5JC,6BAuBG,2BhFwIJ,CgFrIE,gBACE,ehFuIJ,CgFpIE,kBAKE,kBAAA,CAGA,qBAAA,CAPA,kCAAA,CAGA,YAAA,CAFA,gCAAA,CACA,eAAA,CAIA,2BAAA,CADA,qBhFwIJ,CgF9IE,4CAYI,sBAAA,CADA,YAAA,CAEA,UhFsIN,CgFnJE,6CAmBI,kBAAA,CADA,mBAAA,CAGA,aAAA,CAJA,oDAAA,CAGA,oChFsIN,CgFjIE,8BAKE,kBAAA,CAJA,sDAAA,CAGA,YAAA,CAEA,kBAAA,CAHA,wBAAA,CADA,mCAAA,CAKA,sChFmIJ,CgF1IE,wDAaI,kBAAA,CAHA,qBAAA,CACA,YAAA,CACA,sBhFoIN,CgF/HE,gBAGE,oCAAA,CACA,+BAAA,CACA,aAAA,CACA,oCAAA,CACA,qBhF+HJ,CFxNE,4BAAA,gBACE,qDAAA,CACA,oBE2NF,CACF,CFxNE,mCAEE,UAAA,CADA,SE2NJ,CFvNE,yCAEE,2BAAA,CACA,0CAAA,CAFA,0BAAA,CAGA,kBEyNJ,CFrNE,kHAEE,gDEuNJ,CgFjJI,4CAEE,oChFmJN,CgF/IE,4BAGE,qBAAA,CAEA,wEAAA,CACA,aAAA,CAFA,gEhFiJJ,CFtPE,4BAAA,4BACE,qDAAA,CACA,oBEyPF,CACF,CFtPE,+CAEE,UAAA,CADA,SEyPJ,CFrPE,qDAEE,2BAAA,CACA,0CAAA,CAFA,0BAAA,CAGA,kBEuPJ,CFnPE,0IAEE,gDEqPJ,CgFhKE,4CACE,qBAAA,CAEA,4CAAA,CACA,aAAA,CAFA,gEhFoKJ,CgF/JE,kBAGE,sCAAA,CADA,gBAAA,CADA,UhFmKJ,CgFpKE,sCAKI,mChFkKN,CgF9JE,8BAGE,qBAAA,CAFA,oCAAA,CACA,mEhFiKJ,CgF7JE,mBACE,iEhF+JJ,CgF5JE,iBAME,kBAAA,CACA,sCAAA,CALA,oCAAA,CACA,YAAA,CAFA,oDAAA,CAIA,iDAAA,CAIA,iEAAA,CADA,yBAAA,CAJA,gDhFmKJ,CgF5JI,uBAEE,6CAAA,CADA,chF+JN,CgF3JI,wBACE,8ChF6JN,CgFzJE,6BAEE,sBAAA,CADA,YhF4JJ,CgFzJI,mCAEE,sDAAA,CADA,chF4JN,CgFxJI,oCACE,uDhF0JN,CgFrJI,oCACE,WhFuJN,CgFlJM,gKACE,WhFsJR,CgFjJE,sBAEE,eAAA,CADA,UhFoJJ,CgF9IC,eAOC,WAAA,CAFA,MAAA,CAFA,YAAA,CADA,mBAAA,CAEA,KAAA,CAEA,UhFgJF,CgF5IG,uCACC,mBhF8IJ,CgF3IG,oCACC,cAAA,CACA,YhF6IJ,CgF1IG,qJAOG,iBhF4IN,CgFxIG,4BACC,kBhF0IJ,CgFvIG,2BACC,iBhFyIJ,CgFtIG,4BACC,ahFwIJ,CgFrIG,6BACC,YhFuIJ,CgFlLC,+BAqDG,gCAAA,CAFA,WAAA,CAFA,MAAA,CAKA,mBAAA,CAPA,cAAA,CACA,KAAA,CAEA,UAAA,CAEA,ShFwIJ,CgF5LC,+BA8DG,WAAA,CAFA,MAAA,CAIA,aAAA,CANA,cAAA,CACA,KAAA,CAEA,UAAA,CAEA,ShFsIJ,CFhYE,4BAAA,+BACE,qDAAA,CACA,oBEmYF,CACF,CFhYE,kDAEE,UAAA,CADA,SEmYJ,CF/XE,wDAEE,2BAAA,CACA,0CAAA,CAFA,4BAAA,CAGA,kBEiYJ,CF7XE,gJAEE,gDE+XJ,CgFzNC,mCA8EG,qBAAA,CARA,YAAA,CACA,sBAAA,CACA,eAAA,CAKA,cAAA,CAFA,iBAAA,CAFA,UhFyJJ,CgFlJK,iDACC,sBAAA,CAEA,gBhFmJN,CgFhJK,oDACC,kBhFkJN,CgFzOC,8CAmGG,qBAAA,CANA,YAAA,CACA,sBAAA,CACA,eAAA,CAGA,iBAAA,CAFA,UhFiJJ,CgFjPC,4BAuGG,ehF6IJ,CgFpPC,yBA2GG,mBAAA,CACA,YhF4IJ,CgFzIG,iDAEG,6BhF0IN,CiFnbC,2BAGC,sDAAA,CACA,iBAAA,CACA,UAAA,CACA,cAAA,CALA,YAAA,CAMA,iBAAA,CALA,WjFFF,CiFAC,8DAkBG,oBAAA,CADA,kBAAA,CAJA,YAAA,CAEA,qBAAA,CADA,cAAA,CAKA,+BAAA,CARA,WAAA,CAKA,sBAAA,CANA,iBAAA,CAEA,UjFAJ,CiFZC,8FAsBK,kCjFPN,CiFsBA,4BACE,GACE,kBjFZF,CiFeA,GACE,kBjFbF,CACF,CiFgBA,2BACE,GACE,SjFdF,CiFiBA,GACE,SjFfF,CACF,CiFkBA,2BACE,GACE,SjFhBF,CiFmBA,GACE,SjFjBF,CACF,CiFoBC,8BAQC,sDAAA,CALA,QAAA,CACA,MAAA,CAGA,eAAA,CANA,cAAA,CAIA,OAAA,CAHA,KAAA,CAIA,YjFhBF,CiFoBG,wCACC,8DjFlBJ,CiFiBG,8FAIG,+DjFlBN,CiFIC,2DA0BG,yBAAA,CACA,sCAAA,CANA,+BAAA,CADA,yCAAA,CAIA,QAAA,CAIA,8DAAA,CANA,iBAAA,CAHA,iBAAA,CAIA,QAAA,CAEA,0BAAA,CAIA,SjFpBJ,CiFTC,0DAsCG,sCAAA,CAHA,QAAA,CAIA,WAAA,CAHA,MAAA,CAMA,SAAA,CATA,cAAA,CAIA,OAAA,CAHA,KAAA,CAOA,uBAAA,CADA,UjFnBJ,CiFrBC,yDA8CG,QAAA,CAIA,QAAA,CAFA,iBAAA,CACA,OAAA,CAFA,OjFnBJ,CiF5BC,oFAyDK,kBAAA,CACA,wDAAA,CAHA,YAAA,CADA,WAAA,CAEA,sBAAA,CAHA,UjFjBN,CiFpCC,iHA6DO,aAAA,CAEA,0BAAA,CADA,0BAAA,CAIA,kBAAA,CADA,sBAAA,CADA,4CjFpBR,CiF5CC,4DA8EG,kBAAA,CAEA,6CAAA,CAHA,YAAA,CADA,WAAA,CAGA,sBAAA,CAEA,gBAAA,CARA,iBAAA,CACA,KAAA,CAFA,UAAA,CAGA,SjFnBJ,CiF2BK,sEACC,cjFzBN,CiF4BI,8BACE,GACE,uCjF1BN,CiF6BI,GACE,6CjF3BN,CACF,CiF8BI,gCACE,GACE,6CjF5BN,CiF+BI,GACE,uCjF7BN,CACF,CiF3EC,2FAgHK,kBAAA,CASA,yFAAA,CAJA,6CAAA,CAEA,iBAAA,CAJA,QAAA,CAKA,4HAAA,CAFA,kCAAA,CARA,mBAAA,CADA,8BAAA,CAEA,sBAAA,CAGA,QAAA,CADA,iBAAA,CAGA,6BAAA,CARA,6BjFjBN,CiF3FC,mGA4HO,wCjF9BR,CiFiCM,iGACE,wBjF/BR,CiFmCI,8BACE,GACE,QjFjCN,CiFoCI,GACE,WjFlCN,CACF,CiFqCI,8BACE,GACE,WjFnCN,CiFsCI,GACE,QjFpCN,CACF,CiFuCK,mGAEG,uFjFtCR,CiFoCK,qGAMG,uFjFvCR,CiFvHC,yFAoKK,uFAAA,CACA,YAAA,CAEA,eAAA,CADA,iBAAA,CAHA,iBjFrCN,CiF2CM,+LAEE,UAAA,CAEA,WAAA,CAGA,mBAAA,CAJA,iBAAA,CAGA,gBAAA,CADA,SjFvCR,CiF4CM,gGAEE,yFAAA,CADA,MjFzCR,CiF6CM,+FAEE,yFAAA,CADA,OjF1CR,CiF/IC,4DAmMG,kBAAA,CADA,YAAA,CAGA,OAAA,CALA,WAAA,CAIA,sBAAA,CAEA,uBAAA,CALA,wBjFzCJ,CiFxJC,0DAkNG,kBAAA,CAGA,sDAAA,CADA,4BAAA,CAJA,sCAAA,CANA,qBAAA,CAOA,YAAA,CALA,WAAA,CAOA,sBAAA,CAJA,eAAA,CAFA,iBAAA,CACA,cAAA,CAHA,gBjFrCJ,CiFtKC,sFAyNK,WAAA,CADA,UjF9CN,CiFkDK,sIACC,kCjF/CN,CiF9KC,0DAoOG,sCAAA,CADA,kCAAA,CADA,cAAA,CAGA,cjFjDJ,CiFmDK,yFAEC,UAAA,CADA,SjFhDN,CiFoDK,gLAEC,OAAA,CACA,0BjFlDN,CiFqDK,wFACC,SjFnDN,CiFsDK,wFACC,UjFpDN,CiFuDK,yQAUC,kBAAA,CANA,+BAAA,CACA,iBAAA,CAFA,+BAAA,CAKA,YAAA,CADA,6BAAA,CAEA,sBAAA,CARA,cAAA,CAKA,4BAAA,CAJA,UjF3CN,CiFjNC,4FAwQK,ejFpDN,CiFuDK,wEACC,yBjFrDN,CiFwDK,8EACC,+BjFtDN,CiFyDI,gEACE,+BjFvDN,CiF4DC,sBAOC,4BAAA,CALA,YAAA,CACA,MAAA,CAGA,cAAA,CAFA,KAAA,CAHA,WAAA,CAIA,UjFxDF,CiF6DC,uBAOC,kBAAA,CAJA,WAAA,CAMA,kCAAA,CAHA,YAAA,CADA,WAAA,CAGA,sBAAA,CANA,iBAAA,CAQA,gBAAA,CATA,UAAA,CAGA,SjFrDF,CiFiDC,sDAcG,kBAAA,CAIA,uCAAA,CACA,qCAAA,CANA,mBAAA,CAGA,WAAA,CADA,sBAAA,CAEA,gBAAA,CAGA,qCjF3DJ,CiFuCC,kFA4BK,kBAAA,CACA,sCAAA,CAHA,YAAA,CADA,4BAAA,CAEA,sBAAA,CAJA,iCAAA,CAOA,cAAA,CANA,2BjFrDN,CiF6DM,wFACE,mDjF3DR,CiF0BC,mFAwCK,cAAA,CADA,iBAAA,CADA,4BjF3DN,CiF+DM,yFACE,6CjF7DR,CiFmEC,oDAEG,gBjFlEJ,CiFsEC,8BAEC,0BAAA,CADA,0BjFnEF,CiFwEI,4BACE,GACE,kBjFtEN,CiFyEI,GACE,kBjFvEN,CACF,CiF0DC,oFAqBK,kBAAA,CAFA,YAAA,CADA,WAAA,CAEA,sBAAA,CAHA,UjFpEN,CiFmDC,iHAwBO,aAAA,CAEA,0BAAA,CADA,yBAAA,CAIA,kBAAA,CADA,sBAAA,CADA,uBjFtER,CiF+EG,6CACC,YjF7EJ,CiF2EC,0CAMG,oCAAA,CAEA,mBjF/EJ,CiFuEC,wEAUK,kBjF9EN,CiFoEC,2DAcK,mBjF/EN,CiFiEC,kCAmBG,uCAAA,CAGA,6BAAA,CAFA,eAAA,CACA,SjFhFJ,CiFmFI,0CAIE,sDAAA,CADA,yCAAA,CAFA,WAAA,CACA,UjF/EN,CiFmFM,kDAEE,sBAAA,CADA,gBjFhFR,CiFqFI,+CACE,4DjFnFN,CkF5YC,QAMC,uCAAA,C5EfA,qBAAA,C4EcA,kCAAA,C5EhBA,+BAAA,CAKA,eAAA,CAFA,QAAA,C4EYA,aAAA,C5EXA,SNEF,CFJE,4BAAA,QACE,qDAAA,CACA,oBEOF,CACF,CFJE,2BAEE,UAAA,CADA,SEOJ,CFHE,iCAEE,2BAAA,CACA,0CAAA,CAFA,0BAAA,CAGA,kBEKJ,CFDE,kGAEE,gDEGJ,CkFPE,erDPA,eAAA,CAEA,QAAA,CADA,S7BkBF,CkFRE,aAKE,kBAAA,CAFA,YAAA,CAFA,+BAAA,CAGA,6BAAA,CAFA,6DAAA,CAIA,iBlFUJ,CkFRI,mBAIE,QAAA,CAHA,UAAA,CAKA,UAAA,CAHA,MAAA,CADA,iBAAA,CAGA,UlFWN,CkFPI,kBAEE,kBAAA,CADA,YAAA,CAIA,MAAA,CAFA,6BAAA,CACA,UlFUN,CkFNI,mBACE,YlFQN,CkFLM,0BAKE,kCAAA,CAFA,8CAAA,CAIA,aAAA,CALA,+BAAA,CAIA,oCAAA,CAFA,eAAA,CAHA,8BlFaR,CkFdM,8BAYI,WAAA,CAFA,cAAA,CACA,UlFQV,CkFHM,yBAIE,kCAAA,CAFA,gCAAA,CACA,kCAAA,CAFA,SlFQR,CkFFM,+BAEE,kCAAA,CADA,sClFKR,CkFAI,qBAGE,aAAA,CAFA,eAAA,CACA,SlFGN,CkFAM,wBACE,oBlFER,CkFAQ,yCACE,oClFEV,CkFNM,gCAQI,oCAAA,CACA,kClFCV,CkFCU,sCACE,+BAAA,CACA,clFCZ,CkFGQ,0BAEE,2BAAA,CADA,oBlFAV,CkFOE,kCAGI,yClFPN,CkFcM,2CACE,gDlFZR,CkFiBE,sCAGI,qBlFjBN,CkFqBG,8BAGG,6DlFrBN,CkFyBG,8BAGG,8DlFzBN,CkF6BE,gCAEE,uCAAA,CACA,6DlF3BJ,CkF+BC,cACC,uCAAA,CAEA,6CAAA,CADA,iBlF5BF,CkF0BC,kBAOG,kBAAA,CADA,YAAA,CAEA,sBlF7BJ,CkFgCE,0BACE,6DlF9BJ,CkFkBC,yBAgBG,kCAAA,CACA,oClF/BJ,CkFcC,wCAqBG,clFhCJ,CmFxIC,Y7ENC,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNAF,CmFOE,mBAGE,gCAAA,CACA,oCAAA,CAFA,WAAA,CADA,iBAAA,CAIA,4CnFLJ,CmFQE,kBAEE,kCAAA,CAEA,mBAAA,CAHA,mCAAA,CAEA,kBnFLJ,CmFSE,kBACE,qDnFPJ,CmFWC,iBAIC,uCAAA,CACA,oCAAA,CAHA,uBAAA,CACA,eAAA,CAFA,UnFLF,CmFaC,kBAGC,kBAAA,CAFA,YAAA,CACA,6BnFVF,CmFeC,mBAIC,kBAAA,CAFA,6CAAA,CACA,YAAA,CAFA,8BnFVF,CmFSC,qCAMG,wCnFZJ,CmFgBC,wCAMG,+BAAA,CAJA,iBAAA,CAGA,6BAAA,CAFA,OAAA,CAIA,0BAAA,CAHA,UnFZJ,CmFmBC,mFAGG,oBnFlBJ,CmFeC,yCAOG,kBnFnBJ,CmFwBC,oBACC,iBnFtBF,CmFqBC,sCAKG,aAAA,CAKA,iBAAA,CACA,eAAA,CAJA,QAAA,CAKA,aAAA,CAHA,QAAA,CALA,iBAAA,CASA,iBAAA,CAPA,OAAA,CAQA,8BAAA,CANA,UnFhBJ,CmFQC,8CAkBG,mCnFvBJ,CmFKC,8CAsBG,4BAAA,CACA,4CnFxBJ,CmFCC,sCA2BG,enFzBJ,CmFgCI,sDAQE,4EAAA,CAEA,oCAAA,CANA,QAAA,CAGA,UAAA,CAFA,MAAA,CAMA,UAAA,CAVA,iBAAA,CAEA,OAAA,CADA,KAAA,CAIA,SnF1BN,CmFoCC,gDAEG,kCnFnCJ,CmFiCC,uDAMG,8BnFpCJ,CmF8BC,+CAUG,6BnFrCJ,CmFyCC,gDAEG,kCnFxCJ,CmFsCC,uDAMG,8BnFzCJ,CmFmCC,+CAUG,6BnF1CJ,CmF8CC,8CAEG,gCnF7CJ,CmF2CC,qDAMG,4BnF9CJ,CmFwCC,6CAUG,2BnF/CJ,CmFmDA,qCACE,GAEE,UAAA,CADA,OnFhDF,CmFoDA,IAEE,UAAA,CADA,SnFjDF,CmFqDA,GAEE,SAAA,CADA,UnFlDF,CACF,CoFhHA,8BAEE,6CpFzBF,CoF4BA,uBACE,iDpF1BF,CqFGC,Y/EJC,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNOF,CqFFE,iBAGE,kBAAA,CAFA,YAAA,CACA,qCrFKJ,CqFDE,wDAEE,erFGJ,CqFAE,iBAEE,kBAAA,CAEA,sDAAA,CACA,mCAAA,CAJA,YAAA,CAEA,sBAAA,CAGA,oCrFEJ,CqFAI,oEAEE,crFEN,CqFGI,uBAGE,sCAAA,CADA,qCAAA,CADA,UrFCN,CqFII,uBAGE,sCAAA,CADA,WAAA,CADA,WrFAN,CqFKI,yBAGE,qCAAA,CACA,aAAA,CAFA,WAAA,CADA,UrFAN,CqFQI,gCAEE,iBAAA,CADA,iBrFLN,CqFQM,sCAaE,sDAAA,CANA,wGAAA,CAJA,QAAA,CAFA,WAAA,CAGA,MAAA,CAFA,iBAAA,CAGA,OAAA,CACA,KrFJR,CqFeI,+BACE,mDrFbN,CqFiBE,gCACE,GACE,yCrFfJ,CqFkBE,GACE,wCrFhBJ,CACF,CqFmBE,+BACE,GACE,SrFjBJ,CqFoBE,IACE,kCAAA,CACA,UrFlBJ,CqFqBE,GACE,SrFnBJ,CACF,CsFlFC,aAIC,oCAAA,CAHA,oBAAA,CACA,yCAAA,CACA,6CtFJF,CsFOE,mBACE,oCAAA,CACA,qCtFLJ,CsFQE,qBAEE,kCAAA,CADA,oBAAA,CAEA,eAAA,CACA,kBtFNJ,CsFQI,2BACE,6CAAA,CACA,iDtFLN,CsFSI,qDAHE,4MtFDN,CsFII,0BACE,yCAAA,CACA,oCtFNN,CsFUI,4BAIE,mCtFRN,CsFWI,wDALE,kBAAA,CADA,mBAAA,CAEA,yCtFDN,CsFKI,4BAIE,oCtFTN,CsFKI,oCAMI,yCtFRR,CsFaE,mBACE,ctFXJ,CsFUE,0CAGI,YtFVN,CuFnCC,UjFNC,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SAAA,CiFOA,iBvFLF,CuFOE,gBACE,aAAA,CAEA,WAAA,CADA,iBvFJJ,CuFQE,mBAGE,eAAA,CAFA,iBAAA,CACA,SvFLJ,CuFSE,qBAEE,YAAA,CACA,kBAAA,CACA,WAAA,CAHA,iBAAA,CAIA,SvFPJ,CuFSI,2BAIE,oBAAA,CAHA,aAAA,CAEA,WAAA,CADA,UvFLN,CuFYC,iBAEC,kBAAA,CADA,YvFTF,CuFQC,4BAMG,WAAA,CADA,UvFTJ,CuFYI,mCACE,cvFVN,CuFeC,gDClCK,kBAAA,CAEA,4BAAA,CACA,4BAAA,CAEA,cAAA,CATA,YAAA,CAEA,WAAA,CACA,sBAAA,CAQE,SAAA,CA9BN,iBAAA,CAME,OAAA,CACA,0BAAA,CAoBE,qBAAA,CAPA,UAAA,CAIA,SxFkCN,CwFtBM,sDAEE,uCAAA,CACA,sCAAA,CAFA,kCAAA,CAGA,qBxFwBR,CwFrBM,uDACE,uCAAA,CACA,qBxFuBR,CuFXC,iDClCK,kBAAA,CAEA,4BAAA,CACA,4BAAA,CAEA,cAAA,CATA,YAAA,CAEA,WAAA,CACA,sBAAA,CAtBJ,iBAAA,CAiCM,UAAA,CA3BJ,OAAA,CACA,0BAAA,CAoBE,qBAAA,CAPA,UAAA,CAIA,SxF4DN,CwFhDM,uDAEE,uCAAA,CACA,sCAAA,CAFA,kCAAA,CAGA,qBxFkDR,CwF/CM,wDACE,uCAAA,CACA,qBxFiDR,CuF/BC,oCAEG,avFgCJ,CuFlCC,iDAIK,SvFiCN,CuFrCC,+BAYG,WAAA,CAFA,MAAA,CAFA,iBAAA,CACA,KAAA,CAEA,WAAA,CAEA,SvFgCJ,CuF3BC,oCAEG,avF4BJ,CuF9BC,+BAOG,MAAA,CAFA,iBAAA,CACA,KvF6BJ,CuFvBC,sBAKC,QAAA,CAFA,YAAA,CACA,kBAAA,CC/FE,QAAA,CDiGF,QAAA,CACA,SAAA,CCpGA,iBAAA,CAGE,0BAAA,CDkGF,SvF0BF,CuFlCC,yBAaG,YAAA,CAFA,aAAA,CACA,oBvF2BJ,CuFvCC,kDAkBK,WAAA,CADA,UvF0BN,CuFnBC,sDCWO,cAAA,CAUE,WAAA,CAHA,gBAAA,CACA,cAAA,CACA,UxFMV,CuF1BC,2DCyBW,UAAA,CADA,UxFMZ,CwFFU,kEACE,axFIZ,CuFjCC,2DCiDS,iCxFbV,CwFeU,iEACE,uCxFbZ,CwFgBU,kEACE,6CxFdZ,CwFkBS,kEAEG,UxFjBZ,CwFeS,uEASG,6CxFrBZ,CuF3CC,0DCMO,cAAA,CAUE,WAAA,CAHA,gBAAA,CACA,cAAA,CACA,UxFmCV,CuFlDC,+DCSW,mBAAA,CAWA,UAAA,CADA,UxFkCZ,CwF9BU,sEACE,axFoCZ,CuF5DC,+DC4CS,iCxFmBV,CwFjBU,qEACE,uCxFmBZ,CwFhBU,sEACE,6CxFkBZ,CwFdS,sEAEG,UxFeZ,CwFjBS,2EASG,6CxFWZ,CuFtEC,sDCuEO,cAAA,CASE,WAAA,CAHA,gBAAA,CACA,cAAA,CACA,sBxFFV,CuF7EC,2DC0ES,iBAAA,CAUE,uBAAA,CADA,UxFHZ,CwFOU,kEACE,axFDZ,CuFvFC,2DC4GS,iCxFlBV,CwFoBU,iEACE,uCxFlBZ,CwF0BS,yIAEG,6CxFtBZ,CuF9FC,gCC5BC,sDAAA,CACA,wCAAA,CAvGE,QAAA,CAwGF,6CAAA,CA1GA,iBAAA,CAuGA,UAAA,CADA,QAAA,CAnGE,0BxFyOJ,CuFxGC,sDCrDG,kBAAA,CAEA,4BAAA,CACA,oCAAA,CAGA,cAAA,CARA,YAAA,CAOA,wCAAA,CANA,sBAAA,CAKA,uCAAA,CAHA,SxFuKJ,CwFhKI,4DACE,kCxFkKN,CwF/JI,6DACE,kCxFiKN,CuFzHC,uDCrDG,kBAAA,CAEA,4BAAA,CACA,oCAAA,CAGA,cAAA,CARA,YAAA,CAOA,wCAAA,CANA,sBAAA,CAKA,uCAAA,CAHA,SxFwLJ,CwFjLI,6DACE,kCxFmLN,CwFhLI,8DACE,kCxFkLN,CuF1IC,oEClBG,oCAAA,CAFA,oBAAA,CACA,yCAAA,CAEA,QxFiKJ,CuF3IC,yCAEG,qBvF4IJ,CuF9IC,0CASG,WAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CALA,SAAA,CChJF,iBAAA,CDiJE,OAAA,CC3IA,OAAA,CACA,0BxF2RJ,CuFzJC,0ECTO,cAAA,CAyBE,WAAA,CAHA,cAAA,CACA,cAAA,CACA,UxFiJV,CuFhKC,+ECoBW,WAAA,CADA,SxFiJZ,CwF7IU,sFACE,YxF+IZ,CuFvKC,+EC6BS,iCxF6IV,CwF3IU,qFACE,uCxF6IZ,CwF1IU,sFACE,6CxF4IZ,CwFxIS,sFAKG,WxFsIZ,CwF3IS,2FASG,6CxFqIZ,CuFtLC,8ECTO,cAAA,CAyBE,WAAA,CAHA,cAAA,CACA,cAAA,CACA,UxF8KV,CuF7LC,mFCNW,mBAAA,CA0BA,WAAA,CADA,SxF6KZ,CwFzKU,0FACE,YxF+KZ,CuFvMC,mFC6BS,iCxF6KV,CwF3KU,yFACE,uCxF6KZ,CwF1KU,0FACE,6CxF4KZ,CwFxKS,0FAKG,WxFsKZ,CwF3KS,+FASG,6CxFqKZ,CuFtNC,0EC6DO,cAAA,CAqBE,cAAA,CAGA,2BAAA,CAFA,cAAA,CACA,UxFyIV,CuF7NC,+ECgES,iBAAA,CAyBE,WAAA,CADA,sBxFwIZ,CwFpIU,sFACE,YxF0IZ,CuFvOC,+ECkGS,iCxFwIV,CwFtIU,qFACE,uCxFwIZ,CwFhIS,iLAEG,6CxFoIZ,CuFvNC,yCAGG,YvFuNJ,CuF1NC,mDC7DC,sDAAA,CACA,wCAAA,CAvGE,QAAA,CAwGF,6CAAA,CA1GA,iBAAA,CAuGA,UAAA,CADA,QAAA,CAnGE,0BxFsYJ,CuFpOC,yECtFG,kBAAA,CAEA,4BAAA,CACA,oCAAA,CAGA,cAAA,CARA,YAAA,CAOA,wCAAA,CANA,sBAAA,CAKA,uCAAA,CAHA,SxFoUJ,CwF7TI,+EACE,kCxF+TN,CwF5TI,gFACE,kCxF8TN,CuFrPC,0ECtFG,kBAAA,CAEA,4BAAA,CACA,oCAAA,CAGA,cAAA,CARA,YAAA,CAOA,wCAAA,CANA,sBAAA,CAKA,uCAAA,CAHA,SxFqVJ,CwF9UI,gFACE,kCxFgVN,CwF7UI,iFACE,kCxF+UN,CuFtQC,uFCnDG,oCAAA,CAFA,oBAAA,CACA,yCAAA,CAEA,QxF8TJ,CuF5QC,8EC8FS,8CxFiLV,CwF/KU,oFACE,6CxFiLZ,CuFlRC,qJC2GS,6CxF6KV,CuF1QG,4DAEG,WAAA,CACA,WvF2QN,CuF9QG,sEC3ED,sDAAA,CACA,wCAAA,CAvGE,QAAA,CAwGF,6CAAA,CA1GA,iBAAA,CAuGA,UAAA,CADA,QAAA,CAnGE,0BxFwcJ,CuFxRG,4FCpGC,kBAAA,CAEA,4BAAA,CACA,oCAAA,CAGA,cAAA,CARA,YAAA,CAOA,wCAAA,CANA,sBAAA,CAKA,uCAAA,CAHA,SxFsYJ,CwF/XI,kGACE,kCxFiYN,CwF9XI,mGACE,kCxFgYN,CuFzSG,6FCpGC,kBAAA,CAEA,4BAAA,CACA,oCAAA,CAGA,cAAA,CARA,YAAA,CAOA,wCAAA,CANA,sBAAA,CAKA,uCAAA,CAHA,SxFuZJ,CwFhZI,mGACE,kCxFkZN,CwF/YI,oGACE,kCxFiZN,CuF1TG,0GCjEC,oCAAA,CAFA,oBAAA,CACA,yCAAA,CAEA,QxFgYJ,CuFhUG,iGCgFO,8CxFmPV,CwFjPU,uGACE,6CxFmPZ,CuFtUG,2LC6FO,6CxF+OV,CuF3TC,wCAEG,QvF4TJ,CuF9TC,kDC5FC,sDAAA,CACA,wCAAA,CAvGE,QAAA,CAwGF,6CAAA,CA1GA,iBAAA,CAuGA,UAAA,CADA,QAAA,CAnGE,0BxFygBJ,CuFxUC,wECrHG,kBAAA,CAEA,4BAAA,CACA,oCAAA,CAGA,cAAA,CARA,YAAA,CAOA,wCAAA,CANA,sBAAA,CAKA,uCAAA,CAHA,SxFucJ,CwFhcI,8EACE,kCxFkcN,CwF/bI,+EACE,kCxFicN,CuFzVC,yECrHG,kBAAA,CAEA,4BAAA,CACA,oCAAA,CAGA,cAAA,CARA,YAAA,CAOA,wCAAA,CANA,sBAAA,CAKA,uCAAA,CAHA,SxFwdJ,CwFjdI,+EACE,kCxFmdN,CwFhdI,gFACE,kCxFkdN,CuF1WC,sFClFG,oCAAA,CAFA,oBAAA,CACA,yCAAA,CAEA,QxFicJ,CuFnWM,kDACE,cvFqWR,CuFzWC,iEC1JK,WAAA,CAEE,SAAA,CAHF,UxFygBN,CuF9WC,kEC1JK,WAAA,CAKE,UAAA,CANF,UxF8gBN,CuFnXC,uEC9EO,cAAA,CAUE,WAAA,CAHA,gBAAA,CACA,cAAA,CACA,UxF+bV,CuF1XC,4EChEW,UAAA,CADA,UxF+bZ,CwF3bU,mFACE,axF6bZ,CuFjYC,4ECxCS,iCxF4aV,CwF1aU,kFACE,uCxF4aZ,CwFzaU,mFACE,6CxF2aZ,CwFvaS,mFAEG,UxFwaZ,CwF1aS,wFASG,6CxFoaZ,CuFhZC,iDCtGC,qDAAA,CACA,uCAAA,CAvGE,QAAA,CAwGF,4CAAA,CA1GA,iBAAA,CAuGA,UAAA,CADA,QAAA,CAnGE,0BxFqmBJ,CuF1ZC,uEC/HG,kBAAA,CAEA,4BAAA,CACA,oCAAA,CAGA,cAAA,CARA,YAAA,CAOA,uCAAA,CANA,sBAAA,CAKA,sCAAA,CAHA,SxFmiBJ,CwF5hBI,6EACE,kCxF8hBN,CwF3hBI,8EACE,kCxF6hBN,CuF3aC,wEC/HG,kBAAA,CAEA,4BAAA,CACA,oCAAA,CAGA,cAAA,CARA,YAAA,CAOA,uCAAA,CANA,sBAAA,CAKA,sCAAA,CAHA,SxFojBJ,CwF7iBI,8EACE,kCxF+iBN,CwF5iBI,+EACE,kCxF8iBN,CuF5bC,qFC5FG,oCAAA,CAFA,oBAAA,CACA,wCAAA,CAEA,QxF6hBJ,CuFhbG,yDAEG,YvFibN,CuFnbG,8FCmCO,8CxFmZV,CwFjZU,oGACE,6CxFmZZ,CuFzbG,qLCgDO,6CxF+YV,CuFvbG,0FCxGK,cAAA,CAyBE,WAAA,CAHA,cAAA,CACA,cAAA,CACA,UxF8gBV,CuF9bG,+FC3ES,WAAA,CADA,SxF8gBZ,CwF1gBU,sGACE,YxF4gBZ,CuFrcG,+FClEO,iCxF0gBV,CwFxgBU,qGACE,uCxF0gBZ,CwFvgBU,sGACE,6CxFygBZ,CwFrgBS,sGAKG,WxFmgBZ,CwFxgBS,2GASG,6CxFkgBZ,CuFhdK,4EAEG,WvFidR,CuFndK,iHCuBK,8CxF+bV,CwF7bU,uHACE,6CxF+bZ,CuFzdK,2NCoCK,6CxF2bV,CuFhdM,kDACE,cvFkdR,CuFtdC,iECxLK,WAAA,CAEE,QAAA,CAHF,UxFopBN,CuF3dC,kECxLK,WAAA,CAKE,SAAA,CANF,UxFypBN,CuFheC,uECxHO,cAAA,CAUE,WAAA,CAHA,gBAAA,CACA,cAAA,CACA,SxFslBV,CuFveC,4EC1GW,UAAA,CADA,UxFslBZ,CwFllBU,mFACE,axFolBZ,CuF9eC,4EClFS,iCxFmkBV,CwFjkBU,kFACE,uCxFmkBZ,CwFhkBU,mFACE,6CxFkkBZ,CwF9jBS,mFAEG,UxF+jBZ,CwFjkBS,wFASG,6CxF2jBZ,CuF7fC,iDChJC,qDAAA,CACA,uCAAA,CAvGE,QAAA,CAwGF,4CAAA,CA1GA,iBAAA,CAuGA,UAAA,CADA,QAAA,CAnGE,0BxF4vBJ,CuFvgBC,uECzKG,kBAAA,CAEA,4BAAA,CACA,oCAAA,CAGA,cAAA,CARA,YAAA,CAOA,uCAAA,CANA,sBAAA,CAKA,sCAAA,CAHA,SxF0rBJ,CwFnrBI,6EACE,kCxFqrBN,CwFlrBI,8EACE,kCxForBN,CuFxhBC,wECzKG,kBAAA,CAEA,4BAAA,CACA,oCAAA,CAGA,cAAA,CARA,YAAA,CAOA,uCAAA,CANA,sBAAA,CAKA,sCAAA,CAHA,SxF2sBJ,CwFpsBI,8EACE,kCxFssBN,CwFnsBI,+EACE,kCxFqsBN,CuFziBC,qFCtIG,oCAAA,CAFA,oBAAA,CACA,wCAAA,CAEA,QxForBJ,CuF7hBG,yDAEG,YvF8hBN,CuFhiBG,8FCPO,8CxF0iBV,CwFxiBU,oGACE,6CxF0iBZ,CuFtiBG,qLCMO,6CxFsiBV,CuFpiBG,0FClJK,cAAA,CAyBE,UAAA,CAHA,cAAA,CACA,cAAA,CACA,UxFqqBV,CuF3iBG,+FCrHS,WAAA,CADA,SxFqqBZ,CwFjqBU,sGACE,YxFmqBZ,CuFljBG,+FC5GO,iCxFiqBV,CwF/pBU,qGACE,uCxFiqBZ,CwF9pBU,sGACE,6CxFgqBZ,CwF5pBS,sGAKG,WxF0pBZ,CwF/pBS,2GASG,6CxFypBZ,CuF7jBK,4EAEG,WvF8jBR,CuFhkBK,iHCnBK,8CxFslBV,CwFplBU,uHACE,6CxFslBZ,CuFtkBK,2NCNK,6CxFklBV,CF91BE,4BAAA,WACE,qDAAA,CACA,oBEFF,CACF,CFKE,8BAEE,UAAA,CADA,SEFJ,CFME,oCAEE,2BAAA,CACA,0CAAA,CAFA,0BAAA,CAGA,kBEJJ,CFQE,wGAEE,gDENJ,CyFiBE,gIACE,uCzFdJ,CyFsBE,8RACE,sBzFlBJ,CyFuBC,mCACC,gBzFrBF,CyFwBC,SAMC,6CAAA,CnFzDA,qBAAA,CmFwDA,kCAAA,CADA,+BAAA,CnFpDA,eAAA,CAFA,QAAA,CACA,SAAA,CmFwDA,iBAAA,CAJA,UzFfF,CyFYC,8EAUG,WzFnBJ,CyFsBE,uBACE,YzFpBJ,CyFMC,0BAmBG,UzFtBJ,C0FXG,sHAGG,kB1FYN,C0FfG,4HAGG,qB1FgBN,C0FnBG,4HAGG,qB1FoBN,CyFTC,+BA+BG,gDAAA,CAJA,YAAA,CAEA,SAAA,CADA,iBAAA,CAEA,OAAA,CAEA,YzFfJ,CyFmBK,+GAEC,gBzFjBN,CyFqBE,oCACE,oCzFnBJ,CyFsBE,kDACE,qCzFpBJ,CyFuBE,kBACE,iBzFrBJ,CFjFE,4BAAA,kBACE,qDAAA,CACA,oBEwGF,CACF,CFrGE,qCAEE,UAAA,CADA,SEwGJ,CFpGE,2CAEE,2BAAA,CACA,0CAAA,CAFA,0BAAA,CAGA,kBEsGJ,CFlGE,sHAEE,gDEoGJ,CyFfE,qBAEE,qBAAA,CADA,6DzFkBJ,CyF1EC,iBA6DG,wCzFgBJ,CyF7EC,eAmEG,gBAAA,CADA,UzFeJ,CyFjFC,0BzDjDC,gBAAA,CyDwHE,6CAAA,CzDvHF,eAAA,CACA,sBAAA,CAHA,kBhC0IF,CyFxFC,wBAmFG,wBAAA,CAJA,kDAAA,CAKA,qBAAA,CAHA,eAAA,CADA,6CAAA,CAEA,wBAAA,CAJA,6DAAA,CADA,iBAAA,CAQA,ezFeJ,CyFpGC,6BA0FG,QAAA,CADA,SAAA,CAEA,iBzFcJ,CyFzGC,8BAgGG,sCzFaJ,CyF7GC,4BAoGG,8CzFYJ,CyFPK,kDACC,ezFUN,CyFPK,oDACC,gBzFUN,CyFPK,sDACC,iBzFUN,CyF5HC,YAuHG,6CzFQJ,CyFJG,0CAGG,6DzFKN,CyFAG,0CAGG,8DzFCN,CyFvIC,0EA8IG,QAAA,CADA,SzFDJ,CyF5IC,sCAmJG,QAAA,CACA,SAAA,CAFA,iBzFDJ,CyFjJC,gDAwJG,qBzFJJ,CyFpJC,8EA8JK,czFNN,CyFWE,4CAGI,gDzFVN,CyFaQ,wHACE,iDzFVV,CyFsBI,+IAEI,mBzFjBR,CyFJE,qCA0BI,gDzFnBN,CyFsBM,+DACE,4BzFpBR,CyFVE,qCAoCI,2CAAA,CACA,sCzFvBN,CyFdE,qCAyCI,kDzFxBN,CyFjBE,wCA8CI,6DzF1BN,CyFpBE,iEAkDI,SzF3BN,CyF+BK,4DAGG,kDzF/BR,CyF4CI,mIAGI,kBzFxCR,CyFkDI,qNAEI,sDzF9CR,CyF0DM,qNAEI,4DzFtDV,CyF4CK,sEAgBK,sCzFzDV,CyF2DU,4EACE,mDzFzDZ,CyFiEE,6BAGM,sCzFjER,CyFmEQ,mCACE,mDzFjEV,CyFwEG,qCAGK,kBzFxER,CyF/NC,mCA8SG,sDzF5EJ,CyFiFE,8BAEI,kBzFhFN,CyF8EE,sDAOI,wBzFjFN,CyFoFK,iFAGC,iBAAA,CADA,iBAAA,CAEA,SzFlFN,CFlSE,4BAAA,yCACE,qDAAA,CACA,oBEyTF,CACF,CFtTE,4DAEE,UAAA,CADA,SEyTJ,CFrTE,kEAEE,2BAAA,CACA,0CAAA,CAFA,0BAAA,CAGA,kBEuTJ,CFnTE,oKAEE,gDEqTJ,CyF4BE,uCA2BI,eAAA,CACA,iBzFpDN,CF9UE,4BAAA,uCACE,qDAAA,CACA,oBEqWF,CACF,CFlWE,0DAEE,UAAA,CADA,SEqWJ,CFjWE,gEAEE,2BAAA,CACA,0CAAA,CAFA,0BAAA,CAGA,kBEmWJ,CF/VE,gKAEE,gDEiWJ,CyFoBM,8HAEE,czFlBR,CyF0BK,8DAGG,eAAA,CACA,UzF1BR,CyF8BU,qNAOE,sDAAA,CANA,UAAA,CAIA,WAAA,CAHA,iBAAA,CACA,UAAA,CAGA,KAAA,CAFA,SzFxBZ,CyFYK,4DAqBG,oBzF9BR,CyFOE,wCA4BI,oBzFhCN,CyFIE,4BAiCI,cAAA,CADA,kBzFhCN,CyFAE,kDAsCI,iBzFlCN,C0F1ZE,6DAEE,wBAAA,CADA,U1F6ZJ,C0FvZE,4DAGE,QAAA,CACA,UAAA,CAEA,mBAAA,CALA,iBAAA,CAgBE,OAAA,CAfF,KAAA,CAgBE,0BAAA,CAbF,yBAAA,CAEA,U1FyZJ,C0FvaE,+DAEE,wBAAA,CADA,U1F8aJ,C0FxaE,8DAGE,QAAA,CACA,UAAA,CAuBE,MAAA,CArBF,mBAAA,CALA,iBAAA,CACA,KAAA,CA0BE,2BAAA,CAvBF,yBAAA,CAEA,U1F0aJ,CyFjYC,kCA6YG,iBzFLJ,CyFxYC,0DAmZK,QAAA,CAGA,iBAAA,CANA,iBAAA,CAEA,UAAA,CADA,KAAA,CAIA,UAAA,CADA,UzFHN,CyFjZC,iCA4ZG,mCzFRJ,CyFpZC,+BAkaG,kBAAA,CADA,YzFTJ,CyFcI,iCACE,uCzFZN,CyFeI,kCAEE,kDAAA,CACA,2CAAA,CAFA,6DzFXN,CyFeM,oEAGE,kDAAA,CAFA,YAAA,CACA,6DzFZR,CyFiBI,+CAEI,WzFhBR,CyFuBC,wIAGG,4CzFrBJ,CyF+BI,gPACE,kDzFzBN,CyFoCO,4LACC,mDzF/BR,CyFsCC,sIAIK,6BzFtCN,CyF2CC,gDACC,wBzFzCF,CyFiDC,6BACC,iBAAA,CACA,0BzF1CF,CyFwCC,iCAKG,sBzF1CJ,CyF+CC,kBACC,iBzF7CF,CyFgDC,8BAOC,0CAAA,CACA,wBAAA,CAFA,sCAAA,CADA,UAAA,CADA,MAAA,CAHA,eAAA,CACA,iBAAA,CACA,KzFzCF,CyFiDC,0BAEC,kBAAA,CAGA,sCAAA,CAJA,YAAA,CAEA,sBAAA,CACA,gBzF9CF,CyFkDC,wBACC,iBzFhDF,CyFmDC,wBACC,iBzFjDF,CyFoDC,uCACC,czFlDF,CyFsDC,gBAEC,kBAAA,CAGA,mCAAA,CAJA,YAAA,CAEA,sBAAA,CACA,gBzFnDF,CyFuDC,0CAEC,kBAAA,CACA,4BAAA,CAEA,cAAA,CADA,mBAAA,CAGA,qBAAA,CADA,0BzFpDF,CyF8CC,kDAUG,YzFpDJ,CyFwDC,yFAMG,qCAAA,CADA,2BAAA,CAEA,qBzFxDJ,CyF4DC,+FAIG,2BAAA,CACA,qBzF3DJ,CyF+DC,uCAEG,SzF9DJ,CyF4DC,qFAOK,6DzFhEN,CyFyDC,kHAUO,qCzFhER,CyFsDC,iEAcK,aAAA,CACA,WzFjEN,CyFkDC,oEAmBK,azFlEN,CyF+CC,yHAuBK,aAAA,CAEA,iCzFnEN,CyF0CC,sFA6BK,+CAAA,CACA,6DzFpEN,CyFsCC,0GAiCO,mCzFpER,CyFmCC,yHAyCK,gBAAA,CACA,aAAA,CAFA,SAAA,CAGA,iBzFxEN,CyF6BC,wIAkDO,6CAAA,CAJA,0FAAA,CACA,eAAA,CACA,KAAA,CACA,SzFvER,CyFsBC,wIAsDO,oCzFzER,CyF+EC,kDAEG,WzF9EJ,CyFkFC,+DAEG,0CzFjFJ,CyFqFC,4BACC,2BAAA,CACA,qBzFnFF,CyFsFC,uBACC,YAAA,CACA,qBAAA,CACA,sBzFpFF,CyFiFC,2CAMG,iBzFpFJ,CyF8EC,yCASG,6BzFpFJ,CyF2EC,0CAYG,gCzFpFJ,CyFwFC,2BAEC,kBAAA,CADA,YAAA,CAGA,qCAAA,CAEA,mCAAA,CAHA,kBAAA,CAEA,oCzFrFF,CyF0FC,8CAEG,wBzFzFJ,CyFuFC,iGAQK,MAAA,CADA,6BzF1FN,CyFiGC,sGAIK,YAAA,CACA,4BzFjGN,CyFsGC,qBAKC,kBAAA,CAKA,sCAAA,CACA,cAAA,CAPA,YAAA,CAIA,WAAA,CAFA,sBAAA,CAMA,+CAAA,CALA,UzFnGF,CyF0GE,2BACE,2BAAA,CACA,qBzFxGJ,CyF4GA,6BACE,GACE,OzF1GF,CyF6GA,GACE,UzF3GF,CACF,CyF8GC,gDAGG,kBAAA,CADA,mBzF5GJ,CyFiHC,yEACC,oCzF/GF,CyFkHC,iCAIC,+CAAA,CAHA,YAAA,CACA,wBAAA,CACA,6DzF/GF,CyF4GC,qDAMG,mCzF/GJ,CyFmHC,2BAEC,MAAA,CADA,eAAA,CAEA,iBzFjHF,CyFoHC,wBAEC,kBAAA,CADA,YAAA,CAEA,sBzFlHF,CyF+GC,kCAKG,mCzFjHJ,CyFqHC,uBACC,kBzFnHF,CyFsHC,sBACC,iBzFpHF,CyFuHC,mBACC,kBAAA,CACA,UzFrHF,CyFwHC,kBACC,azFtHF,CyFyHC,4EAEG,iDzFxHJ,CyF4HC,+EAEG,gDzF3HJ,CyFiIG,8FAEG,iDzFhIN,CyFoIG,iGAEG,gDzFnIN,CyFwIC,6BAKC,iDAAA,CAHA,QAAA,CAEA,WAAA,CAHA,iBAAA,CAEA,OAAA,CAGA,UzFtIF,CyFyIC,yDAEC,eAAA,CACA,UzFvIF,CyFkJC,kHAEG,sDzF9IJ,CyFkJC,qDAEC,eAAA,CACA,UzFhJF,CyFoJC,qCACC,+CzFlJF,CyF4JC,iKAGG,ezFxJJ,CyFqJC,2CAOG,+CzFzJJ,CyF6JC,wCACC,KzF3JF,CyF8JC,wCACC,QzF5JF,C0FjxBE,8DAEE,wBAAA,CADA,U1FoxBJ,C0F9wBE,6DAGE,QAAA,CACA,UAAA,CAEA,mBAAA,CALA,iBAAA,CAgBE,OAAA,CAfF,KAAA,CAgBE,0BAAA,CAbF,yBAAA,CAEA,U1FgxBJ,C0F9xBE,gEAEE,wBAAA,CADA,U1FqyBJ,C0F/xBE,+DAGE,QAAA,CACA,UAAA,CAuBE,MAAA,CArBF,mBAAA,CALA,iBAAA,CACA,KAAA,CA0BE,2BAAA,CAvBF,yBAAA,CAEA,U1FiyBJ,CyFiIC,qGAKG,ezF9HJ,CyFyHC,kDASG,UzF/HJ,CyFsHC,mDAaG,UzFhIJ,CyFoIC,uBAGG,QAAA,CADA,SzFlIJ,CyFuIC,sFAEG,+CzFtIJ,CyF0IC,2EAGK,qBzF1IN,CyF+IC,8CACC,6CzF7IF,CyFgJC,uBAEC,cAAA,CACA,mBAAA,CAFA,oCAAA,CAGA,mBzF9IF,CyFgJE,6BACE,2BAAA,CACA,qBzF9IJ,CyFkJC,gDAEC,sCAAA,CADA,WzF/IF,CyFoJC,gCAGC,UAAA,CAFA,iBAAA,CAGA,wBAAA,CAFA,SzFhJF,CyFqJC,gCAGC,MAAA,CAFA,iBAAA,CACA,UzFlJF,CyFuJC,kCACC,ezFpJF,CyFuJC,+DAGC,MAAA,CADA,iBAAA,CAEA,UzFrJF,CyFwJC,6BAGC,SAAA,CAFA,aAAA,CACA,6BzFrJF,CyF2JC,6BACC,aAAA,CACA,UzFzJF,CyF4JC,gDAEC,2CAAA,CAAA,eAAA,CACA,czF1JF,CyF6JC,gDAEC,kDAAA,CADA,gDzF1JF,CyF8JC,yEAEG,czF7JJ,CyFiKC,aACC,YzF/JF,CyFkKC,sBACC,uBzFhKF,CyFmKC,uBACC,wBzFjKF,CyFoKC,iDAEC,SzFlKF,CyFsKC,2BACC,6DzFnKF,CyFsKC,yBAEC,MAAA,CADA,ezFnKF,CyFuKC,8CACC,oBzFrKF,CyFwKC,mBAEC,kBAAA,CADA,YzFrKF,CyFyKC,2BACC,czFvKF,CyF0KC,sBACC,WzFxKF,CyF4KC,oCACC,gBzFzKF,CyF4KC,oFAGC,WzF1KF,CyF6KC,gCACC,6BzF3KF,CyF8KC,0DAIG,cAAA,CADA,6CAAA,CADA,ezF3KJ,CyFyKC,kEAUK,sCAAA,CAFA,wCAAA,CADA,mCAAA,CAEA,qBzF5KN,CyF+KM,wEACE,2BzF7KR,CyFiLI,gEAEE,qBzFhLN,CyFsLC,8BACC,6CzFnLF,CyFsLC,iDACC,+CzFpLF,CyFuLC,wEAEG,QAAA,CACA,SzFtLJ,CyF0LC,sDAEG,gCzFtLJ,CyFoLC,mGAOK,iDzFxLN,CyFiLC,kFAWK,+CzFzLN,CyF8LG,gXAIK,czF9LR,CyFqMC,gEAMG,QAAA,CAHA,SzFjMJ,CyF8LC,8NAUK,YzFlMN,CyFwLC,uIAsBK,kBAAA,CAFA,YAAA,CADA,WAAA,CAEA,sBAAA,CAHA,UzFjMN,CyF0MC,2BAEG,ezFzMJ,CyF6MC,+BACC,sDzF3MF,C2Fn/BC,kEFmsCC,+BzFhsCF,C2FHC,YrFDC,qBAAA,CADA,kCAAA,CqFKA,YAAA,CACA,qBAAA,CrFFA,eAAA,CAFA,QAAA,CACA,SNEF,C2FGE,iBAEE,YAAA,CACA,kBAAA,CAFA,eAAA,CAGA,iB3FDJ,C2FGI,0DACE,iB3FDN,C2FII,0BAEE,iBAAA,CADA,S3FDN,C2FKQ,gDAKE,4BAAA,CACA,iBAAA,CALA,gBAAA,CAGA,UAAA,CAFA,iBAAA,CAKA,OAAA,CAJA,S3FCV,C2FKU,yDACE,kC3FHZ,C2FMU,yDACE,uC3FJZ,C2FOU,yDACE,oC3FLZ,C2FQU,yDACE,oC3FNZ,C2FSU,uDACE,kC3FPZ,C2FUU,wDAKE,QAAA,CAHA,QAAA,CADA,iBAAA,CAGA,OAAA,CADA,0B3FNZ,C2FGU,sFAQI,QAAA,CADA,iBAAA,CAGA,KAAA,CADA,0B3FNd,C2FYQ,iDAEE,iCAAA,CAMA,uCAAA,CAHA,QAAA,CAIA,qBAAA,CALA,wBAAA,CADA,QAAA,CAIA,oCAAA,CANA,iBAAA,CAKA,0B3FPV,C2FaY,4DACE,mBAAA,CACA,c3FXd,C2FkBI,wBACE,oCAAA,CACA,yC3FhBN,C2FmBI,0BACE,MAAA,CAEA,wCAAA,CADA,oC3FhBN,C2FoBI,8CAEI,Y3FnBR,C2F4BU,sFAEE,MAAA,CADA,gB3FzBZ,C2F6BU,wFACE,iB3F3BZ,C2FkCU,uFAEE,OAAA,CADA,e3F/BZ,C2FmCU,yFACE,kB3FjCZ,C2FwCE,mCAEI,0B3FvCN,C2FyCM,4CAEE,cAAA,CACA,qCAAA,CAFA,gB3FrCR,C2F8CM,4CACE,2B3F5CR,C2F+CM,6CAEE,0BAAA,CACA,4BAAA,CAFA,gB3F3CR,C2F0CM,uEAMI,cAAA,CADA,qC3F3CV,C2FqDM,+DACE,U3FnDR,C2FyDY,gGACE,MAAA,CAGA,qCAAA,CADA,gBAAA,CADA,2B3FrDd,C2FgEY,iGAIE,oCAAA,CAHA,OAAA,CAEA,eAAA,CADA,0B3F5Dd,C2FsEE,uBAGE,kBAAA,CADA,kBAAA,CADA,gB3FlEJ,C2FuEM,wCACE,qBAAA,CAEA,eAAA,CADA,iB3FpER,C2FuEQ,iDAEE,UAAA,CADA,U3FpEV,C2FuEY,uEAOE,iBAAA,CADA,UAAA,CAFA,UAAA,CAHA,iBAAA,CACA,OAAA,CACA,0BAAA,CAEA,S3FnEd,C2FuEc,+EAIE,QAAA,CAHA,iBAAA,CACA,OAAA,CACA,0B3FpEhB,C2FiEc,6GAOI,MAAA,CADA,iBAAA,CAGA,OAAA,CADA,0B3FnElB,C2FyEY,wEAKE,QAAA,CACA,gCAAA,CAEA,uCAAA,CAPA,wCAAA,CAMA,gBAAA,CALA,OAAA,CACA,0BAAA,CACA,gD3FnEd,C2F0EgB,mFACE,mBAAA,CACA,c3FxElB,C2F+EQ,iDAGE,UAAA,CAFA,kBAAA,CACA,mC3F5EV,C2FmFE,+CAEI,sC3FlFN,C2FyFQ,0FAIE,gBAAA,CAHA,KAAA,CAEA,2BAAA,CADA,U3FrFV,C2F6FE,2EAEI,6B3F5FN,C2F8FM,oFACE,a3F5FR,C2FgGQ,6FAEE,QAAA,CADA,mCAAA,CAGA,0BAAA,CADA,U3F7FV,C2FkGM,oFAEE,sCAAA,CADA,a3F/FR,C2F0GY,qHAIE,sCAAA,CAHA,KAAA,CAEA,2BAAA,CADA,U3FtGd,C2F8GM,qFACE,6BAAA,CACA,iBAAA,CACA,uC3F5GR,C2F+GU,+GACE,sCAAA,CACA,iB3F7GZ,C2FiHY,wHACE,QAAA,CAEA,mCAAA,CADA,0B3F9Gd,C4FhOC,YAKC,uCAAA,CADA,2CAAA,CAAA,eAAA,CtFTA,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNGF,C4FOG,2BACC,W5FLJ,C4FQM,qDACE,kB5FNR,C4FSM,mDACE,uCAAA,CACA,W5FPR,C4FcE,wBAIE,kBAAA,CAFA,cAAA,CACA,YAAA,CAEA,sBAAA,CAJA,4C5FRJ,C4FOE,sCAQI,wBAAA,CACA,4C5FZN,C4FeI,8BACE,oC5FbN,C4FgBI,+BACE,mC5FdN,C4FiBK,8CACC,mB5FfN,C4FkBI,8BACE,mDAAA,CACA,oC5FhBN,C4FoBE,2BACE,e5FlBJ,C4FoBK,mEAEG,kB5FnBR,C4FiBK,iEAMG,uCAAA,CACA,W5FpBR,C4FUE,qDAmBI,kBAAA,CAHA,kDAAA,CAEA,YAAA,CADA,+BAAA,CAFA,6D5FlBN,C4FwBM,4DACE,M5FtBR,C4FyBO,oEACC,c5FvBR,C4F0BM,wLAGE,Y5FxBR,C4FRE,mDAsCI,gDAAA,CADA,kDAAA,CAEA,gB5F1BN,C4F4BM,8DACE,W5F1BR,C4FhBE,sDA+CI,oCAAA,CADA,qJ5F1BN,C4F+BG,0DAGG,mCAAA,CADA,kB5F7BN,C4F2BG,wDAOG,kBAAA,CACA,mB5F/BN,C4FuBG,wDAYG,gD5FhCN,C4FoBG,2DAgBG,mC5FjCN,C6F1FC,QAEC,kBAAA,CADA,Y7FNF,C6FKC,0BAOG,WAAA,CACA,MAAA,CAEA,eAAA,CALA,iBAAA,CAIA,KAAA,CAEA,4CAAA,CALA,O7FFJ,C6FJC,uDAeG,Y7FPJ,C6FUE,cACE,YAAA,CACA,eAAA,CAEA,QAAA,CADA,S7FPJ,C6FWE,cAEE,cAAA,CADA,iBAAA,CAEA,4C7FTJ,C6FWI,oBACE,qB7FTN,C6FYI,sCAEI,S7FXR,C6FeI,sCAEI,U7FdR,C6FmBE,cAEE,+BAAA,CACA,mC7FjBJ,C8FrCC,4BDoDG,kC7FpDJ,C8FAC,cAEC,+BAAA,CACA,gC9FHF,C8FME,gBACE,kCAAA,CACA,sC9FHJ,C8FOE,gCAHE,qC9FCJ,C8FEE,gBACE,mCAAA,CACA,qC9FJJ,C8FQE,gBACE,kCAAA,CACA,oC9FLJ,C8FSE,gCAHE,qC9FDJ,C8FIE,gBACE,+BAAA,CACA,mC9FNJ,C8FUE,gBACE,gCAAA,CAEA,qCAAA,CADA,kC9FPJ,C8FWE,gBACE,+B9FTJ,C8F5BC,qBA0CG,e9FXJ,C8F/BC,mBA+CG,wB9FbJ,C8FlCC,mBAuDG,sDAAA,CAMA,oBAAA,CAFA,8BAAA,CACA,gIAAA,CANA,iCAAA,CAEA,sCAAA,CACA,+BAAA,CACA,kB9FZJ,C8FiBI,4CAVA,2CAAA,CADA,sC9FDJ,C8FYI,yBAGE,4D9FfN,C8FnDC,kBA2EG,sDAAA,CAFA,2CAAA,CADA,sCAAA,CAKA,+CAAA,CAGA,oBAAA,CAFA,8BAAA,CACA,gIAAA,CALA,iCAAA,CAEA,sC9FdJ,C8FsBE,wBACE,mCAAA,CACA,kB9FpBJ,C8FwBE,uBACE,6B9FtBJ,C8FyBE,uBACE,6B9FvBJ,C8F0BE,qBACE,2B9FxBJ,C8F2BE,yBACE,oC9FzBJ,C8F4BE,yDAEE,2BAAA,CACA,c9F1BJ,C8F4BI,qEACE,iC9FzBN,C8FvFC,8BAqHG,6B9F3BJ,C+FnFC,SAIC,sBAAA,CAIA,qCAAA,CzFdA,qBAAA,CADA,kCAAA,CyFUA,YAAA,CzFXA,+BAAA,CAKA,eAAA,CAFA,QAAA,CyFWA,SAAA,CzFVA,SAAA,CyFSA,8DAAA,CAEA,sB/FJF,C+FOG,qBAEC,Y/FLJ,C+FQE,kBACE,S/FNJ,C+FSE,eACE,4C/FPJ,C+FME,2HAYI,2B/FTN,C+FaE,kBACE,8C/FXJ,C+FUE,iCAII,6B/FXN,C+FOE,gDAQI,mC/FZN,C+FIE,mDAYI,6B/FbN,C+FiBE,kBACE,8C/FfJ,C+FcE,iCAII,6B/FfN,C+FWE,gDAQI,mC/FhBN,C+FQE,mDAYI,6B/FjBN,C+FqBE,gBACE,4C/FnBJ,C+FkBE,+BAII,2B/FnBN,C+FeE,8CAQI,iC/FpBN,C+FYE,iDAYI,2B/FrBN,C+F0BC,eAEC,eAAA,CADA,2C/FvBF,C+F2BC,+BAEC,aAAA,CACA,4C/FzBF,C+F4BC,kBACC,UAAA,CACA,yCAAA,CACA,6CAAA,CACA,e/F1BF,C+F6BC,kCAGC,YAAA,CADA,U/F1BF,C+F8BC,gBACC,kCAAA,CACA,e/F5BF,C+F0BC,kCAKG,kC/F5BJ,C+FgCC,sBACC,oCAAA,CACA,aAAA,CACA,qB/F9BF,C+FiCC,oBAGC,2BAAA,CACA,cAAA,CAHA,aAAA,CACA,oCAAA,CAGA,oB/F/BF,C+FiCE,0BACE,iC/F/BJ,C+FkCE,2BACE,kC/FhCJ,C+FoCC,iCACC,mC/FlCF,C+FqCC,mBAEC,2BAAA,CACA,cAAA,CAFA,kC/FjCF,C+FsCC,gBAEC,kBAAA,CAEA,oCAAA,CACA,cAAA,CAJA,mBAAA,CAEA,mCAAA,CAGA,oB/FpCF,C+FsCE,sBACE,kC/FpCJ,C+F2BC,wBAaG,uDAAA,CACA,+F/FrCJ,CgGvIC,2CAEC,ShGwBF,CgGjBC,+DANC,sBAAA,CACA,wBAAA,CAEA,2BAAA,CADA,gChG2BF,CgGhBC,mPAKC,sBAAA,CADA,4BAAA,CAEA,4BhGkBF,CgGfC,iGAGC,sBAAA,CADA,6BAAA,CAEA,4BhGiBF,CgGdA,yBACE,GACE,ShGgBF,CgGbA,GACE,ShGeF,CACF,CgGZA,0BACE,GACE,ShGcF,CgGXA,GACE,ShGaF,CACF,CiGrDC,U3FNC,qBAAA,CADA,kCAAA,CADA,+BAAA,C2FgBA,WAAA,C3FXA,eAAA,CAFA,QAAA,C2FgBA,YAAA,C3FfA,SAAA,C2FaA,mBAAA,CAJA,cAAA,CAEA,UAAA,CADA,YjG8DF,CiGvDE,0BAHA,ejG6DF,CiGtDE,kBACE,iBjGwDJ,CiGrDE,iCAEE,KjGuDJ,CiGpDE,gBACE,MjGsDJ,CiGnDE,iBACE,OjGqDJ,CiGlDE,iCAEE,MjGoDJ,CiGjDE,eACE,KjGmDJ,CiGhDE,kBACE,QjGkDJ,CiG/CE,gBAME,sCAAA,CADA,WAAA,CAFA,MAAA,CAKA,SAAA,CAPA,iBAAA,CACA,KAAA,CAKA,gDAAA,CAHA,UjGqDJ,CiG9CE,2BAGE,uCAAA,CAOA,6BAAA,CADA,oCAAA,CARA,YAAA,CACA,qBAAA,CAMA,oCAAA,CADA,WAAA,CAIA,eAAA,CACA,mBAAA,CAGA,iBAAA,CAFA,6FAAA,CAPA,UjGsDJ,CiGtHC,qCA+EG,WAAA,CAFA,iBAAA,CAGA,iBAAA,CAFA,UjG8CJ,CiG1CI,uFAEE,KjG4CN,CiGzCI,2CACE,MAAA,CACA,2BjG2CN,CiGxCI,4CACE,OAAA,CACA,0BjG0CN,CiGvCI,uFAEE,MjGyCN,CiGtCI,0CACE,KAAA,CACA,2BjGwCN,CiGrCI,6CACE,QAAA,CACA,0BjGuCN,CiGnCE,kBAEE,kBAAA,CAKA,sDAAA,CACA,+DAAA,CACA,qBAAA,CAHA,kCAAA,CALA,YAAA,CAIA,gCAAA,CAFA,mCAAA,CACA,oCjG0CJ,CiGlCE,gBAGE,MAAA,CADA,ajGqCJ,CiGjCE,kCALE,6DjG8CJ,CiGzCE,kBAKE,6CAAA,CADA,mDAAA,CAEA,qBAAA,CAHA,eAAA,CAFA,UjGwCJ,CiGzCE,4BASI,mCjGmCN,CiG5CE,wCAaI,ajGkCN,CiG9BE,qBAIE,kBAAA,CAMA,6CAAA,CACA,sCAAA,CAFA,kCAAA,CAGA,cAAA,CAVA,YAAA,CAIA,6BAAA,CAHA,sBAAA,CAFA,iBAAA,CAOA,6BAAA,CADA,+DAAA,CAMA,+BAAA,CARA,4BjGwCJ,CiG9BI,2BACE,mDjGgCN,CiG7BI,4BACE,oDjG+BN,CiGnDE,6BAwBI,qDAAA,CACA,oBjG8BN,CiG1BE,gBAEE,WAAA,CACA,mBAAA,CAFA,UjG8BJ,CiG/BE,2CAMI,kBjG4BN,CiGlCE,gCAYI,WAAA,CAFA,SAAA,CACA,UjG4BN,CiGtBE,wBACE,mBjGwBJ,CiGpBA,sBACE,sBjGuBF,CkGlOC,S5FHC,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNAF,CkGME,eACE,elGJJ,CkGOE,mBACE,iBlGLJ,CkGQE,gBACE,clGNJ,CkGSE,kBAGE,QAAA,CACA,MAAA,CAHA,cAAA,CAIA,OAAA,CAHA,KAAA,CAIA,clGPJ,CkGUE,oBAGE,sCAAA,CADA,sCAAA,CADA,clGNJ,CkGUI,4BACE,oClGRN,CkGWI,0BACE,2ElGTN,CkGYI,4BAEE,sCAAA,CADA,qCAAA,CAEA,qBlGVN,CkGcE,oBACE,clGZJ,CkGeE,kBAKE,QAAA,CACA,YAAA,CACA,sBAAA,CALA,MAAA,CAOA,gBAAA,CARA,cAAA,CAEA,OAAA,CACA,KAAA,CAIA,clGZJ,CkGeI,0BAEE,kBAAA,CADA,alGZN,CkGiBE,iBAME,yCAAA,CADA,uCAAA,CADA,oCAAA,CAGA,qBAAA,CALA,eAAA,CADA,eAAA,CAEA,iElGXJ,CkGiBI,yBACE,2ClGfN,CkGKE,iCAcI,gCAAA,CACA,elGhBN,CkGCE,gCAoBI,+BAAA,CADA,kClGhBN,CkGqBE,kBAIE,gBAAA,CADA,eAAA,CADA,eAAA,CADA,6DlGhBJ,CkGsBE,gBAEE,kCAAA,CACA,+BAAA,CACA,eAAA,CAHA,elGjBJ,CkGuBE,eAGE,oCAAA,CACA,8BAAA,CAHA,kCAAA,CACA,elGnBJ,CkGwBE,iBAEE,kBAAA,CADA,YlGrBJ,CkGoBE,wBAKI,oClGtBN,CkGiBE,mCASI,clGvBN,CkG2BE,iBAEE,kBAAA,CADA,YlGxBJ,CkG2BI,wBACE,kClGzBN,CkG4BI,yBACE,elG1BN,CkG6BQ,0CACE,YAAA,CACA,sBlG3BV,CkGiCE,kBACE,sCAAA,CAGA,MAAA,CADA,8BAAA,CADA,elG7BJ,CkGmCI,yCACE,eAAA,CACA,eAAA,CACA,SlGjCN,CkGsCA,8BACE,GACE,SlGpCF,CkGuCA,GACE,SlGrCF,CACF,CmGhIC,WCHC,kBAAA,CAJA,6CAAA,CADA,qCAAA,CAEA,+IAAA,CACA,qBAAA,CAGA,kCAAA,CAFA,YAAA,CAOA,+BAAA,C9FNA,eAAA,CAFA,QAAA,C8FJA,SAAA,C9FKA,SAAA,C8FQA,6DAAA,CAdA,iBpGcF,CmGJC,0EAKG,2BAAA,CAEA,aAAA,CACA,qDAAA,CAFA,oCnGMJ,CmGDG,iHAGG,6BnGGN,CmGCG,iHAGG,6BnGCN,CmGGG,2GAGG,2BnGDN,CmGKG,2CAOG,oCAAA,CADA,cAAA,CAHA,mBAAA,CAEA,qCAAA,CADA,cnGFN,CmGFG,yDAWK,sCAAA,CADA,qDAAA,CAEA,yBnGLR,CmGOQ,+DACE,6CnGLV,CmGQQ,gEACE,8CnGNV,CmGaC,iBACC,cAAA,CACA,YnGXF,CmGSC,4BAKG,qCAAA,CACA,oBnGXJ,CqGvDC,gBCLC,6CAAA,CADA,QAAA,CAKA,qCAAA,CAFA,+IAAA,CACA,qBAAA,ChGHA,kCAAA,CgGCA,YAAA,CAJA,+BAAA,ChGOA,eAAA,CAFA,QAAA,CgGJA,SAAA,ChGKA,SAAA,CgGGA,6DAAA,CADA,WtGMF,CqGFE,sBAGE,oCAAA,CADA,iBAAA,CADA,gDrGMJ,CqGPE,8BAMI,oDrGIN,CqGdC,kCAgBG,2BrGCJ,CqGjBC,qCAoBG,6BrGAJ,CqGpBC,qCAwBG,6BrGDJ,CqGvBC,mCA4BG,6BrGFJ,CqGKE,sBACE,MrGHJ,CqGME,6BACE,YAAA,CACA,6BrGJJ,CqGOE,uBAEE,kCAAA,CADA,gCrGJJ,CqGrCC,8BAgDG,sCAAA,CACA,oCAAA,CAHA,cAAA,CACA,wCrGJJ,CqGQI,oCACE,6CrGNN,CqGSI,qCACE,8CrGPN,CqGWE,yBAaE,oBAAA,CAGA,2BAAA,CAdA,oCAAA,CAUA,mBAAA,CAXA,+BAAA,CAEA,kCAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CACA,oBrGJJ,CqGgBE,wBAGE,+BAAA,CAFA,kCAAA,CACA,gBrGbJ,CqGiBE,6BACE,crGfJ,CqGkBE,mCAEE,6CAAA,CADA,arGfJ,CqGmBE,oCAEE,8CAAA,CADA,arGhBJ,CqGoBE,0DACE,mCrGlBJ,CqGqBG,yCACC,2BrGnBJ,CqGuBE,gCAGE,MAAA,CAFA,cAAA,CACA,KrGpBJ,CqGwBE,gDACE,sBAAA,CACA,+BrGtBJ,CqGwBI,4BACE,GACE,SAAA,CACA,gCrGtBN,CqGyBI,GACE,SAAA,CACA,uBrGvBN,CACF,CqG2BE,iCACE,cAAA,CAEA,OAAA,CADA,KrGxBJ,CqG4BE,iDACE,sBAAA,CACA,gCrG1BJ,CqG4BI,6BACE,GACE,SAAA,CACA,+BrG1BN,CqG6BI,GACE,SAAA,CACA,uBrG3BN,CACF,CqG+BE,mCAEE,QAAA,CAEA,YAAA,CACA,6BAAA,CAFA,MAAA,CAFA,crGzBJ,CqGgCE,mDACE,sBAAA,CACA,kCrG9BJ,CqGgCI,+BACE,GACE,SAAA,CACA,gCrG9BN,CqGiCI,GACE,SAAA,CACA,uBrG/BN,CACF,CqGmCE,oCAEE,QAAA,CAEA,YAAA,CACA,6BAAA,CAJA,cAAA,CAEA,OrG/BJ,CqGoCE,oDACE,sBAAA,CACA,mCrGlCJ,CqGoCI,gCACE,GACE,SAAA,CACA,+BrGlCN,CqGqCI,GACE,SAAA,CACA,uBrGnCN,CACF,CqGuCE,2BACE,crGrCJ,CuGrKC,cAIC,qCAAA,CjGXA,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CiGSA,eAAA,CjGRA,SNEF,CuGGC,gCAOG,SvGPJ,CuGUG,kEACC,WvGRJ,CuGWE,uBAGE,qCAAA,CADA,6DAAA,CADA,iBvGPJ,CuGYE,oBAEE,sBAAA,CADA,YAAA,CAEA,evGVJ,CuGOE,4BAMI,oBAAA,CAGA,qDAAA,CAFA,oCAAA,CACA,6FvGTN,CuGcE,uBACE,mCvGZJ,CuGeE,qBAKE,kCAAA,CAJA,oBAAA,CAGA,+BAAA,CADA,eAAA,CADA,kBvGVJ,CuGgBE,6BACE,6BvGdJ,CuGiBE,4BACE,2BvGfJ,CuGkBE,6BACE,2BvGhBJ,CuGmBE,uBAEE,kCAAA,CADA,gBvGhBJ,CuGeE,uCAKI,cvGjBN,CwG3CC,UlGTC,qBAAA,CADA,kCAAA,CADA,+BAAA,CAKA,eAAA,CAFA,QAAA,CACA,SNAF,CwGOC,yBAIG,2CxGRJ,CwGIC,6BAOG,oBxGRJ,CwGCC,kBAYG,aAAA,CADA,qDxGRJ,CwGHC,sCAgBG,6BxGVJ,CwGNC,sCAoBG,2BxGXJ,CwGTC,8BAwBG,sCxGZJ,CwGZC,sBA4BG,kCxGbJ,CwGgBE,qBAEE,kBAAA,CADA,YAAA,CAIA,YAAA,CAFA,sBAAA,CAGA,oCAAA,CACA,eAAA,CAHA,WxGXJ,CwGgBI,6BAEE,2BAAA,CADA,gCxGbN,CwGkBE,qBAGE,kBAAA,CAKA,2CAAA,CACA,sCAAA,CARA,YAAA,CASA,+BAAA,CAJA,YAAA,CAJA,6BAAA,CAEA,kCAAA,CAGA,6DAAA,CAFA,WxGXJ,CwGkBK,oHAMG,2BxGlBR,CwGuBE,wBAEE,kBAAA,CADA,YxGpBJ,CwGwBE,wBACE,cxGtBJ,CwGwBI,8BACE,2BxGtBN,CwG0BE,oBAIE,cAAA,CADA,eAAA,CADA,cAAA,CADA,gBxGrBJ,CwG2BE,qBxEhGA,gBAAA,CwEiGE,eAAA,CxEhGF,eAAA,CACA,sBAAA,CAHA,kBhC6EF,CwGyBE,qBACE,gCxGvBJ,CwG0BE,uBACE,oCxGxBJ,CwG8BE,gBAME,YAAA,CACA,cAAA,CANA,8BAAA,CAOA,2BAAA,CAJA,QAAA,CAFA,eAAA,CAGA,SAAA,CAFA,UxGvBJ,CwG+BM,sCACE,kBxG7BR,CwGiCI,qBAEE,qBAAA,CADA,cAAA,CAEA,exG/BN,CwGiCM,2BACE,UAAA,CACA,axG/BR,CwGkCO,gDACC,SAAA,CCjJN,6BzGkHF,CwGoCS,sDACC,2BAAA,CACA,qCxGlCV,CwGqCS,wDACC,2BxGnCV,CwGuCO,qCChKL,kCzG4HF,CwGyCK,gCACC,qCxGvCN,CwG0CI,qBxEnKF,gBAAA,CwEqKI,kCAAA,CADA,cAAA,CxEnKJ,eAAA,CACA,sBAAA,CAHA,kBhCkIF,CwGwCI,wBAIE,eAAA,CAOA,6DxGrCN,CwGyCI,kDATE,kBAAA,CAGA,sDAAA,CACA,4CAAA,CAEA,sCAAA,CAJA,qBAAA,CAHA,YAAA,CAFA,YAAA,CAIA,sBAAA,CANA,iBAAA,CACA,WxGdN,CwG2BI,0BAME,qBAAA,CCpMJ,4BzGmKF,CwGyCM,oDACE,kCAAA,CC7MN,kCzGuKF,CwGuBI,kCAoBI,sCxGxCR,CwGoBI,uEAyBI,gCAAA,CACA,qCxGzCR,CwGeI,0EA+BI,sCAAA,CACA,QxG1CR,CwG8CI,4BACE,iBxG5CN,CwG2CI,gCAII,qCxG5CR,CwGwCI,2EASI,gCxG7CR,CwGiDI,sBAIE,WAAA,CAFA,eAAA,CADA,cAAA,CAEA,UxG9CN,CwGkDI,uBACE,mCAAA,CACA,8BxGhDN,CwGmDI,qB3E1PF,kBAAA,C2E2PI,sCAAA,C3ElPJ,QAAA,C2EmPI,+BAAA,C3E7PJ,YAAA,CAEA,sBAAA,CAKA,MAAA,C2EwPI,SAAA,C3EzPJ,iBAAA,CAEA,OAAA,CACA,KAAA,C4ETA,6BAAA,CD8PI,qBAAA,CAEA,SxGxCN,CwG+CM,kCAEE,+CAAA,CACA,+BAAA,CAFA,gCxG3CR,CwGyCI,kCAQI,cAAA,CACA,qDxG9CR,CwGmDE,4BAEI,axGlDN,CwGoDM,qCACE,YxGlDR,CwGqDM,iCACE,gBxGnDR,CwGqDQ,6CAEI,aAAA,CAEA,eAAA,CADA,cxGnDZ,CwG8DE,mBAIE,4CAAA,CACA,oCAAA,CAOA,qBAAA,CALA,oCAAA,CACA,cAAA,CAPA,YAAA,CAKA,+BAAA,CAHA,YAAA,CAQA,aAAA,CAFA,+BAAA,CACA,iBAAA,CCvTF,kCAAA,CD+SE,WxGjDJ,CwG8DK,gCACC,oDxG3DN,CwG+DI,yDAHE,kCxGzDN,CwGgEI,wBAEE,8BAAA,CADA,iBxG7DN,CwGoCE,6BA8BI,axG/DN,CwGmEE,0BAEE,kBAAA,CADA,sBxGhEJ,CwGuEI,wDACE,kCxGlEN,CwGsEE,wBAEE,kBAAA,CAEA,kCAAA,CAHA,YAAA,CAEA,+BAAA,CAEA,qCAAA,CC7VF,iDzG0RF,CwG8DE,+CxEtVA,gBAAA,CACA,eAAA,CACA,sBAAA,CAHA,kBhC+RF,CwGsEC,gBAEC,sCAAA,CADA,aAAA,CAGA,8BAAA,CADA,kCxGnEF,CwGsEG,qCACC,2BxGpEJ,CwGuEG,oCACC,6BxGrEJ,CwGyEC,uBACC,sCxGvEF,CwG0EC,gCACC,kCxGxEF,CwG2EC,+BAIC,kBAAA,CAHA,oCAAA,CAEA,YAAA,CADA,8BxGvEF,CwGqEC,8DAMG,qDxGxEJ,CwG4EA,4BACE,sCAAA,CACA,oCAAA,CC7YA,2BzGoUF,CwG4EE,kCACE,oCAAA,CACA,cAAA,CClZF,2BzGyUF,CwG8EC,0BACC,oCxG5EF,CwG+EC,2BAGC,kBAAA,CAFA,2BAAA,CACA,YxG5EF,CwG0EC,sCAOG,aAAA,CADA,qDxG5EJ,CwGiFC,+BAGC,2BAAA,CACA,cAAA,CAFA,+BAAA,CADA,mCxG5EF,CwGkFC,gCACC,YAAA,CAEA,MAAA,CADA,6BxG/EF,CwGmFC,6BxE7aC,gBAAA,CwE8aA,aAAA,CxE7aA,eAAA,CACA,sBAAA,CAHA,kBhCkWF,CwGiFC,6BAEC,kBAAA,CADA,YxG9EF,CwG6EC,gDAKG,mCxG/EJ,CwG0EC,wDASG,kBxGhFJ,CwGuEC,6CAcG,kBAAA,CADA,YAAA,CAEA,6BxGjFJ,CwGqFC,4BAEC,YAAA,CADA,UxGlFF,CwGiFC,2EAOG,aAAA,CADA,qDxGlFJ,CwGuFC,4BAMC,kBAAA,CAHA,sDAAA,CACA,sCAAA,CACA,YAAA,CAGA,aAAA,CANA,YAAA,CAKA,sBAAA,CANA,WxG9EF,CwG6EC,4DAUG,UxGpFJ,CwG0EC,0EAaK,iBxGpFN,CwGuEC,gCAmBG,eAAA,CADA,cxGrFJ,CwG2FE,6DACE,mCAAA,CC3eF,2EzGmZF,CwG8FC,iCACC,MxG5FF,CwG2FC,gEAIG,qCxG5FJ,CwGwFC,iDAQG,4BxG7FJ,CwGiGC,wEAEC,oCxG/FF,CwGsGC,4JAEC,wBxGhGF,CwGmGC,2BACC,WxGjGF,CwGoGC,gBAEC,eAAA,CADA,exGjGF,CwGoGE,4BACE,oBAAA,CACA,mCxGlGJ,CwGqGE,mBAEE,kBAAA,CADA,YxGlGJ,CwGsGE,uBACE,YAAA,CACA,wBAAA,CACA,oCxGpGJ,CwGiGE,2CAMI,mCxGpGN,CwGwGE,sBAKE,kBAAA,CACA,sCAAA,CAHA,YAAA,CADA,YAAA,CAEA,sBAAA,CAHA,UxGjGJ,CwGyGE,sBAEE,4CAAA,CAEA,wBAAA,CADA,oCAAA,CAFA,UxGpGJ,CwGmGE,sHAUI,+CxGvGN,CwG6FE,kIAiBM,6CAAA,CAFA,2CAAA,CAFA,sCAAA,CACA,eAAA,CAEA,exGnGR,CwGmFE,kIAqBM,kCxGlGR,CwG6EE,oQA0BM,6DxG7FR,CwGiGI,iCACE,gDxG/FN,CwGmGE,uBACE,sCAAA,CACA,cAAA,CCzlBF,2BzGyfF,CwGoGE,6BACE,oCxGlGJ,CwGqGE,uBAEE,kBAAA,CADA,YxGlGJ,CwGiGE,iEAOI,qDAAA,CADA,oCxGlGN,CwGuGE,0BACE,4CAAA,CAEA,oCAAA,CADA,6DAAA,CC9mBF,4BzG2gBF,CwGuGI,gCACE,kCAAA,CCnnBJ,kCzG+gBF,CwG0GC,qDAEC,sCAAA,CACA,cAAA,CC5nBA,2BzGqhBF,CwG2GC,iEAEC,oCAAA,CCloBA,2BzG0hBF,CwG4GC,qCACC,YxG1GF,CwG6GC,oEAEG,exG5GJ,CwG0GC,6DAKG,YxG5GJ,CwGgHC,iCAEG,oCxG/GJ,CwG6GC,oCAWG,kBAAA,CACA,cAAA,CAHA,YAAA,CADA,8BAAA,CAEA,sBAAA,CAJA,uCAAA,CACA,6BxG3GJ,CwGoGC,wCAgBK,sCAAA,CADA,+BxG/GN,CwGqHC,qBACC,cxGnHF,CwGsHC,4BACC,UxGpHF,CwGuHC,kCACC,SxGrHF,CwGwHC,qBAEC,kBAAA,CADA,YxGrHF,CwGyHC,wCACC,kBxGvHF,CwGsHC,4GAQG,mCxGxHJ","file":"tdesign.min.css","sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,"@keyframes t-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.t-icon {\n display: inline-block;\n vertical-align: middle;\n width: 1em;\n height: 1em;\n}\n.t-icon::before {\n font-family: unset;\n}\n.t-icon-loading {\n animation: t-spin 1s linear infinite;\n}\n.t-icon {\n fill: currentColor;\n}\n.t-icon.t-size-s,\ni.t-size-s {\n font-size: 14px;\n}\n.t-icon.t-size-m,\ni.t-size-m {\n font-size: 16px;\n}\n.t-icon.t-size-l,\ni.t-size-l {\n font-size: 18px;\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]} \ No newline at end of file diff --git a/docs/assets/js/mirrors-table-data.js b/docs/assets/js/mirrors-table-data.js new file mode 100644 index 0000000..579d9d4 --- /dev/null +++ b/docs/assets/js/mirrors-table-data.js @@ -0,0 +1,324 @@ +const mirrorsTableData = [ + { + name: '阿里云', + url: 'https://mirrors.aliyun.com', + domain: 'mirrors.aliyun.com', + ipv6: true, + archlinux: true, + kalilinux: true, + deepin: true, + rockylinux: 'incompatible', + almalinux: true, + epel: true, + fedora: true, + opencloudos: false, + anolis: true, + openkylin: true, + alpinelinux: true, + armbian: true, + proxmox: false, + linuxmint: true, + gentoo: true, + nix: false, + raspberry: true, + }, + { + name: '腾讯云', + url: 'https://mirrors.tencent.com', + domain: 'mirrors.tencent.com', + ipv6: false, + archlinux: true, + kalilinux: true, + deepin: false, + rockylinux: true, + almalinux: true, + epel: true, + fedora: true, + opencloudos: true, + anolis: false, + openkylin: false, + alpinelinux: true, + armbian: false, + proxmox: false, + linuxmint: true, + gentoo: true, + nix: false, + raspberry: false, + }, + { + name: '华为云', + url: 'https://mirrors.huaweicloud.com', + domain: 'mirrors.huaweicloud.com', + ipv6: false, + archlinux: true, + kalilinux: true, + deepin: true, + rockylinux: 'incompatible', + almalinux: true, + epel: true, + fedora: true, + opencloudos: false, + anolis: false, + openkylin: false, + alpinelinux: true, + armbian: false, + proxmox: false, + linuxmint: true, + gentoo: true, + nix: false, + raspberry: false, + }, + { + name: '网易', + url: 'https://mirrors.163.com', + domain: 'mirrors.163.com', + ipv6: false, + archlinux: true, + kalilinux: false, + deepin: true, + rockylinux: true, + almalinux: false, + epel: false, + fedora: true, + opencloudos: false, + anolis: false, + openkylin: true, + alpinelinux: false, + armbian: false, + proxmox: false, + linuxmint: true, + gentoo: true, + nix: false, + raspberry: false, + }, + { + name: '火山引擎', + url: 'https://developer.volcengine.com/mirror', + domain: 'mirrors.volces.com', + ipv6: false, + archlinux: false, + kalilinux: true, + deepin: true, + rockylinux: 'incompatible', + almalinux: true, + epel: true, + fedora: true, + opencloudos: false, + anolis: false, + openkylin: false, + alpinelinux: true, + armbian: false, + proxmox: false, + linuxmint: false, + gentoo: false, + nix: false, + raspberry: false, + }, + { + name: '清华大学', + url: 'https://mirrors.tuna.tsinghua.edu.cn', + domain: 'mirrors.tuna.tsinghua.edu.cn', + ipv6: true, + archlinux: true, + kalilinux: true, + deepin: true, + rockylinux: false, + almalinux: false, + epel: true, + fedora: true, + opencloudos: false, + anolis: false, + openkylin: false, + alpinelinux: true, + armbian: true, + proxmox: true, + linuxmint: true, + gentoo: true, + nix: true, + raspberry: true, + }, + { + name: '北京大学', + url: 'https://mirrors.pku.edu.cn/Mirrors', + domain: 'mirrors.pku.edu.cn', + ipv6: true, + archlinux: true, + kalilinux: false, + deepin: false, + rockylinux: true, + almalinux: true, + epel: true, + fedora: false, + opencloudos: false, + anolis: false, + openkylin: false, + alpinelinux: false, + armbian: false, + proxmox: false, + linuxmint: false, + gentoo: false, + nix: false, + raspberry: false, + }, + { + name: '浙江大学', + url: 'https://mirrors.zju.edu.cn', + domain: 'mirrors.zju.edu.cn', + ipv6: true, + archlinux: true, + kalilinux: true, + deepin: true, + rockylinux: true, + almalinux: true, + epel: true, + fedora: true, + opencloudos: false, + anolis: true, + openkylin: false, + alpinelinux: true, + armbian: false, + proxmox: false, + linuxmint: true, + gentoo: true, + nix: false, + raspberry: false, + }, + { + name: '南京大学', + url: 'https://mirrors.nju.edu.cn', + domain: 'mirrors.nju.edu.cn', + ipv6: true, + archlinux: true, + kalilinux: true, + deepin: true, + rockylinux: true, + almalinux: true, + epel: true, + fedora: true, + opencloudos: true, + anolis: true, + openkylin: true, + alpinelinux: true, + armbian: true, + proxmox: true, + linuxmint: true, + gentoo: true, + nix: true, + raspberry: true, + }, + { + name: '兰州大学', + url: 'https://mirror.lzu.edu.cn', + domain: 'mirror.lzu.edu.cn', + ipv6: true, + archlinux: true, + kalilinux: true, + deepin: true, + rockylinux: true, + almalinux: true, + epel: true, + fedora: true, + opencloudos: false, + anolis: false, + openkylin: true, + alpinelinux: true, + armbian: false, + proxmox: false, + linuxmint: true, + gentoo: true, + nix: false, + raspberry: false, + }, + { + name: '上海交通大学', + url: 'https://mirror.sjtu.edu.cn', + domain: 'mirror.sjtu.edu.cn', + ipv6: true, + archlinux: true, + kalilinux: true, + deepin: true, + rockylinux: true, + almalinux: true, + epel: 'incompatible', + fedora: 'incompatible', + opencloudos: true, + anolis: false, + openkylin: true, + alpinelinux: 'incompatible', + armbian: true, + proxmox: false, + linuxmint: true, + gentoo: 'incompatible', + nix: false, + raspberry: true, + }, + { + name: '重庆邮电大学', + url: 'https://mirrors.cqupt.edu.cn', + domain: 'mirrors.cqupt.edu.cn', + ipv6: true, + archlinux: true, + kalilinux: true, + deepin: true, + rockylinux: false, + almalinux: true, + epel: true, + fedora: true, + opencloudos: false, + anolis: false, + openkylin: false, + alpinelinux: true, + armbian: true, + proxmox: true, + linuxmint: false, + gentoo: false, + nix: false, + raspberry: true, + }, + { + name: '中国科学技术大学', + url: 'https://mirrors.ustc.edu.cn', + domain: 'mirrors.ustc.edu.cn', + ipv6: true, + archlinux: true, + kalilinux: true, + deepin: true, + rockylinux: true, + almalinux: false, + epel: true, + fedora: true, + opencloudos: false, + anolis: false, + openkylin: false, + alpinelinux: true, + armbian: true, + proxmox: true, + linuxmint: true, + gentoo: true, + nix: true, + raspberry: true, + }, + { + name: '中国科学院软件研究所', + url: 'https://mirror.iscas.ac.cn', + domain: 'mirror.iscas.ac.cn', + ipv6: false, + archlinux: true, + kalilinux: true, + deepin: true, + rockylinux: true, + almalinux: true, + epel: true, + fedora: true, + opencloudos: true, + anolis: false, + openkylin: true, + alpinelinux: true, + armbian: true, + proxmox: true, + linuxmint: true, + gentoo: true, + nix: true, + raspberry: true, + }, +] diff --git a/docs/assets/js/mirrors-table.js b/docs/assets/js/mirrors-table.js new file mode 100644 index 0000000..ef54e84 --- /dev/null +++ b/docs/assets/js/mirrors-table.js @@ -0,0 +1,249 @@ +const appId = 'mirrors-table' // 表格容器ID +let appInstance = null // 缓存表格容器引用 +let vueApp = null // Vue 应用实例 +let isInitializing = false // 是否正在初始化 +let lastInitTime = 0 // 上次初始化时间 +const INIT_COOLDOWN = 1000 // 初始化冷却时间(毫秒) + +// 更新表格主题 +function updateTableTheme() { + const scheme = document.querySelector('[data-md-color-scheme]')?.getAttribute('data-md-color-scheme') + const isDarkMode = scheme === 'slate' || scheme === 'dark' + // 设置 TDesign 的主题模式 + if (isDarkMode) { + document.documentElement.setAttribute('theme-mode', 'dark') + } else { + document.documentElement.removeAttribute('theme-mode') + } +} + +// 初始化表格的函数 +function initTables() { + // 如果正在初始化或者距离上次初始化时间太短,则跳过 + const now = Date.now() + if (isInitializing || now - lastInitTime < INIT_COOLDOWN) { + return + } + // 使用缓存的引用,如果没有则查询 + if (!appInstance) { + appInstance = document.getElementById(appId) + } + // 如果找不到容器,不执行后续操作 + if (!appInstance) { + return + } + // 如果表格已经初始化过,且DOM没有变化,则跳过 + if (appInstance.hasAttribute('data-initialized')) { + return + } + // console.log('找到表格容器,初始化表格') + isInitializing = true + lastInitTime = now + try { + // 清空容器内容,防止重复初始化 + while (appInstance.firstChild) { + appInstance.removeChild(appInstance.firstChild) + } + // 确保容器有适当的尺寸 + if (!appInstance.style.width) { + appInstance.style.width = '100%' + } + // 确保 Vue 和 TDesign 已加载 + if (typeof Vue !== 'undefined' && typeof TDesign !== 'undefined') { + // 创建 Vue 应用 + const App = Vue.createApp(app) + // 注册 TDesign 组件 + App.use(TDesign.default) + // 挂载应用 + vueApp = App.mount(appInstance) + // console.log('表格初始化成功') + // 标记表格已初始化 + appInstance.setAttribute('data-initialized', 'true') + // 立即更新主题 + updateTableTheme() + } else { + console.error('Vue 或 TDesign 未加载') + // 显示错误消息 + const errorDiv = document.createElement('div') + errorDiv.style.padding = '20px' + errorDiv.style.color = 'red' + errorDiv.textContent = 'Vue 或 TDesign 未加载,请在 mkdocs.yml 中添加相应 CDN 链接' + appInstance.appendChild(errorDiv) + } + } catch (error) { + console.error('初始化表格时发生错误:', error) + } finally { + isInitializing = false + } +} + +// 初始化 +function reinitializeTable() { + appInstance = document.getElementById(appId) + if (appInstance) { + appInstance.removeAttribute('data-initialized') + setTimeout(debouncedInit, 300) // 使用更短的延迟 + } +} + +// 设置主题监听器 +function setupThemeObserver() { + // 监听主题变化 + const observer = new MutationObserver(() => { + updateTableTheme() + }) + const element = document.querySelector('[data-md-color-scheme]') + if (element) { + observer.observe(element, { + attributes: true, + attributeFilter: ['data-md-color-scheme'], + }) + } else { + // 如果元素不存在,等待页面加载完成后重试 + setTimeout(setupThemeObserver, 1000) + } +} + +// 使用防抖函数包装初始化逻辑 +function debounce(func, wait) { + let timeout + return function () { + const context = this + const args = arguments + clearTimeout(timeout) + timeout = setTimeout(() => func.apply(context, args), wait) + } +} + +// 列定义 +const columns = [ + { colKey: 'name', title: '镜像站', align: 'center', width: '160', fixed: 'left' }, + { colKey: 'ipv6', title: 'IPv6', align: 'center' }, + { colKey: 'epel', title: 'EPEL', align: 'center', tooltip: 'Extra Packages for Enterprise Linux (EPEL) 是由 Fedora 组织维护的一个附加软件包仓库,它主要适用于除 Fedora 操作系统以外的红帽系 Linux 发行版。' }, + { colKey: 'archlinux', title: 'Arch Linux', align: 'center' }, + { colKey: 'kalilinux', title: 'Kali Linux', align: 'center' }, + { colKey: 'armbian', title: 'Armbian', align: 'center' }, + { colKey: 'deepin', title: 'Deepin', align: 'center' }, + { colKey: 'raspberry', title: 'Raspberry Pi OS', align: 'center', width: '130' }, + { colKey: 'linuxmint', title: 'Linux Mint', align: 'center' }, + { colKey: 'proxmox', title: 'Proxmox VE', align: 'center' }, + { colKey: 'fedora', title: 'Fedora', align: 'center' }, + { colKey: 'rockylinux', title: 'Rocky Linux', align: 'center' }, + { colKey: 'almalinux', title: 'AlmaLinux', align: 'center' }, + { colKey: 'opencloudos', title: 'OpenCloudOS', align: 'center', width: '120' }, + { colKey: 'anolis', title: 'Anolis OS', align: 'center' }, + { colKey: 'openkylin', title: 'openKylin', align: 'center' }, + { colKey: 'alpinelinux', title: 'Alpine Linux', align: 'center' }, + { colKey: 'gentoo', title: 'Gentoo', align: 'center' }, + { colKey: 'nix', title: 'NixOS', align: 'center' }, +] + +// 修改 app 对象的模板部分,添加自定义表头渲染 +const app = { + template: ` +
+ + + + +
+ `, + data() { + return { + columns, + data: mirrorsTableData, + } + }, +} + +// 防抖处理的初始化函数 +const debouncedInit = debounce(initTables, 300) + +// 仅在导航完成后监听URL变化 +let lastUrl = location.href +const urlObserver = new MutationObserver(() => { + const url = location.href + if (url !== lastUrl) { + lastUrl = url + // 重置初始化状态 + appInstance = document.getElementById(appId) + if (appInstance) { + appInstance.removeAttribute('data-initialized') + } + // 延迟初始化 + setTimeout(debouncedInit, 400) + } +}) +urlObserver.observe(document, { subtree: true, childList: true }) + +// 页面加载事件 +window.addEventListener('load', function () { + debouncedInit() + // 尝试找到 MkDocs 内容容器来精确监听 + const contentContainer = document.querySelector('.md-content') || document.querySelector('.md-main__inner') || document.querySelector('article') || document.body + // 只监听这个元素的子元素变化 + urlObserver.observe(contentContainer, { + childList: true, // 监听子节点添加或删除 + subtree: false, // 不监听所有后代变化,降低开销 + attributes: false, // 不监听属性变化 + }) + // 监听 iframe 情况下的 hashchange 和 popstate 事件 + window.addEventListener('hashchange', function () { + if (location.href !== lastUrl) { + lastUrl = location.href + appInstance = null + reinitializeTable() + } + }) + window.addEventListener('popstate', function () { + if (location.href !== lastUrl) { + lastUrl = location.href + appInstance = null + reinitializeTable() + } + }) +}) +document.addEventListener('DOMContentLoaded', function () { + // 设置主题观察器 + setupThemeObserver() +}) +// MkDocs 页面切换事件 +document.addEventListener('DOMContentSwitch', function () { + reinitializeTable() +}) diff --git a/docs/assets/js/tdesign.min.js b/docs/assets/js/tdesign.min.js new file mode 100644 index 0000000..6ecd4b2 --- /dev/null +++ b/docs/assets/js/tdesign.min.js @@ -0,0 +1,22 @@ +/** + * tdesign v1.11.5 + * (c) 2025 tdesign + * @license MIT + */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TDesign={},e.Vue)}(this,(function(e,t){"use strict";function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var r=n(t);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0){if(++ue>=800)return arguments[0]}else ue=0;return ie.apply(void 0,arguments)});function fe(e){return e!=e}function pe(e,t){return!!(null==e?0:e.length)&&function(e,t,n){return t==t?function(e,t,n){for(var r=n-1,o=e.length;++r-1}var me=/^(?:0|[1-9]\d*)$/;function he(e,t){var n=u(e);return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&me.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function Se(e){return null!=e&&je(e.length)&&!H(e)}function ke(e,t,n){if(!E(n))return!1;var r=u(t);return!!("number"==r?Se(n)&&he(t,n.length):"string"==r&&t in n)&&ye(n[t],e)}function Ne(e){return Pe((function(t,n){var r=-1,o=n.length,a=o>1?n[o-1]:void 0,l=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,l&&ke(n[0],n[1],l)&&(a=o<3?void 0:a,o=1),t=Object(t);++r-1},ft.prototype.set=function(e,t){var n=this.__data__,r=dt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var pt=te(f,"Map");function mt(e,t){var n,r,o=e.__data__;return("string"==(r=u(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function ht(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t0&&n(i)?t>1?Vt(i,t-1,n,r,o):kt(o,i):r||(o[o.length]=i)}return o}function Dt(e){return(null==e?0:e.length)?Vt(e,1):[]}function Et(e){return ve(xe(e,void 0,Dt),e+"")}var Ft=Xe(Object.getPrototypeOf,Object),Tt=Function.prototype,It=Object.prototype,Mt=Tt.toString,At=It.hasOwnProperty,Bt=Mt.call(Object);function Lt(e){if(!C(e)||"[object Object]"!=O(e))return!1;var t=Ft(e);if(null===t)return!0;var n=At.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Mt.call(n)==Bt}function Rt(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(o);++r=r?e:Rt(e,t,n)}var Ht=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function Wt(e){return Ht.test(e)}var Kt="\\ud800-\\udfff",Ut="["+Kt+"]",Yt="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",$t="\\ud83c[\\udffb-\\udfff]",Zt="[^"+Kt+"]",qt="(?:\\ud83c[\\udde6-\\uddff]){2}",Xt="[\\ud800-\\udbff][\\udc00-\\udfff]",Gt="(?:"+Yt+"|"+$t+")"+"?",Jt="[\\ufe0e\\ufe0f]?",Qt=Jt+Gt+("(?:\\u200d(?:"+[Zt,qt,Xt].join("|")+")"+Jt+Gt+")*"),en="(?:"+[Zt+Yt+"?",Yt,qt,Xt,Ut].join("|")+")",tn=RegExp($t+"(?="+$t+")|"+en+Qt,"g");function nn(e){return Wt(e)?function(e){return e.match(tn)||[]}(e):function(e){return e.split("")}(e)}var rn,on=(rn="toUpperCase",function(e){var t=Wt(e=Ct(e))?nn(e):void 0,n=t?t[0]:e.charAt(0),r=t?zt(t,1).join(""):e.slice(1);return n[rn]()+r});var an,ln=(an={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},function(e){return null==an?void 0:an[e]}),un=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,cn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");var sn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var dn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var vn="\\ud800-\\udfff",fn="\\u2700-\\u27bf",pn="a-z\\xdf-\\xf6\\xf8-\\xff",mn="A-Z\\xc0-\\xd6\\xd8-\\xde",hn="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",gn="["+hn+"]",yn="\\d+",bn="["+fn+"]",wn="["+pn+"]",On="[^"+vn+hn+yn+fn+pn+mn+"]",Cn="(?:\\ud83c[\\udde6-\\uddff]){2}",xn="[\\ud800-\\udbff][\\udc00-\\udfff]",Pn="["+mn+"]",jn="(?:"+wn+"|"+On+")",Sn="(?:"+Pn+"|"+On+")",kn="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Nn="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",_n="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",Vn="[\\ufe0e\\ufe0f]?",Dn=Vn+_n+("(?:\\u200d(?:"+["[^"+vn+"]",Cn,xn].join("|")+")"+Vn+_n+")*"),En="(?:"+[bn,Cn,xn].join("|")+")"+Dn,Fn=RegExp([Pn+"?"+wn+"+"+kn+"(?="+[gn,Pn,"$"].join("|")+")",Sn+"+"+Nn+"(?="+[gn,Pn+jn,"$"].join("|")+")",Pn+"?"+jn+"+"+kn,Pn+"+"+Nn,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",yn,En].join("|"),"g");function Tn(e,t,n){return e=Ct(e),void 0===(t=n?void 0:t)?function(e){return dn.test(e)}(e)?function(e){return e.match(Fn)||[]}(e):function(e){return e.match(sn)||[]}(e):e.match(t)||[]}var In=RegExp("['\u2019]","g");function Mn(e){return function(t){return function(e,t,n,r){var o=-1,a=null==e?0:e.length;for(r&&a&&(n=e[++o]);++oi))return!1;var c=a.get(e),s=a.get(t);if(c&&s)return c==t&&s==e;var d=-1,v=!0,f=2&n?new Ar:void 0;for(a.set(e,t),a.set(t,e);++d=t||n<0||d&&e-c>=a}function m(){var e=so();if(p(e))return h(e);i=setTimeout(m,function(e){var n=t-(e-u);return d?fo(n,a-(e-c)):n}(e))}function h(e){return i=void 0,v&&r?f(e):(r=o=void 0,l)}function g(){var e=so(),n=p(e);if(r=arguments,o=this,u=e,n){if(void 0===i)return function(e){return c=e,i=setTimeout(m,t),s?f(e):l}(u);if(d)return clearTimeout(i),i=setTimeout(m,t),f(u)}return void 0===i&&(i=setTimeout(m,t)),l}return t=A(t)||0,E(n)&&(s=!!n.leading,a=(d="maxWait"in n)?vo(A(n.maxWait)||0,t):a,v="trailing"in n?!!n.trailing:v),g.cancel=function(){void 0!==i&&clearTimeout(i),c=0,r=u=o=i=void 0},g.flush=function(){return void 0===i?l:h(so())},g}function mo(e,t,n){(void 0!==n&&!ye(e[t],n)||void 0===n&&!(t in e))&&ge(e,t,n)}function ho(e){return C(e)&&Se(e)}function go(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function yo(e,t,n,r,o,a,l){var i=go(e,n),u=go(t,n),c=l.get(u);if(c)mo(e,n,c);else{var s,d=a?a(i,u,n+"",e,t,l):void 0,v=void 0===d;if(v){var f=j(u),p=!f&&Le(u),m=!f&&!p&&$e(u);d=u,f||p||m?j(i)?d=i:ho(i)?d=ae(i):p?(v=!1,d=$n(u,!0)):m?(v=!1,d=Pr(u,!0)):d=[]:Lt(u)||Ie(u)?(d=i,Ie(i)?d=Oe(s=i,rt(s)):E(i)&&!H(i)||(d=Sr(u))):v=!1}v&&(l.set(u,d),o(d,u,r,a,l),l.delete(u)),mo(e,n,d)}}function bo(e,t,n,r,o){e!==t&&io(t,(function(a,l){if(o||(o=new Hn),E(a))yo(e,t,l,n,bo,r,o);else{var i=r?r(go(e,l),a,l+"",e,t,o):void 0;void 0===i&&(i=a),mo(e,l,i)}}),rt)}var wo=Ne((function(e,t,n,r){bo(e,t,n,r)})),Oo=wo;function Co(e,t,n){for(var r=-1,o=null==e?0:e.length;++r=200&&(a=Lr,l=!1,t=new Ar(t));e:for(;++ot}function Do(e){return"string"==typeof e||!j(e)&&C(e)&&"[object String]"==O(e)}var Eo=Math.min;function Fo(e){return ho(e)?e:[]}var To=Pe((function(e){var t=P(e,Fo);return t.length&&t[0]===e[0]?function(e,t,n){for(var r=n?Co:pe,o=e[0].length,a=e.length,l=a,i=Array(a),u=1/0,c=[];l--;){var s=e[l];l&&t&&(s=P(s,ze(t))),u=Eo(s.length,u),i[l]=!n&&(t||o>=120&&s.length>=120)?new Ar(l&&s):void 0}s=e[0];var d=-1,v=i[0];e:for(;++d1),t})),Oe(e,nr(e),n),r&&(n=Ir(n,7,Qo));for(var o=t.length;o--;)Jo(n,t[o]);return n})),ta=ea;function na(e,t,n,r){if(!E(e))return e;for(var o=-1,a=(t=xt(t,e)).length,l=a-1,i=e;null!=i&&++o9007199254740991)return n;do{t%2&&(n+=e),(t=oa(t/2))&&(e+=e)}while(t);return n}var la=ro("length"),ia="\\ud800-\\udfff",ua="["+ia+"]",ca="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",sa="\\ud83c[\\udffb-\\udfff]",da="[^"+ia+"]",va="(?:\\ud83c[\\udde6-\\uddff]){2}",fa="[\\ud800-\\udbff][\\udc00-\\udfff]",pa="(?:"+ca+"|"+sa+")"+"?",ma="[\\ufe0e\\ufe0f]?",ha=ma+pa+("(?:\\u200d(?:"+[da,va,fa].join("|")+")"+ma+pa+")*"),ga="(?:"+[da+ca+"?",ca,va,fa,ua].join("|")+")",ya=RegExp(sa+"(?="+sa+")|"+ga+ha,"g");function ba(e){return Wt(e)?function(e){for(var t=ya.lastIndex=0;ya.test(e);)++t;return t}(e):la(e)}var wa=Math.ceil;function Oa(e,t,n){e=Ct(e);var r=(t=R(t))?ba(e):0;return t&&r=200){var c=t?null:Fa(e);if(c)return Hr(c);l=!1,o=Lr,u=new Ar}else u=t?[]:i;e:for(;++r=t?e:""+Array(t+1-r.length).join(n)+e},b={s:y,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),o=n%60;return(t<=0?"+":"-")+y(r,2,"0")+":"+y(o,2,"0")},m:function e(t,n){if(t.date()1)return e(l[0])}else{var i=t.name;O[i]=t,o=i}return!r&&o&&(w=o),o||!r&&w},j=function(e,t){if(x(e))return e.clone();var n="object"==u(t)?t:{};return n.date=e,n.args=arguments,new k(n)},S=b;S.l=P,S.i=x,S.w=function(e,t){return j(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var k=function(){function u(e){this.$L=P(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[C]=!0}var g=u.prototype;return g.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(S.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(m);if(r){var o=r[2]-1||0,a=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],o,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],o,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return S},g.isValid=function(){return!(this.$d.toString()===p)},g.isSame=function(e,t){var n=j(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return j(e)0&&void 0!==arguments[0]?arguments[0]:void 0,n=arguments.length>1?arguments[1]:void 0,r=t.getCurrentInstance()?t.inject(qa,null):Xa,o=t.computed((function(){return(null==r?void 0:r.value)||Za})),a=t.computed((function(){return Object.assign({},o.value[e],n)}));return{t:function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o-1&&e.indexOf("MSIE")>-1,n=e.indexOf("Trident")>-1&&e.indexOf("rv:11.0")>-1;if(t){var r=new RegExp("MSIE (\\d+\\.\\d+);"),o=e.match(r);if(!o)return-1;var a=parseFloat(o[1]);return a<7?6:a}return n?11:Number.MAX_SAFE_INTEGER}function il(e,t){var n=Ho(t);if(!e||0===e.length)return n?{length:0,characters:e}:0;for(var r=0,o=0;o127?2:1,n&&r+a>t)return{length:r,characters:e.slice(0,o)};r+=a}return n?{length:r,characters:e}:r}function ul(e){return Ho(e)?"".concat(e,"px"):e}function cl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function sl(e){for(var t=1;t11){var d=l.match(/[\d.]+/g),v=d?"rgba(".concat(d[0],", ").concat(d[1],", ").concat(d[2],", 0)"):"";tl(e,sl(sl({},o),{},{background:"conic-gradient(from 90deg at 50% 50%,".concat(v," 0deg, ").concat(l," 360deg)")}))}else tl(e,sl(sl({},o),{},{background:""}))}}(n.value)}))})),function(){var r="".concat(e.value,"-loading__gradient"),o=[r,"".concat(e.value,"-icon-loading")];return t.createVNode("svg",{class:o,viewBox:"0 0 12 12",version:"1.1",width:"1em",height:"1em",xmlns:"http://www.w3.org/2000/svg"},[t.createVNode("foreignObject",{x:"0",y:"0",width:"12",height:"12"},[t.createVNode("div",{class:"".concat(r,"-conic"),ref:n},null)])])}}}),vl={exports:{}},fl={exports:{}};(function(){var e,t,n,r,o,a;"undefined"!=typeof performance&&null!==performance&&performance.now?fl.exports=function(){return performance.now()}:"undefined"!=typeof process&&null!==process&&process.hrtime?(fl.exports=function(){return(e()-o)/1e6},t=process.hrtime,r=(e=function(){var e;return 1e9*(e=t())[0]+e[1]})(),a=1e9*process.uptime(),o=r-a):Date.now?(fl.exports=function(){return Date.now()-n},n=Date.now()):(fl.exports=function(){return(new Date).getTime()-n},n=(new Date).getTime())}).call(Wa);for(var pl=fl.exports,ml="undefined"==typeof window?Wa:window,hl=["moz","webkit"],gl="AnimationFrame",yl=ml["request"+gl],bl=ml["cancel"+gl]||ml["cancelRequest"+gl],wl=0;!yl&&wl-1}function Dl(e,t){if(e){for(var n=e.className,r=(t||"").split(" "),o=0,a=r.length;o0&&void 0!==arguments[0]?arguments[0]:"body";return Do(e)?document.querySelector(e):H(e)?e():e};function Il(e){return e&&e===e.window}function Ml(e,t){if(kl||!e)return 0;var n=t?"scrollLeft":"scrollTop",r=0;return Il(e)?r=e[t?"pageXOffset":"pageYOffset"]:e instanceof Document?r=e.documentElement[n]:e&&(r=e[n]),r}function Al(e,t){var n=t.container,r=void 0===n?window:n,o=t.duration,a=void 0===o?450:o,l=t.easing,i=void 0===l?Sl:l,u=Ml(r),c=Date.now();return new Promise((function(t){var n=function(){var o=Date.now()-c,l=i(Math.min(o,a),u,e,a);Il(r)?r.scrollTo(window.pageXOffset,l):r instanceof Document||"HTMLDocument"===r.constructor.name?r.documentElement.scrollTop=l:r.scrollTop=l,jl(on},Ll=function(e){if(!(e instanceof HTMLFormElement))throw new Error("target must be HTMLFormElement");var t=document.createElement("input");t.type="submit",t.hidden=!0,e.appendChild(t),t.click(),e.removeChild(t)};function Rl(e,t){var n=e.getBoundingClientRect();if(t){var r=t.getBoundingClientRect();return n.top>=r.top&&n.left>=r.left&&n.bottom<=r.bottom&&n.right<=r.right}return n.top>=0&&n.left>=0&&n.bottom+80<=window.innerHeight&&n.right<=window.innerWidth}function zl(e,t){var n="";return document.defaultView&&document.defaultView.getComputedStyle&&(n=document.defaultView.getComputedStyle(e,null).getPropertyValue(t)),n&&n.toLowerCase?n.toLowerCase():n}function Hl(e){var t=e.parentNode;return!(!t||"HTML"===t.nodeName)&&("fixed"===zl(e,"position")||Hl(t))}function Wl(){var e=document.body,t=document.documentElement;return{scrollTop:window.pageYOffset||t.scrollTop||e.scrollTop,scrollLeft:window.pageXOffset||t.scrollLeft||e.scrollLeft}}var Kl=Object.prototype.hasOwnProperty,Ul=function(e,t){return Kl.call(e,t)},Yl=function(e,t){return Ul(e,t)?e[t]:void 0};function $l(e){var n;return E(e)&&"defaultNode"in e?n=e.defaultNode:(t.isVNode(e)||Do(e))&&(n=e),n}function Zl(e){var n=[],r=function(e){if(j(e))return e.forEach((function(e){if(e.children&&j(e.children)){if(e.type!==t.Fragment)return;r(e.children)}else n.push(e)})),n};return r(e)}function ql(e){return E(e)&&"params"in e?e.params:{}}function Xl(e,t,n){var r,o,a,l,i=null===(r=(o=e.$slots)[Bn(n)])||void 0===r?void 0:r.call(o,t);return i||((i=null===(a=(l=e.$slots)[$o(n)])||void 0===a?void 0:a.call(l,t))||null)}var Gl=function(e,n,r){var o,a=ql(r),l=$l(r);if(n in e&&(o=e[n]),!1!==o&&null!==o)return!0===o&&l?Xl(e,a,n)||l:H(o)?o(t.h,a):[void 0,a,""].includes(o)&&(e.$slots[Bn(n)]||e.$slots[$o(n)])?Xl(e,a,n):o};function Jl(e,t,n){var r,o,a,l,i=null===(r=(o=e.slots)[Bn(t)])||void 0===r?void 0:r.call(o,n);return i&&i.filter((function(e){return"Symbol(v-cmt)"!==e.type.toString()})).length||(i=null===(a=(l=e.slots)[$o(t)])||void 0===a?void 0:a.call(l,n))&&i.filter((function(e){return"Symbol(v-cmt)"!==e.type.toString()})).length?i:null}function Ql(e){return!![void 0,null,""].includes(e)||!(e instanceof Array?e:[e]).filter((function(e){var t;return"Symbol(Comment)"!==(null==e||null===(t=e.type)||void 0===t?void 0:t.toString())})).length}var ei=function(){var e=t.getCurrentInstance();return function(n,r){var o=ql(r),a=$l(r),l=function(e){return!(!E(e)||!("slotFirst"in e))&&e.slotFirst}(r),i=e.slots[Bn(n)]||e.slots[$o(n)];if(l&&i)return Jl(e,n,o);if(function(e,t){var n=(null==e?void 0:e.vnode.props)||{};return Ul(n,Bn(t))||Ul(n,$o(t))}(e,n)){var u=e.props[Bn(n)]||e.props[$o(n)];if(!1===u||null===u)return;return!0===u?Jl(e,n,o)||a:H(u)?u(t.h,o):[void 0,""].includes(u)&&i?Jl(e,n,o):u}if(i)return Jl(e,n,o);var c=e.props[Bn(n)]||e.props[$o(n)];return!1!==c&&null!==c?!0===c?a:H(c)?c(t.h,o):c:void 0}},ti=function(){var e=ei();return function(t,n){var r=$l(n);return e(t,n)||r}},ni=function(){var e=ei();return function(t,n,r){var o=ql(r),a=$l(r),l=o?{params:o}:void 0,i=e(t,l),u=e(n,l),c=Ql(i)?u:i;return Ql(c)?a:c}},ri=function(e,n){var r=H(e)?t.computed(e):t.ref(e),o=H(n)?t.computed(n):t.ref(n),a=t.ref(),l=function(){a.value=Fl(r.value,o.value)};return t.onMounted((function(){return l()})),t.watch([r,o],(function(){return l()})),a},oi={attach:{type:[String,Function],default:""},content:{type:[String,Function]},default:{type:[String,Function]},delay:{type:Number,default:0},fullscreen:Boolean,indicator:{type:[Boolean,Function],default:!0},inheritColor:Boolean,loading:{type:Boolean,default:!0},preventScrollThrough:{type:Boolean,default:!0},showOverlay:{type:Boolean,default:!0},size:{type:String,default:"medium"},text:{type:[String,Function]},zIndex:{type:Number}},ai=t.defineComponent({name:"TLoading",inheritAttrs:!1,props:oi,setup:function(e,n){var r=n.slots,o=n.attrs,a=t.ref(!1),l={name:Qa("loading"),centerClass:Qa("loading--center"),fullscreenClass:Qa("loading__fullscreen"),lockClass:Qa("loading--lock"),overlayClass:Qa("loading__overlay"),relativeClass:Qa("loading__parent"),fullClass:Qa("loading--full"),inheritColorClass:Qa("loading--inherit-color")},i=l.name,u=l.centerClass,c=l.fullscreenClass,d=l.lockClass,v=l.overlayClass,f=l.relativeClass,p=l.fullClass,m=l.inheritColorClass,h=Qa(),g=ei(),y=ni(),b=el().SIZE,w=function(){a.value=!1;var t=setTimeout((function(){a.value=!0,clearTimeout(t)}),e.delay)},O=ri((function(){return e.attach})),C=t.computed((function(){return Boolean(!e.delay||e.delay&&a.value)})),x=t.computed((function(){var t={};return void 0!==e.zIndex&&(t.zIndex=e.zIndex),["small","medium","large"].includes(e.size)||(t["font-size"]=e.size),t})),P=t.computed((function(){return Boolean(e.default||r.default||e.content||r.content)})),j=t.computed((function(){return e.preventScrollThrough&&e.fullscreen})),S=t.computed((function(){return Boolean(e.text||r.text)})),k=t.computed((function(){return P.value&&e.loading&&C.value})),N=t.computed((function(){return e.fullscreen&&e.loading&&C.value})),_=t.computed((function(){return e.attach&&e.loading&&C.value})),V=t.computed((function(){var t=[u.value,Yl(b.value,e.size),s({},m.value,e.inheritColor)],n=[i.value,c.value,u.value,v.value];return{baseClasses:t,attachClasses:t.concat([i.value,p.value,s({},v.value,e.showOverlay)]),withContentClasses:t.concat([i.value,p.value,s({},v.value,e.showOverlay)]),fullScreenClasses:n,normalClasses:t.concat([i.value])}})),D=t.toRefs(e).loading;return t.watch([D],(function(e){Ha(e,1)[0]?(w(),j.value&&Dl(document.body,d.value)):j.value&&El(document.body,d.value)})),t.onMounted((function(){e.delay&&w()})),function(){var n=V.value,r=n.fullScreenClasses,a=n.baseClasses,l=n.withContentClasses,i=n.attachClasses,u=n.normalClasses,c=t.createVNode(dl,{size:e.size},null),s=D.value&&g("indicator",c),d=S.value&&t.createVNode("div",{class:"".concat(h.value,"-loading__text")},[g("text")]);return e.fullscreen?N.value&&e.loading?t.createVNode(t.Teleport,{disabled:!e.attach||!O.value,to:O.value},{default:function(){return[t.createVNode("div",t.mergeProps({class:r,style:x.value},o),[t.createVNode("div",{class:a},[s,d])])]}}):null:P.value?t.createVNode("div",t.mergeProps({class:f.value},o),[y("default","content"),k.value&&t.createVNode("div",{class:l,style:x.value},[s,d])]):e.attach?_.value&&D.value?t.createVNode(t.Teleport,{disabled:!e.attach||!O.value,to:O.value},{default:function(){return[t.createVNode("div",t.mergeProps({class:i,style:x.value},o),[s,d])]}}):null:D.value?t.createVNode("div",t.mergeProps({class:u,style:x.value},o),[s,d]):null}}});function li(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var ii=null;function ui(e){var n=function(e){return Go({fullscreen:!1,attach:"body",loading:!0,preventScrollThrough:!0},e)}(e);if(n.fullscreen&&ii)return ii;var r=t.defineComponent({setup:function(){return{loadingOptions:t.reactive(n)}},render:function(){return t.h(ai,function(e){for(var t=1;t0?c:0,d=r.offsetWidth,v=r.offsetHeight;null===a.value.parentNode&&(tl(a.value,{position:"absolute",left:"".concat(0-s,"px"),top:"".concat(0-s,"px"),width:"".concat(d,"px"),height:"".concat(v,"px"),borderRadius:u.borderRadius,pointerEvents:"none",overflow:"hidden"}),r.appendChild(a.value));var f=document.createElement("div");tl(f,{marginTop:"0",marginLeft:"0",right:"".concat(d,"px"),width:"".concat(d+20,"px"),height:"100%",transition:"transform ".concat(200,"ms cubic-bezier(.38, 0, .24, 1), background ").concat(400,"ms linear"),transform:"skewX(-8deg)",pointerEvents:"none",position:"absolute",zIndex:0,backgroundColor:o,opacity:"0.9"});for(var p=new WeakMap,m=r.children.length,h=0;h0)){var n=document.createElement("script");n.setAttribute("class",t),n.setAttribute("src",e),document.body.appendChild(n)}}(e,"".concat(Mv,"-svg-js-stylesheet--unique-class"))}))}));var v=t.computed((function(){return{class:s.value,style:d.value,onClick:function(t){var n;return null===(n=e.onClick)||void 0===n?void 0:n.call(e,{e:t})}}}));return function(){return t.h("svg",v.value,t.h("use",{href:e.url?"#".concat(a.value):"#t-icon-".concat(a.value)}))}}}),"TIcon"),Bv={content:{type:[String,Function]},default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},download:{type:[String,Boolean]},hover:{type:String,default:"underline",validator:function(e){return!e||["color","underline"].includes(e)}},href:{type:String,default:""},prefixIcon:{type:Function},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},suffixIcon:{type:Function},target:{type:String,default:""},theme:{type:String,default:"default",validator:function(e){return!e||["default","primary","danger","warning","success"].includes(e)}},underline:Boolean,onClick:Function},Lv=t.defineComponent({name:"TLink",props:Bv,emits:["click"],setup:function(e,n){var r=n.emit,o=ni(),a=ei(),l=Qa("link"),u=el(),c=u.STATUS,d=u.SIZE,v=Ga("classPrefix").classPrefix,f=Oi(),p=t.computed((function(){return["".concat(l.value),"".concat(l.value,"--theme-").concat(e.theme),s(s(s(s({},d.value[e.size],"medium"!==e.size),c.value.disabled,f.value),"".concat(v.value,"-is-underline"),e.underline),"".concat(l.value,"--hover-").concat(e.hover),!f.value)]})),m=function(e){f.value||r("click",e)};return function(){var n=o("default","content"),r=a("prefixIcon"),u=a("suffixIcon");return t.createVNode("a",{class:i(p.value),href:f.value||!e.href?void 0:e.href,target:e.target?e.target:void 0,download:e.download?e.download:void 0,onClick:m},[r?t.createVNode("span",{class:"".concat(l.value,"__prefix-icon")},[r]):null,n,u?t.createVNode("span",{class:"".concat(l.value,"__suffix-icon")},[u]):null])}}}),Rv=pi(Lv),zv={align:{type:String,default:"top",validator:function(e){return!e||["start","end","center","stretch","baseline","top","middle","bottom"].includes(e)}},gutter:{type:[Number,Object,Array],default:0},justify:{type:String,default:"start",validator:function(e){return!e||["start","end","center","space-around","space-between"].includes(e)}},tag:{type:String,default:"div"}},Hv=function(e){return e<768?"xs":e>=768&&e<992?"sm":e>=992&&e<1200?"md":e>=1200&&e<1400?"lg":e>=1400&&e<1880?"xl":"xxl"};function Wv(e,n){t.onMounted((function(){window.addEventListener(e,n)})),t.onBeforeUnmount((function(){window.removeEventListener(e,n)}))}function Kv(){var e=t.ref(Hv(kl?0:window.innerWidth));return Wv("resize",(function(){e.value=Hv(kl?0:window.innerWidth)})),e}function Uv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Yv(e){for(var t=1;t=0),"".concat(e,"-").concat(r,"-offset-").concat(a.offset),parseInt(a.offset,10)>=0),"".concat(e,"-").concat(r,"-push-").concat(a.push),parseInt(a.push,10)>=0),"".concat(e,"-").concat(r,"-pull-").concat(a.pull),parseInt(a.pull,10)>=0))}),{});return Yv(s(s(s(s(s(s({},"".concat(e),!0),"".concat(e,"-").concat(n),!Uo(n)),"".concat(e,"-order-").concat(r),r),"".concat(e,"-offset-").concat(o),o),"".concat(e,"-push-").concat(a),a),"".concat(e,"-pull-").concat(l),l),i)}(n.value,e)})),i=t.computed((function(){var t,n,r,l,i,u={},c=e.flex;if(c&&(u.flex=function(e){return Ho(e)?"".concat(e," ").concat(e," 0"):/^\d+(\.\d+)?(px|r?em|%)$/.test(e)?"0 0 ".concat(e):e}(c)),o){var s=o.gutter;Object.assign(u,(t=s,n=a.value,r={},l=function(e){return Object.assign(r,{paddingLeft:"".concat(e/2,"px"),paddingRight:"".concat(e/2,"px")})},i={isNumber:function(e){Ho(e)&&l(e)},isArray:function(e){j(e)&&e.length&&(Ho(e[0])&&l(e[0]),E(e[0])&&e[0][n]&&l(e[0][n]))},isObject:function(e){E(e)&&!j(e)&&e[n]&&l(e[n])}},Object.keys(i).forEach((function(e){i[e](t)})),r))}return u}));return function(){var n,o,a=e.tag;return t.createVNode(a,{class:l.value,style:i.value},"function"==typeof(o=n=r("default"))||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?n:{default:function(){return[n]}})}}}),Xv=pi($v),Gv=pi(qv),Jv=t.defineComponent({name:"TLayout",setup:function(){var e=t.ref(!1),n=ei(),r=Qa("layout"),o=t.computed((function(){return[r.value,s({},"".concat(r.value,"--with-sider"),e.value)]}));return t.provide("layout",{hasSide:e}),function(){return t.createVNode("section",{class:o.value},[n("default")])}}}),Qv={height:{type:String,default:""}},ef=t.defineComponent({name:"THeader",props:Qv,setup:function(e){var n=Qa("layout__header"),r=ei();return function(){return t.createVNode("header",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),tf={height:{type:String,default:""}},nf=t.defineComponent({name:"TFooter",props:tf,setup:function(e){var n=Qa("layout__footer"),r=ei();return function(){return t.createVNode("footer",{class:n.value,style:e.height?{height:e.height}:{}},[r("default")])}}}),rf={width:{type:String,default:""}},of=t.defineComponent({name:"TAside",props:rf,setup:function(e){var n=t.inject("layout",Object.create(null)).hasSide,r=Qa("layout__sider"),o=ei();if(n)return t.onMounted((function(){n.value=!0})),t.onUnmounted((function(){n.value=!1})),function(){var n=e.width?{width:e.width}:{};return t.createVNode("aside",{class:r.value,style:n},[o("default")])}}}),af={content:{type:[String,Function]},default:{type:[String,Function]}},lf=t.defineComponent({name:"TContent",props:af,setup:function(){var e=Qa("layout__content"),n=ni();return function(){return t.createVNode("main",{class:e.value},[n("default","content")])}}}),uf=pi(of),cf=pi(Jv),sf=pi(ef),df=pi(nf),vf=pi(lf),ff={align:{type:String,default:"center",validator:function(e){return!e||["left","right","center"].includes(e)}},content:{type:[String,Function]},dashed:Boolean,default:{type:[String,Function]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},theme:{type:String,validator:function(e){return!e||["horizontal","vertical"].includes(e)}}},pf=t.defineComponent({name:"TDivider",props:ff,setup:function(e){var n=Qa("divider"),r=ni();return function(){var o=e.layout,a=e.dashed,l=e.align,i=r("default","content"),u=["".concat(n.value),["".concat(n.value,"--").concat(o)],s(s(s({},"".concat(n.value,"--dashed"),!!a),"".concat(n.value,"--with-text"),!!i),"".concat(n.value,"--with-text-").concat(l),!!i)];return t.createVNode("div",{class:u},[i&&t.createVNode("span",{class:"".concat(n.value,"__inner-text")},[i])])}}}),mf=pi(pf),hf={align:{type:String,validator:function(e){return!e||["start","end","center","baseline"].includes(e)}},breakLine:Boolean,direction:{type:String,default:"horizontal",validator:function(e){return!e||["vertical","horizontal"].includes(e)}},separator:{type:[String,Function]},size:{type:[String,Number,Array],default:"medium"}};function gf(){var e=t.getCurrentInstance();return function(t,n){var r,o;return n||(n=e.slots),Zl((null===(r=n)||void 0===r||null===(o=r.default)||void 0===o?void 0:o.call(r))||[]).filter((function(e){var n;return null===(n=e.type.name)||void 0===n?void 0:n.endsWith(t)}))}}function yf(){var e=t.getCurrentInstance();return function(){var n,r=e.slots;return((null==r||null===(n=r.default)||void 0===n?void 0:n.call(r))||[]).filter((function(e){return!("symbol"===u(e.type)&&!e.children)&&e.type!==t.Comment})).map((function(e){return e.children&&j(e.children)&&e.type===t.Fragment?e.children:e})).flat()}}function bf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wf(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return Do(e)?e:H(e)?e(t.h,n):H(null==e?void 0:e.render)?e.render(t.h,n):e}function _f(e,t,n){var r,o=null===(r=e.props)||void 0===r?void 0:r[t];if(o)return o;var a=e.children,l=(null==a?void 0:a[t])||(null==a?void 0:a[n]);return l?null==l?void 0:l():null}function Vf(e,t){return e===kf.props}var Df=t.defineComponent({name:"TDescriptionsRow",props:{row:Array,itemType:String},setup:function(e){var n=t.inject(Sf),r=Qa("descriptions"),o=Ga("descriptions").globalConfig,a=t.computed((function(){return"horizontal"===n.layout})),l=t.computed((function(){return"horizontal"===n.itemLayout})),i=function(i){var u=["".concat(r.value,"__label")],c=null,s=null;Vf(e.itemType)?(c=i.label,s=i.span):(c=_f(i,"label"),s=i.props.span);var d=a.value?l.value?1:s:1;return t.createVNode("td",t.mergeProps({colspan:d,class:u},{style:n.labelStyle}),[c,n.colon&&o.value.colonText])},u=function(o){var i=["".concat(r.value,"__content")],u=null,c=null;Vf(e.itemType)?(u=o.content,c=o.span):(u=_f(o,"content","default"),c=o.props.span);var s=a.value?c>1&&l.value?2*c-1:c:1;return t.createVNode("td",t.mergeProps({colspan:s,class:i},{style:n.contentStyle}),[u])};return function(){return t.createVNode(t.Fragment,null,[a.value?l.value?t.createVNode("tr",null,[e.row.map((function(e){return t.createVNode(t.Fragment,null,[i(e),u(e)])}))]):t.createVNode(t.Fragment,null,[t.createVNode("tr",null,[e.row.map((function(e){return i(e)}))]),t.createVNode("tr",null,[e.row.map((function(e){return u(e)}))])]):l.value?t.createVNode(t.Fragment,null,[e.row.map((function(e){return t.createVNode("tr",null,[i(e),u(e)])}))]):t.createVNode(t.Fragment,null,[e.row.map((function(e){return t.createVNode(t.Fragment,null,[t.createVNode("tr",null,[i(e)]),t.createVNode("tr",null,[u(e)])])}))])])}}}),Ef=t.defineComponent({name:"TDescriptions",props:jf,setup:function(e){var n=Qa("descriptions"),r=el().SIZE,o=gf(),a=ei(),l=t.ref(kf.props),i=function(){var t=e.column,n=e.layout,r=[];if(j(e.items))r=e.items.map((function(e){return{label:Nf(e.label),content:Nf(e.content),span:e.span||1}})),l.value=kf.props;else{var a=o("TDescriptionsItem");0!==a.length&&(r=a,l.value=kf.slots)}if("vertical"===n)return[r];var i=[],u=t,c=[];return r.forEach((function(e,n){var o,a=1;Vf(l.value)?a=(a=Wo(e.span)?a:e.span)>t?t:a:(e.props=e.props||{},a=(a=Wo(null===(o=e.props)||void 0===o?void 0:o.span)?a:e.props.span)>t?t:a,e.props.span=a);u>=a?(i.push(e),u-=a):(c.push(i),i=[e],u=t-a),n===r.length-1&&(Vf(l.value)?e.span+=u:e.props.span+=u,c.push(i))})),c};t.provide(Sf,e);return function(){return t.createVNode("div",{class:n.value},[(u=a("title"),u?t.createVNode("div",{class:"".concat(n.value,"__header")},[u]):""),(o=["".concat(n.value,"__body"),r.value[e.size],s({},"".concat(n.value,"__body--fixed"),"fixed"===e.tableLayout),s({},"".concat(n.value,"__body--border"),e.bordered)],t.createVNode("table",{class:o},[t.createVNode("tbody",null,[i().map((function(e){return t.createVNode(Df,{"item-type":l.value,row:e},null)}))])]))]);var o,u}}}),Ff={content:{type:[String,Function]},default:{type:[String,Function]},label:{type:[String,Function]},span:{type:Number,default:1}},Tf=t.defineComponent({name:"TDescriptionsItem",props:Ff}),If=pi(Ef),Mf=pi(Tf);function Af(e,t,n,r,o,a,l){try{var i=e[a](l),u=i.value}catch(e){return void n(e)}i.done?t(u):Promise.resolve(u).then(r,o)}function Bf(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function l(e){Af(a,r,o,l,i,"next",e)}function i(e){Af(a,r,o,l,i,"throw",e)}l(void 0)}))}}var Lf={exports:{}},Rf={exports:{}};!function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(Rf),function(e){var t=Rf.exports.default;function n(){ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ +e.exports=n=function(){return o},e.exports.__esModule=!0,e.exports.default=e.exports;var r,o={},a=Object.prototype,l=a.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},u="function"==typeof Symbol?Symbol:{},c=u.iterator||"@@iterator",s=u.asyncIterator||"@@asyncIterator",d=u.toStringTag||"@@toStringTag";function v(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{v({},"")}catch(r){v=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var o=t&&t.prototype instanceof w?t:w,a=Object.create(o.prototype),l=new F(r||[]);return i(a,"_invoke",{value:_(e,n,l)}),a}function p(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}o.wrap=f;var m="suspendedStart",h="suspendedYield",g="executing",y="completed",b={};function w(){}function O(){}function C(){}var x={};v(x,c,(function(){return this}));var P=Object.getPrototypeOf,j=P&&P(P(T([])));j&&j!==a&&l.call(j,c)&&(x=j);var S=C.prototype=w.prototype=Object.create(x);function k(e){["next","throw","return"].forEach((function(t){v(e,t,(function(e){return this._invoke(t,e)}))}))}function N(e,n){function r(o,a,i,u){var c=p(e[o],e,a);if("throw"!==c.type){var s=c.arg,d=s.value;return d&&"object"==t(d)&&l.call(d,"__await")?n.resolve(d.__await).then((function(e){r("next",e,i,u)}),(function(e){r("throw",e,i,u)})):n.resolve(d).then((function(e){s.value=e,i(s)}),(function(e){return r("throw",e,i,u)}))}u(c.arg)}var o;i(this,"_invoke",{value:function(e,t){function a(){return new n((function(n,o){r(e,t,n,o)}))}return o=o?o.then(a,a):a()}})}function _(e,t,n){var o=m;return function(a,l){if(o===g)throw Error("Generator is already running");if(o===y){if("throw"===a)throw l;return{value:r,done:!0}}for(n.method=a,n.arg=l;;){var i=n.delegate;if(i){var u=V(i,n);if(u){if(u===b)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===m)throw o=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=g;var c=p(e,t,n);if("normal"===c.type){if(o=n.done?y:h,c.arg===b)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=y,n.method="throw",n.arg=c.arg)}}}function V(e,t){var n=t.method,o=e.iterator[n];if(o===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=r,V(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),b;var a=p(o,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,b;var l=a.arg;return l?l.done?(t[e.resultName]=l.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=r),t.delegate=null,b):l:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,b)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function T(e){if(e||""===e){var n=e[c];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function t(){for(;++o=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=l.call(a,"catchLoc"),c=l.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&l.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),b}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;E(n)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:T(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=r),b}},o}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(Lf);var zf=Lf.exports(),Hf=zf;try{regeneratorRuntime=zf}catch(e){"object"===("undefined"==typeof globalThis?"undefined":u(globalThis))?globalThis.regeneratorRuntime=zf:Function("r","regeneratorRuntime = r")(zf)}var Wf={container:{type:[String,Function],default:function(){return function(){return window}}},content:{type:[String,Function]},default:{type:[String,Function]},offsetBottom:{type:Number,default:0},offsetTop:{type:Number,default:0},zIndex:{type:Number},onFixedChange:Function},Kf=t.defineComponent({name:"TAffix",props:Wf,emits:["fixedChange"],setup:function(e,n){var r,o=Qa("affix"),a=ei(),l=t.ref(null),i=t.ref(null),u=t.ref(null===(r=document)||void 0===r?void 0:r.createElement("div")),c=t.ref(!1),s=t.ref(!1),d=t.ref(),v=t.ref(),f=0,p=function(){c.value||(f=window.requestAnimationFrame((function(){var t,r;f=0;var a,s=null!==(t=null===(r=l.value)||void 0===r?void 0:r.getBoundingClientRect())&&void 0!==t?t:{top:0,width:0,height:0},p=s.top,m=s.width,h=s.height,g=0;d.value instanceof HTMLElement&&(g=d.value.getBoundingClientRect().top);var y=p-g,b=g+(d.value[d.value instanceof Window?"innerHeight":"clientHeight"]-h)-e.offsetBottom;if(a=!Uo(e.offsetTop)&&y<=e.offsetTop?g+e.offsetTop:!Uo(e.offsetBottom)&&p>=b&&b,i.value){var w=!1!==a,O=l.value.contains(u.value);w?(i.value.className=o.value,v.value={top:"".concat(a,"px"),width:"".concat(m,"px"),height:"".concat(h,"px"),zIndex:e.zIndex},O||(u.value.style.width="".concat(m,"px"),u.value.style.height="".concat(h,"px"),l.value.appendChild(u.value))):(i.value.removeAttribute("class"),v.value=void 0,O&&u.value.remove()),n.emit("fixedChange",w,{top:Number(a)}),H(e.onFixedChange)&&e.onFixedChange(w,{top:Number(a)})}c.value=!1})),c.value=!0)},m=function(){var n=Bf(Hf.mark((function n(){return Hf.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.nextTick();case 2:if(!s.value){n.next=4;break}return n.abrupt("return");case 4:d.value=Tl(e.container),Nl(d.value,"scroll",p),Nl(window,"resize",p),s.value=!0;case 8:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}(),h=function(){d.value&&s.value&&(_l(d.value,"scroll",p),_l(window,"resize",p),f&&window.cancelAnimationFrame(f),s.value=!1)};return t.watch((function(){return e.offsetTop}),(function(){p()})),t.watch((function(){return e.offsetBottom}),(function(){p()})),t.watch((function(){return e.zIndex}),(function(){p()})),t.onMounted(m),t.onActivated(m),t.onDeactivated(h),t.onBeforeUnmount(h),n.expose({scrollContainer:d,affixWrapRef:l,handleScroll:p}),function(){return t.createVNode("div",{ref:l},[t.createVNode("div",{ref:i,style:v.value},[a("default")])])}}}),Uf=pi(Kf),Yf={exports:{}}; +/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(e){var t;t=function(){return function(){var e={686:function(e,t,n){n.d(t,{default:function(){return C}});var r=n(279),o=n.n(r),a=n(370),l=n.n(a),i=n(817),u=n.n(i);function c(e){try{return document.execCommand(e)}catch(e){return!1}}var s=function(e){var t=u()(e);return c("cut"),t},d=function(e,t){var n=function(e){var t="rtl"===document.documentElement.getAttribute("dir"),n=document.createElement("textarea");n.style.fontSize="12pt",n.style.border="0",n.style.padding="0",n.style.margin="0",n.style.position="absolute",n.style[t?"right":"left"]="-9999px";var r=window.pageYOffset||document.documentElement.scrollTop;return n.style.top="".concat(r,"px"),n.setAttribute("readonly",""),n.value=e,n}(e);t.container.appendChild(n);var r=u()(n);return c("copy"),n.remove(),r},v=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof e?n=d(e,t):e instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==e?void 0:e.type)?n=d(e.value,t):(n=u()(e),c("copy")),n};function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}var p=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.action,n=void 0===t?"copy":t,r=e.container,o=e.target,a=e.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==o){if(!o||"object"!==f(o)||1!==o.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&o.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(o.hasAttribute("readonly")||o.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return a?v(a,{container:r}):o?"cut"===n?s(o):v(o,{container:r}):void 0};function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function h(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===m(e.container)?e.container:document.body}},{key:"listenClick",value:function(e){var t=this;this.listener=l()(e,"click",(function(e){return t.onClick(e)}))}},{key:"onClick",value:function(e){var t=e.delegateTarget||e.currentTarget,n=this.action(t)||"copy",r=p({action:n,container:this.container,target:this.target(t),text:this.text(t)});this.emit(r?"success":"error",{action:n,text:r,trigger:t,clearSelection:function(){t&&t.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(e){return w("action",e)}},{key:"defaultTarget",value:function(e){var t=w("target",e);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(e){return w("text",e)}},{key:"destroy",value:function(){this.listener.destroy()}}],r=[{key:"copy",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body};return v(e,t)}},{key:"cut",value:function(e){return s(e)}},{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof e?[e]:e,n=!!document.queryCommandSupported;return t.forEach((function(e){n=n&&!!document.queryCommandSupported(e)})),n}}],n&&h(t.prototype,n),r&&h(t,r),a}(o()),C=O},828:function(e){if("undefined"!=typeof Element&&!Element.prototype.matches){var t=Element.prototype;t.matches=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector}e.exports=function(e,t){for(;e&&9!==e.nodeType;){if("function"==typeof e.matches&&e.matches(t))return e;e=e.parentNode}}},438:function(e,t,n){var r=n(828);function o(e,t,n,r,o){var l=a.apply(this,arguments);return e.addEventListener(n,l,o),{destroy:function(){e.removeEventListener(n,l,o)}}}function a(e,t,n,o){return function(n){n.delegateTarget=r(n.target,t),n.delegateTarget&&o.call(e,n)}}e.exports=function(e,t,n,r,a){return"function"==typeof e.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,(function(e){return o(e,t,n,r,a)})))}},879:function(e,t){t.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},t.nodeList=function(e){var n=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in e&&(0===e.length||t.node(e[0]))},t.string=function(e){return"string"==typeof e||e instanceof String},t.fn=function(e){return"[object Function]"===Object.prototype.toString.call(e)}},370:function(e,t,n){var r=n(879),o=n(438);e.exports=function(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!r.string(t))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(e))return function(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}(e,t,n);if(r.nodeList(e))return function(e,t,n){return Array.prototype.forEach.call(e,(function(e){e.addEventListener(t,n)})),{destroy:function(){Array.prototype.forEach.call(e,(function(e){e.removeEventListener(t,n)}))}}}(e,t,n);if(r.string(e))return function(e,t,n){return o(document.body,e,t,n)}(e,t,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},817:function(e){e.exports=function(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var n=e.hasAttribute("readonly");n||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),n||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var r=window.getSelection(),o=document.createRange();o.selectNodeContents(e),r.removeAllRanges(),r.addRange(o),t=r.toString()}return t}},279:function(e){function t(){}t.prototype={on:function(e,t,n){var r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){var r=this;function o(){r.off(e,o),t.apply(n,arguments)}return o._=t,this.on(e,o,n)},emit:function(e){for(var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),r=0,o=n.length;rt.top?e:t})).link;w(o)}},b=function(e){var t=e.match(Zf);if(t){var n=document.getElementById(t[1]);if(n)return n}},w=function(){var n=Bf(Hf.mark((function n(r){var o;return Hf.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(l.value!==r){n.next=2;break}return n.abrupt("return");case 2:return l.value=r,null===(o=e.onChange)||void 0===o||o.call(e,r,l.value),n.next=6,t.nextTick();case 6:O();case 7:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),O=function(){var e,t=null===(e=o.value)||void 0===e?void 0:e.querySelector(".".concat(p.value.active,">a"));if(t){var n=t.offsetTop,r=t.offsetHeight;Object.assign(c,{top:"".concat(n,"px"),height:"".concat(r,"px"),opacity:1})}else Object.assign(c,{})},C=function(){var t=Bf(Hf.mark((function t(n){var r,o,a,l,c;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=b(n),w(n),r){t.next=4;break}return t.abrupt("return");case 4:return u.value=!0,o=e.targetOffset,a=Ml(i.value),l=qf(r,i.value),c=a+l-o,t.next=11,Al(c,{container:i.value});case 11:u.value=!1;case 12:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();return t.onMounted(Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(g(),!l.value){e.next=5;break}return e.next=4,t.nextTick();case 4:C(l.value);case 5:case"end":return e.stop()}}),e)})))),t.onUnmounted((function(){i.value&&_l(i.value,"scroll",y)})),t.watchEffect((function(){i.value&&_l(i.value,"scroll",y),g()})),t.provide(Gf,t.reactive({registerLink:function(e){Zf.test(e)&&-1===a.value.indexOf(e)&&a.value.push(e)},unregisterLink:function(e){a.value=a.value.filter((function(t){return t!==e}))},handleScrollTo:C,handleLinkClick:function(t){var n;null===(n=e.onClick)||void 0===n||n.call(e,t)},active:l})),function(){var n,a=e.size,l=e.affixProps,i=[s.value,m.value[a]],u=t.createVNode("div",t.mergeProps({ref:o,class:i},r),[t.createVNode("div",{class:d.value},[t.createVNode("div",{class:"".concat(v.value,"-wrapper"),style:c},[h("cursor")||t.createVNode("div",{class:v.value},null)])]),h("default")]);return l?t.createVNode(Uf,l,"function"==typeof(n=u)||"[object Object]"===Object.prototype.toString.call(n)&&!t.isVNode(n)?u:{default:function(){return[u]}}):u}}});function Qf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ep(e){for(var t=1;t0&&Gp(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Gp(r.height)/e.offsetHeight||1);var l=(Kp(e)?Wp(e):window).visualViewport,i=!Qp()&&n,u=(r.left+(i&&l?l.offsetLeft:0))/o,c=(r.top+(i&&l?l.offsetTop:0))/a,s=r.width/o,d=r.height/a;return{width:s,height:d,top:c,right:u+s,bottom:c+d,left:u,x:u,y:c}}function tm(e){var t=em(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function nm(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Yp(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function rm(e){return Wp(e).getComputedStyle(e)}function om(e){return["table","td","th"].indexOf(Hp(e))>=0}function am(e){return((Kp(e)?e.ownerDocument:e.document)||window.document).documentElement}function lm(e){return"html"===Hp(e)?e:e.assignedSlot||e.parentNode||(Yp(e)?e.host:null)||am(e)}function im(e){return Up(e)&&"fixed"!==rm(e).position?e.offsetParent:null}function um(e){for(var t=Wp(e),n=im(e);n&&om(n)&&"static"===rm(n).position;)n=im(n);return n&&("html"===Hp(n)||"body"===Hp(n)&&"static"===rm(n).position)?t:n||function(e){var t=/firefox/i.test(Jp());if(/Trident/i.test(Jp())&&Up(e)&&"fixed"===rm(e).position)return null;var n=lm(e);for(Yp(n)&&(n=n.host);Up(n)&&["html","body"].indexOf(Hp(n))<0;){var r=rm(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}function cm(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function sm(e,t,n){return qp(e,Xp(t,n))}function dm(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function vm(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var fm={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,a=n.elements.arrow,l=n.modifiersData.popperOffsets,i=Zp(n.placement),u=cm(i),c=[Ep,Dp].indexOf(i)>=0?"height":"width";if(a&&l){var s=function(e,t){return dm("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:vm(e,Tp))}(o.padding,n),d=tm(a),v="y"===u?_p:Ep,f="y"===u?Vp:Dp,p=n.rects.reference[c]+n.rects.reference[u]-l[u]-n.rects.popper[c],m=l[u]-n.rects.reference[u],h=um(a),g=h?"y"===u?h.clientHeight||0:h.clientWidth||0:0,y=p/2-m/2,b=s[v],w=g-d[c]-s[f],O=g/2-d[c]/2+y,C=sm(b,O,w),x=u;n.modifiersData[r]=((t={})[x]=C,t.centerOffset=C-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&nm(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function pm(e){return e.split("-")[1]}var mm={top:"auto",right:"auto",bottom:"auto",left:"auto"};function hm(e){var t,n=e.popper,r=e.popperRect,o=e.placement,a=e.variation,l=e.offsets,i=e.position,u=e.gpuAcceleration,c=e.adaptive,s=e.roundOffsets,d=e.isFixed,v=l.x,f=void 0===v?0:v,p=l.y,m=void 0===p?0:p,h="function"==typeof s?s({x:f,y:m}):{x:f,y:m};f=h.x,m=h.y;var g=l.hasOwnProperty("x"),y=l.hasOwnProperty("y"),b=Ep,w=_p,O=window;if(c){var C=um(n),x="clientHeight",P="clientWidth";if(C===Wp(n)&&"static"!==rm(C=am(n)).position&&"absolute"===i&&(x="scrollHeight",P="scrollWidth"),o===_p||(o===Ep||o===Dp)&&a===Mp)w=Vp,m-=(d&&C===O&&O.visualViewport?O.visualViewport.height:C[x])-r.height,m*=u?1:-1;if(o===Ep||(o===_p||o===Vp)&&a===Mp)b=Dp,f-=(d&&C===O&&O.visualViewport?O.visualViewport.width:C[P])-r.width,f*=u?1:-1}var j,S=Object.assign({position:i},c&&mm),k=!0===s?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:Gp(n*o)/o||0,y:Gp(r*o)/o||0}}({x:f,y:m},Wp(n)):{x:f,y:m};return f=k.x,m=k.y,u?Object.assign({},S,((j={})[w]=y?"0":"",j[b]=g?"0":"",j.transform=(O.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",j)):Object.assign({},S,((t={})[w]=y?m+"px":"",t[b]=g?f+"px":"",t.transform="",t))}var gm={passive:!0};var ym={left:"right",right:"left",bottom:"top",top:"bottom"};function bm(e){return e.replace(/left|right|bottom|top/g,(function(e){return ym[e]}))}var wm={start:"end",end:"start"};function Om(e){return e.replace(/start|end/g,(function(e){return wm[e]}))}function Cm(e){var t=Wp(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function xm(e){return em(am(e)).left+Cm(e).scrollLeft}function Pm(e){var t=rm(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function jm(e){return["html","body","#document"].indexOf(Hp(e))>=0?e.ownerDocument.body:Up(e)&&Pm(e)?e:jm(lm(e))}function Sm(e,t){var n;void 0===t&&(t=[]);var r=jm(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),a=Wp(r),l=o?[a].concat(a.visualViewport||[],Pm(r)?r:[]):r,i=t.concat(l);return o?i:i.concat(Sm(lm(l)))}function km(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Nm(e,t,n){return t===Ap?km(function(e,t){var n=Wp(e),r=am(e),o=n.visualViewport,a=r.clientWidth,l=r.clientHeight,i=0,u=0;if(o){a=o.width,l=o.height;var c=Qp();(c||!c&&"fixed"===t)&&(i=o.offsetLeft,u=o.offsetTop)}return{width:a,height:l,x:i+xm(e),y:u}}(e,n)):Kp(t)?function(e,t){var n=em(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):km(function(e){var t,n=am(e),r=Cm(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=qp(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),l=qp(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),i=-r.scrollLeft+xm(e),u=-r.scrollTop;return"rtl"===rm(o||n).direction&&(i+=qp(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:l,x:i,y:u}}(am(e)))}function _m(e,t,n,r){var o="clippingParents"===t?function(e){var t=Sm(lm(e)),n=["absolute","fixed"].indexOf(rm(e).position)>=0&&Up(e)?um(e):e;return Kp(n)?t.filter((function(e){return Kp(e)&&nm(e,n)&&"body"!==Hp(e)})):[]}(e):[].concat(t),a=[].concat(o,[n]),l=a[0],i=a.reduce((function(t,n){var o=Nm(e,n,r);return t.top=qp(o.top,t.top),t.right=Xp(o.right,t.right),t.bottom=Xp(o.bottom,t.bottom),t.left=qp(o.left,t.left),t}),Nm(e,l,r));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function Vm(e){var t,n=e.reference,r=e.element,o=e.placement,a=o?Zp(o):null,l=o?pm(o):null,i=n.x+n.width/2-r.width/2,u=n.y+n.height/2-r.height/2;switch(a){case _p:t={x:i,y:n.y-r.height};break;case Vp:t={x:i,y:n.y+n.height};break;case Dp:t={x:n.x+n.width,y:u};break;case Ep:t={x:n.x-r.width,y:u};break;default:t={x:n.x,y:n.y}}var c=a?cm(a):null;if(null!=c){var s="y"===c?"height":"width";switch(l){case Ip:t[c]=t[c]-(n[s]/2-r[s]/2);break;case Mp:t[c]=t[c]+(n[s]/2-r[s]/2)}}return t}function Dm(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=void 0===r?e.placement:r,a=n.strategy,l=void 0===a?e.strategy:a,i=n.boundary,u=void 0===i?"clippingParents":i,c=n.rootBoundary,s=void 0===c?Ap:c,d=n.elementContext,v=void 0===d?Bp:d,f=n.altBoundary,p=void 0!==f&&f,m=n.padding,h=void 0===m?0:m,g=dm("number"!=typeof h?h:vm(h,Tp)),y=v===Bp?"reference":Bp,b=e.rects.popper,w=e.elements[p?y:v],O=_m(Kp(w)?w:w.contextElement||am(e.elements.popper),u,s,l),C=em(e.elements.reference),x=Vm({reference:C,element:b,strategy:"absolute",placement:o}),P=km(Object.assign({},b,x)),j=v===Bp?P:C,S={top:O.top-j.top+g.top,bottom:j.bottom-O.bottom+g.bottom,left:O.left-j.left+g.left,right:j.right-O.right+g.right},k=e.modifiersData.offset;if(v===Bp&&k){var N=k[o];Object.keys(S).forEach((function(e){var t=[Dp,Vp].indexOf(e)>=0?1:-1,n=[_p,Vp].indexOf(e)>=0?"y":"x";S[e]+=N[n]*t}))}return S}function Em(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,a=n.rootBoundary,l=n.padding,i=n.flipVariations,u=n.allowedAutoPlacements,c=void 0===u?Rp:u,s=pm(r),d=s?i?Lp:Lp.filter((function(e){return pm(e)===s})):Tp,v=d.filter((function(e){return c.indexOf(e)>=0}));0===v.length&&(v=d);var f=v.reduce((function(t,n){return t[n]=Dm(e,{placement:n,boundary:o,rootBoundary:a,padding:l})[Zp(n)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}var Fm={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,a=void 0===o||o,l=n.altAxis,i=void 0===l||l,u=n.fallbackPlacements,c=n.padding,s=n.boundary,d=n.rootBoundary,v=n.altBoundary,f=n.flipVariations,p=void 0===f||f,m=n.allowedAutoPlacements,h=t.options.placement,g=Zp(h),y=u||(g===h||!p?[bm(h)]:function(e){if(Zp(e)===Fp)return[];var t=bm(e);return[Om(e),t,Om(t)]}(h)),b=[h].concat(y).reduce((function(e,n){return e.concat(Zp(n)===Fp?Em(t,{placement:n,boundary:s,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):n)}),[]),w=t.rects.reference,O=t.rects.popper,C=new Map,x=!0,P=b[0],j=0;j=0,V=_?"width":"height",D=Dm(t,{placement:S,boundary:s,rootBoundary:d,altBoundary:v,padding:c}),E=_?N?Dp:Ep:N?Vp:_p;w[V]>O[V]&&(E=bm(E));var F=bm(E),T=[];if(a&&T.push(D[k]<=0),i&&T.push(D[E]<=0,D[F]<=0),T.every((function(e){return e}))){P=S,x=!1;break}C.set(S,T)}if(x)for(var I=function(e){var t=b.find((function(t){var n=C.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return P=t,"break"},M=p?3:1;M>0;M--){if("break"===I(M))break}t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Tm(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Im(e){return[_p,Dp,Vp,Ep].some((function(t){return e[t]>=0}))}var Mm={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,a=void 0===o?[0,0]:o,l=Rp.reduce((function(e,n){return e[n]=function(e,t,n){var r=Zp(e),o=[Ep,_p].indexOf(r)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,l=a[0],i=a[1];return l=l||0,i=(i||0)*o,[Ep,Dp].indexOf(r)>=0?{x:i,y:l}:{x:l,y:i}}(n,t.rects,a),e}),{}),i=l[t.placement],u=i.x,c=i.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=l}};var Am={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,a=void 0===o||o,l=n.altAxis,i=void 0!==l&&l,u=n.boundary,c=n.rootBoundary,s=n.altBoundary,d=n.padding,v=n.tether,f=void 0===v||v,p=n.tetherOffset,m=void 0===p?0:p,h=Dm(t,{boundary:u,rootBoundary:c,padding:d,altBoundary:s}),g=Zp(t.placement),y=pm(t.placement),b=!y,w=cm(g),O="x"===w?"y":"x",C=t.modifiersData.popperOffsets,x=t.rects.reference,P=t.rects.popper,j="function"==typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,S="number"==typeof j?{mainAxis:j,altAxis:j}:Object.assign({mainAxis:0,altAxis:0},j),k=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,N={x:0,y:0};if(C){if(a){var _,V="y"===w?_p:Ep,D="y"===w?Vp:Dp,E="y"===w?"height":"width",F=C[w],T=F+h[V],I=F-h[D],M=f?-P[E]/2:0,A=y===Ip?x[E]:P[E],B=y===Ip?-P[E]:-x[E],L=t.elements.arrow,R=f&&L?tm(L):{width:0,height:0},z=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},H=z[V],W=z[D],K=sm(0,x[E],R[E]),U=b?x[E]/2-M-K-H-S.mainAxis:A-K-H-S.mainAxis,Y=b?-x[E]/2+M+K+W+S.mainAxis:B+K+W+S.mainAxis,$=t.elements.arrow&&um(t.elements.arrow),Z=$?"y"===w?$.clientTop||0:$.clientLeft||0:0,q=null!=(_=null==k?void 0:k[w])?_:0,X=F+Y-q,G=sm(f?Xp(T,F+U-q-Z):T,F,f?qp(I,X):I);C[w]=G,N[w]=G-F}if(i){var J,Q="x"===w?_p:Ep,ee="x"===w?Vp:Dp,te=C[O],ne="y"===O?"height":"width",re=te+h[Q],oe=te-h[ee],ae=-1!==[_p,Ep].indexOf(g),le=null!=(J=null==k?void 0:k[O])?J:0,ie=ae?re:te-x[ne]-P[ne]-le+S.altAxis,ue=ae?te+x[ne]+P[ne]-le-S.altAxis:oe,ce=f&&ae?function(e,t,n){var r=sm(e,t,n);return r>n?n:r}(ie,te,ue):sm(f?ie:re,te,f?ue:oe);C[O]=ce,N[O]=ce-te}t.modifiersData[r]=N}},requiresIfExists:["offset"]};function Bm(e,t,n){void 0===n&&(n=!1);var r,o=Up(t),a=Up(t)&&function(e){var t=e.getBoundingClientRect(),n=Gp(t.width)/e.offsetWidth||1,r=Gp(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),l=am(t),i=em(e,a,n),u={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(o||!o&&!n)&&(("body"!==Hp(t)||Pm(l))&&(u=(r=t)!==Wp(r)&&Up(r)?function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}(r):Cm(r)),Up(t)?((c=em(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):l&&(c.x=xm(l))),{x:i.left+u.scrollLeft-c.x,y:i.top+u.scrollTop-c.y,width:i.width,height:i.height}}function Lm(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}var Rm={placement:"bottom",modifiers:[],strategy:"absolute"};function zm(){for(var e=arguments.length,t=new Array(e),n=0;n1?t-1:0),a=1;a1?t-1:0),o=1;o4&&void 0!==arguments[4]?arguments[4]:"value",l=t.getCurrentInstance(),i=l.emit,u=l.vnode,c=t.ref(),s=u.props||{},d=Object.prototype.hasOwnProperty.call(s,"modelValue")||Object.prototype.hasOwnProperty.call(s,"model-value"),v=Object.prototype.hasOwnProperty.call(s,a)||Object.prototype.hasOwnProperty.call(s,$o(a));return d?[n,function(e){i("update:modelValue",e);for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r0&&void 0!==arguments[0]&&arguments[0],t=new Date,n=t.getMonth()+1;n=n<10?"0".concat(n):n;var r="".concat(t.getFullYear(),"-").concat(n,"-").concat(t.getDate()),o="".concat(t.getHours(),":").concat(t.getMinutes(),":").concat(t.getSeconds());return e?[r,o].join(" "):r}function sh(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:7,r=e,o=0,a=0;if(!r)return"";for(var l=0;ll-n&&a1&&void 0!==arguments[1]?arguments[1]:"",n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:[]).forEach((function(n){j(n)?e.push.apply(e,i(n)):n.type===t.Fragment?e.push.apply(e,i(hh(n.children))):e.push(n)})),e.filter((function(e){return!(e&&(e.type===t.Comment||e.type===t.Fragment&&0===e.children.length||e.type===t.Text&&""===e.children.trim()))}))}function gh(e){var n=t.getCurrentInstance(),r=t.ref();return t.onMounted((function(){r.value=e(n)})),t.onUpdated((function(){var t=e(n);r.value!==t&&(r.value=t)})),r}var yh=t.defineComponent({name:"TPopupTrigger",props:{forwardRef:Function},emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots,a=gh((function(e){return e.parent.vnode.el.nextElementSibling})),l=t.ref();return t.watch(a,(function(){var t;null===(t=e.forwardRef)||void 0===t||t.call(e,a.value)})),mh(a,(function(e){var t=Ha(e,1)[0].contentRect;l.value=t})),t.watch(l,(function(e,t){var n,o;o=t,!(n=e)&&!o||n&&o&&!["width","height","x","y"].some((function(e){return n[e]!==o[e]}))||r("resize")})),function(){var e,n,r=hh(null===(e=o.default)||void 0===e?void 0:e.call(o));return r.length>1||(null===(n=r[0])||void 0===n?void 0:n.type)===t.Text?t.createVNode("span",null,[r]):r[0]}}}),bh=t.defineComponent({name:"TPopupContent",emits:["resize"],setup:function(e,n){var r=n.emit,o=n.slots;return mh(gh((function(e){return e.vnode.el.children[0]})),(function(){r("resize")})),function(){return t.createVNode("div",{style:"position: absolute; top: 0px; left: 0px; width: 100%"},[o.default()])}}}),wh=t.defineComponent({name:"TPopupContainer",inheritAttrs:!1,props:{parent:Object,visible:Boolean,attach:ph.attach,forwardRef:Function},emits:["resize","contentMounted"],setup:function(e,n){var r=n.emit,o=n.attrs,a=n.slots,l=n.expose,i=t.ref(),u=t.ref(!1);function c(){r("resize")}return t.onMounted((function(){requestAnimationFrame((function(){u.value=e.visible}))})),t.watch((function(){return e.visible}),(function(t){t&&(u.value=e.visible)})),l({unmountContent:function(){u.value=!1}}),function(){var n,l,s=function(){return Fl(e.attach,i.value)};return t.createVNode(t.Fragment,null,[t.createVNode(yh,{class:o.class,forwardRef:function(t){e.forwardRef(t),i.value=t},onResize:c},(l=n=a.default(),"function"==typeof l||"[object Object]"===Object.prototype.toString.call(l)&&!t.isVNode(l)?n:{default:function(){return[n]}})),u.value&&t.createVNode(t.Teleport,{disabled:!s(),to:s()},{default:function(){return[t.createVNode(bh,{onResize:c,onVnodeMounted:function(){return r("contentMounted")}},{default:function(){return[a.content&&a.content()]}})]}})])}}});function Oh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ch(e){for(var t=1;tn.x&&t.xn.y&&t.y=e.maxHeight&&(i.value=!0));a.value=document.querySelector(".".concat(n.value,"__item")).scrollHeight+2}));var d=function(e){return H(e)?e(t.h):e},v=function(r,l){var i,f,p=[];return null===(i=r.forEach)||void 0===i||i.call(r,(function(r,i){var m=function(e){for(var t=1;t=0?h:i;m.children?(m.children=v(m.children,l+1),f=t.createVNode("div",{key:i},[t.createVNode(qh,{style:m.style,class:["".concat(n.value,"__item"),"".concat(n.value,"__item--suffix"),m.class],value:m.value,theme:m.theme,active:m.active,prefixIcon:m.prefixIcon,disabled:m.disabled,minColumnWidth:e.minColumnWidth,maxColumnWidth:e.maxColumnWidth,isSubmenu:!0},{default:function(){return[t.createVNode("div",{class:"".concat(n.value,"__item-content")},[t.createVNode("span",{class:"".concat(n.value,"__item-text")},[d(m.content)]),t.createVNode(u,{class:"".concat(n.value,"__item-direction"),size:"16"},null)]),t.createVNode("div",{class:["".concat(n.value,"__submenu-wrapper"),s({},"".concat(n.value,"__submenu-wrapper--").concat(e.direction),e.direction)],style:{position:"absolute",top:"".concat(g*a.value,"px")}},[t.createVNode("div",{class:["".concat(n.value,"__submenu"),s({},"".concat(n.value,"__submenu--disabled"),m.disabled)],style:{position:"static",maxHeight:"".concat(e.maxHeight,"px")},onScroll:function(e){return c(e,l+1)}},[t.createVNode("ul",null,[m.children])])])]}}),m.divider?t.createVNode(mf,null,null):null])):f=t.createVNode("div",{key:i},[t.createVNode(qh,{style:m.style,class:["".concat(n.value,"__item"),m.class],value:m.value,theme:m.theme,active:m.active,prefixIcon:m.prefixIcon,disabled:m.disabled,minColumnWidth:e.minColumnWidth,maxColumnWidth:e.maxColumnWidth,onClick:m.disabled||m.children?function(){return null}:function(t,n){return function(t){var n,r,o=t.data,a=t.context;null==o||null===(n=o.onClick)||void 0===n||n.call(o,o,a),null===(r=e.onClick)||void 0===r||r.call(e,o,a)}({data:m,context:n})}},{default:function(){return[t.createVNode("span",{class:"".concat(n.value,"__item-text")},[d(m.content)])]}}),m.divider?t.createVNode(mf,null,null):null]),p.push(f)})),p};return function(){return t.createVNode("div",{class:[r.value,"".concat(r.value,"--").concat(e.direction),s({},"".concat(r.value,"--overflow"),i.value)],style:{maxHeight:"".concat(e.maxHeight,"px")},ref:l,onScroll:function(e){return c(e,0)}},[v(e.options,0)])}}});function Qh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function eg(e){for(var t=1;t0?tg(m):null})})).filter((function(e){return!!e.content})):j(e)&&j(null===(n=e[0])||void 0===n?void 0:n.children)?tg(null===(r=e[0])||void 0===r?void 0:r.children):[]};function ng(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function rg(e){for(var t=1;t0?e.options:tg(u)}))}(e),f=rg(rg(rg({},r),{},{disabled:e.disabled,placement:e.placement,trigger:e.trigger},ta(e.popupProps,["onVisibleChange","on-visible-change"])),{},{overlayInnerClassName:[a.value,null===(u=e.popupProps)||void 0===u?void 0:u.overlayInnerClassName]});return t.createVNode(Nh,t.mergeProps({destroyOnClose:!0,ref:l,visible:i.value,onVisibleChange:s,expandAnimation:!0},f),{default:function(){return[d]},content:function(){var n;return t.createVNode(t.Fragment,null,[o("panelTopContent"),null!==(n=v.value)&&void 0!==n&&n.length?t.createVNode(Jh,t.mergeProps(ta(e,"onClick"),{options:v.value,onClick:c}),null):null,o("panelBottomContent")])}})}}}),ag=pi(og),lg=pi(qh),ig=pi(Jh),ug={collapsed:Boolean,expanded:{type:Array,default:void 0},defaultExpanded:{type:Array,default:[]},expandMutex:Boolean,expandType:{type:String,default:"normal",validator:function(e){return!e||["normal","popup"].includes(e)}},logo:{type:Function},operations:{type:Function},theme:{type:String,default:"light",validator:function(e){return!e||["light","dark"].includes(e)}},value:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number]},width:{type:[String,Number,Array],default:"232px"},onChange:Function,onExpand:Function};function cg(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function sg(e,t){for(var n=0;n0)for(var n=0,r=e.children.length;n0){var o=mg(this.data,n);o&&!o.children.some((function(e){return e.value===r.value}))?o.children.push(r):this.cache.add(r)}else this.cache.add(r)}},{key:"select",value:function(e){var t=fg(this.data,e,[])||[];return t.push(e),t.filter((function(e){return null!=e}))}},{key:"expand",value:function(e){var t=this;if(this.expandValues.has(e))return this.expandValues.delete(e),i(this.expandValues);if(this.expandValues.add(e),!this.isMutex.value)return i(this.expandValues);var n=pg(this.data,e)||[],r=new Set(n.filter((function(t){var n;return(null===(n=t.children)||void 0===n?void 0:n.length)>0&&t.value!==e})).map((function(e){return e.value})));return this.expandValues.forEach((function(e){r.has(e)&&t.expandValues.delete(e)})),i(this.expandValues)}},{key:"getChild",value:function(e){var t=mg(this.data,e);return t?t.children:[]}}])}();function gg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function yg(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function Ng(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1})),O=t.computed((function(){return c.valueMath.abs(n)?D(c.value+t):D(c.value+n)}},T=function(){setTimeout((function(){D(function(e,t,n){var r,o=e.navsContainer,a=e.activeTab,l=e.rightOperations,i=e.leftOperations,u=Pg(a),c=Pg(o),s=(null==(r=a)?void 0:r.offsetLeft)||0,d=Pg(l),v=Pg(i);if("auto"===n){if(s-vt+c-d)return s+u-c+d}else{if("start"===n)return s-v;if("center"===n)return s+(u-c)/2;if("end"===n)return s+u-c+d}return t}(y(),c.value,e.scrollPosition))}),0)},I=function(){t.nextTick((function(){var e,t,n,r,o;g.value=(e=y(),t=e.navsWrap,n=e.navsContainer,r=e.rightOperations,o=e.toRightBtn,Pg(t)-Pg(n)+Pg(r)-Pg(o))}))};t.watch([function(){return e.placement},function(){return e.panels}],I),t.watch([function(){return e.scrollPosition}],T),function(e,n){Wv("resize",e);var r=null;t.onMounted((function(){window.ResizeObserver&&n&&(r=new window.ResizeObserver(e)).observe(n)})),t.onBeforeUnmount((function(){var e;null===(e=r)||void 0===e||e.disconnect()}))}(po(I),d.value);var M=function(t){var n;null===(n=e.onAdd)||void 0===n||n.call(e,{e:t})},A=function(t){var n=t.e,r=t.value,o=t.index;e.onRemove({e:n,value:r,index:o})},B=function(t){null!=t&&t.$el&&(null==t?void 0:t.value)===e.value&&h.value!==t.$el&&(h.value=t.$el,T())},L=function(e){var n,r=null,o=[],a=function(e){var t=e.target;n=t,t.style.opacity="0.5"},l=function(e){e.target.style.opacity=""},i=function(e){e.preventDefault()},u=function(e){var t=Vg(e.target,r.children);t&&t!==n&&t.draggable&&(t.firstChild.style.outline="1px dashed #0052d9",o.includes(t)||o.push(t))},c=function(e){for(var t=e.target,n=0,r=o;nl&&(o=r.children[i+1]);var u="card"===e.theme?l:l-1,c="card"===e.theme?i:i-1;null===(a=e.onDragSort)||void 0===a||a.call(e,{currentIndex:u,current:e.panels[u].value,targetIndex:c,target:e.panels[c].value})}};return t.onUnmounted((function(){r.removeEventListener("dragstart",a),r.removeEventListener("dragend",l),r.removeEventListener("dragover",i),r.removeEventListener("dragenter",u),document.removeEventListener("dragleave",c),document.removeEventListener("mousemove",c),r.removeEventListener("drop",s)})),{setNavsWrap:function(e){(r=e).addEventListener("dragstart",a,!1),r.addEventListener("dragend",l,!1),r.addEventListener("dragover",i,!1),r.addEventListener("dragenter",u,!1),document.addEventListener("dragleave",c,!1),document.addEventListener("mousemove",c,!1),r.addEventListener("drop",s,!1)}}}(e),R=L.setNavsWrap;t.onMounted((function(){R(v.value),I(),T()}));var z=function(){return e.panels.map((function(n,r){var o,a;a=null!=n&&null!==(o=n.children)&&void 0!==o&&o.label?n.children.label():H(n.label)?n.label(t.h):n.label||"\u9009\u9879\u5361".concat(r+1);var l=e.dragSort;return l&&!1===n.draggable&&(l=n.draggable),t.createVNode(jg,{ref:B,draggable:l,key:n.value,index:r,theme:e.theme,size:e.size,placement:e.placement,label:a,active:n.value===e.value,disabled:e.disabled||n.disabled,removable:n.removable,value:n.value,onClick:function(t){return function(t,n){var r=n.value;if(n.disabled||e.value===r)return!1;e.onChange(r)}(0,n)},onRemove:A},null)}))};return function(){return t.createVNode("div",{ref:d,class:["".concat(n.value,"__nav")],style:x.value},[[t.createVNode("div",{ref:f,class:["".concat(n.value,"__operations"),"".concat(n.value,"__operations--left")]},[t.createVNode(t.Transition,{name:"fade",mode:"out-in",appear:!0},{default:function(){return[w.value?t.createVNode("div",{class:j.value,onClick:function(){return E("prev")}},[t.createVNode(o,null,null)]):null]}})]),t.createVNode("div",{ref:p,class:["".concat(n.value,"__operations"),"".concat(n.value,"__operations--right")]},[t.createVNode(t.Transition,{name:"fade",mode:"out-in",appear:!0},{default:function(){return[O.value?t.createVNode("div",{ref:m,class:S.value,onClick:function(){return E("next")}},[t.createVNode(a,null,null)]):null]}}),e.addable?t.createVNode("div",{class:k.value,onClick:M},[t.createVNode(l,null,null)]):null,e.action])],(r=z(),t.createVNode("div",{class:N.value},[t.createVNode("div",{class:_.value,onWheel:F},[t.createVNode("div",{ref:v,class:V.value,style:C.value},["card"!==e.theme&&t.createVNode(Sg,{placement:e.placement,value:e.value,navs:r},null),r])])]))]);var r}}}),Tg=t.defineComponent({name:"TTabs",props:xg,setup:function(e){var n=Qa("tabs"),r=Qa(),o=ei(),a=t.toRefs(e),l=Ha(qm(a.value,a.modelValue,e.defaultValue||"",e.onChange),2),i=l[0],u=l[1];t.provide("tabs",{value:i});var c=function(t){var n;null===(n=e.onAdd)||void 0===n||n.call(e,{e:t.e})},d=function(e){u(e)},v=function(t){var n,r=t.e,o=t.value,a=t.index;null===(n=e.onRemove)||void 0===n||n.call(e,{value:o,index:a,e:r})},f=function(){var e=o("default");if(!e)return[];var t=function(e){return e.map((function(e){return e.children&&j(e.children)?t(e.children):e})).flat().filter((function(e){return"TTabPanel"===e.type.name}))};return t(e)},p=function(){var n,a=(null!==(n=e.list)&&void 0!==n&&n.length?e.list:f())||[],l=o("action"),u=a.map((function(e){var t=e;return e.props&&Object.keys(e.props).forEach((function(n){t[n]=e.props[n]})),t})),p={theme:e.theme,value:i.value,size:e.size,disabled:e.disabled,placement:e.placement,scrollPosition:e.scrollPosition,addable:e.addable,panels:u,dragSort:e.dragSort,action:l};return t.createVNode("div",{class:s(s({},"".concat(r.value,"-tabs__header"),!0),"".concat(r.value,"-is-").concat(e.placement),!0)},[t.createVNode(Fg,t.mergeProps(p,{onDragSort:e.onDragSort,onChange:d,onAdd:c,onRemove:v}),null)])},m=function(){var n,o=f();return null!==(n=e.list)&&void 0!==n&&n.length?e.list.map((function(e){return t.createVNode(Cg,t.mergeProps(e,{onRemove:v}),null)})):o&&o.length?t.createVNode("div",{class:["".concat(r.value,"-tabs__content")]},[o]):void 0};return function(){return t.createVNode("div",{class:[n.value]},["bottom"!==e.placement?[p(),m()]:[m(),p()]])}}}),Ig=pi(Tg),Mg=pi(Cg),Ag={content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function},popupProps:{type:Object},title:{type:[String,Function]},value:{type:[String,Number]}},Bg=t.defineComponent({name:"TFakeArrow",props:{isActive:{type:Boolean},overlayClassName:{type:[String,Object,Array]},overlayStyle:{type:Object||String}},setup:function(e){var n=Qa("fake-arrow"),r=t.computed((function(){return[n.value,s({},"".concat(n.value,"--active"),e.isActive),e.overlayClassName]}));return function(){return t.createVNode("svg",{class:r.value,width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:e.overlayStyle},[t.createVNode("path",{d:"M3.75 5.7998L7.99274 10.0425L12.2361 5.79921",stroke:"black","stroke-opacity":"0.9","stroke-width":"1.3"},null)])}}});function Lg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Rg=t.defineComponent({name:"TSubmenu",props:Ag,setup:function(e,n){var r=n.attrs,o=n.slots,a=Qa(),l=ei(),u=ni(),c=t.getCurrentInstance(),d=t.inject("TdMenu"),v=t.toRefs(e).value,f=d.theme,p=d.activeValues,m=d.expandValues,h=d.isHead,g=d.open,y=t.inject("TdSubmenu",{}),b=y.setSubPopup,w=y.closeParentPopup,O=t.computed((function(){return r.expandType||d.mode.value})),C=t.ref([]),x=t.computed((function(){return p.value.indexOf(e.value)>-1})),P=t.ref(!1),j=t.ref(!1),S=t.computed((function(){return"light"===f.value?"#E7E7E7":"#383838"})),k=t.computed((function(){var t;return"popup"===O.value?P.value:!!m&&(null===(t=m.value)||void 0===t?void 0:t.includes(e.value))})),N=t.ref(!1),_=t.ref(),V=t.ref(),D=t.ref(),E=Qa("slide-down");wi(D,S);var F=t.computed((function(){return["".concat(a.value,"-submenu"),s(s({},"".concat(a.value,"-is-disabled"),e.disabled),"".concat(a.value,"-is-opened"),k.value)]})),T=t.computed((function(){var t;return["".concat(a.value,"-menu__popup"),"".concat(a.value,"-is-").concat(h?"horizontal":"vertical"),s({},"".concat(a.value,"-is-opened"),P.value),null===(t=e.popupProps)||void 0===t?void 0:t.overlayInnerClassName]})),I=t.computed((function(){var t;return["".concat(a.value,"-menu--").concat(f.value),h&&"".concat(a.value,"-is-head-menu"),s({},"".concat(a.value,"-menu-is-nested"),N.value),null===(t=e.popupProps)||void 0===t?void 0:t.overlayClassName]})),M=t.computed((function(){return["".concat(a.value,"-menu__item"),"".concat(a.value,"-menu__item-spacer"),"".concat(a.value,"-menu__item-spacer--").concat(h&&!N.value?"bottom":"right"),s(s(s({},"".concat(a.value,"-is-disabled"),e.disabled),"".concat(a.value,"-is-opened"),k.value),"".concat(a.value,"-is-active"),x.value)]})),A=t.computed((function(){return["".concat(a.value,"-menu__sub"),s({},"".concat(a.value,"-is-opened"),k.value)]})),B=t.computed((function(){return[s({},"".concat(a.value,"-fake-arrow--active"),k.value)]}));t.provide("TdSubmenu",t.reactive({value:v,addMenuItem:function(e){C.value.push(e),y&&y.addMenuItem(e)},setSubPopup:function(e){V.value=e},closeParentPopup:function(e){var t=e.relatedTarget;W(t)||U(e)}}));var L=function(e){H(b)&&b(e)},R=function(){e.disabled||setTimeout((function(){P.value||(g(e.value),t.nextTick().then((function(){L(_.value)}))),P.value=!0}),0)},z=function(e){return null==e?void 0:e.classList.contains("".concat(a.value,"-menu__popup"))},W=function(e){return!!e&&(z(e)||W(e.parentElement))},K=function(e){setTimeout((function(){var t=z(e.relatedTarget);j.value||t||(P.value=!1)}),0)},U=function(e){var t=e.toElement,n=e.relatedTarget,r=t||n;if(r!==V.value){for(var o=function(e){return e===D.value};null!==r&&r!==document&&!o(r);)r=r.parentNode;j.value=!1,o(r)||(P.value=!1),null==w||w(e)}},Y=function(){j.value=!0},$=function(){e.disabled||g(e.value)},Z=function(n){var r,o="right-top";!N.value&&h&&(o="bottom-left");var l=t.createVNode("div",{ref:_,class:["".concat(a.value,"-menu__spacer"),"".concat(a.value,"-menu__spacer--").concat(!N.value&&h?"top":"left")],onMouseenter:Y,onMouseleave:U},[t.createVNode("ul",{class:"".concat(a.value,"-menu__popup-wrapper")},[u("default","content")])]),c={content:function(){return l}},d=t.createVNode(Nh,t.mergeProps(null!==(r=e.popupProps)&&void 0!==r?r:{},{overlayInnerClassName:i(T.value),overlayClassName:i(I.value),visible:P.value,placement:o}),function(e){for(var t=1;t0&&(s=h?(e=l("icon"),n=[t.createVNode("div",{ref:D,class:M.value,onClick:$},[e,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})])]),t.createVNode("ul",{style:"opacity: 0; width: 0; height: 0; overflow: hidden"},[u("default","content")])],r="popup"===O.value&&N.value,i=[e,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),t.createVNode(Bg,{overlayClassName:/menu/i.test(null==c?void 0:c.parent.proxy.$options.name)?B.value:null,overlayStyle:{transform:"rotate(".concat(r?-90:0,"deg)")}},null)],"normal"===O.value?n:Z(i)):function(){for(var e=o.content||o.default,n=l("icon"),r=u("default","content"),i=c.parent,s=44;i&&"TMenu"!==i.type.name;)"TSubmenu"===i.type.name&&(s+=16),i=i.parent;var d={beforeEnter:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0"},enter:function(e){e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"},afterEnter:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow},beforeLeave:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.overflow="hidden"},leave:function(e){0!==e.scrollHeight&&(e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0")},afterLeave:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}},v=d.beforeEnter,f=d.enter,p=d.afterEnter,m=d.beforeLeave,h=d.leave,g=d.afterLeave,y="popup"===O.value&&N.value,b=[t.createVNode("div",{ref:D,class:M.value,onClick:$},[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),e&&t.createVNode(Bg,{overlayClassName:B.value,overlayStyle:{transform:"rotate(".concat(y?-90:0,"deg)")}},null)]),t.createVNode(t.Transition,{name:E.value,onBeforeEnter:v,onEnter:f,onAfterEnter:p,onBeforeLeave:m,onLeave:h,onAfterLeave:g},{default:function(){return[t.withDirectives(t.createVNode("ul",{class:A.value,style:{"--padding-left":"".concat(s,"px")}},[r]),[[t.vShow,k.value]])]}})],w=[n,t.createVNode("span",{class:["".concat(a.value,"-menu__content")]},[l("title",{silent:!0})]),t.createVNode(Bg,{overlayClassName:/menu/i.test(i.proxy.$options.name)?B.value:null,overlayStyle:{transform:"rotate(".concat(y?-90:0,"deg)"),"margin-left":"auto"}},null)];return"normal"===O.value?b:Z(w)}()),t.createVNode("li",t.mergeProps({class:F.value},d),[s])}}});function zg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Hg=t.defineComponent({name:"THeadMenu",props:wg,setup:function(e,n){var r,o,a,l,u=Qa(),c=t.getCurrentInstance().proxy;t.watchEffect((function(){n.slots.options&&Jm("TMenu","`options` slot is going to be deprecated, please use `operations` for slot instead.")}));var d=t.toRefs(e),v=d.value,f=d.modelValue,p=d.expanded,m=Ha(qm(v,f,e.defaultValue,e.onChange),2),h=m[0],g=m[1],y=Ha(Um(p,e.defaultExpanded,e.onExpand,"expanded"),2),b=y[0],w=y[1],O=t.ref([]),C=t.computed((function(){return e.theme})),x=t.computed((function(){return["".concat(u.value,"-menu"),"".concat(u.value,"-head-menu"),"".concat(u.value,"-menu--").concat(e.theme)]})),P=t.ref(e.expandType),S=t.reactive([]),k=new hg({isMutex:!0,expandValues:b.value});t.provide("TdMenu",{mode:P,theme:C,vMenu:k,isHead:!0,expandValues:b,activeValue:h,activeValues:O,select:function(e){g(e)},open:function(e,t){var n=i(b.value),r=n.indexOf(e);"popup"===P.value?"add"===t?-1===r&&n.push(e):"remove"===t&&n.splice(r,1):"normal"===P.value&&void 0!==e&&(n.splice(0,1),-1===r&&n.push(e)),w(n)}});var N=function(e){g(e),V(e)},_=function(e){var t=k.getChild(e);S.length=0,S.push.apply(S,i(t))};t.watch(b,(function(e){"normal"===P.value&&_(e[0])}));t.watch(h,(function(e){O.value=k.select(e)})),t.watch((function(){return e.expandType}),(function(e){P.value=e})),t.onMounted((function(){var e;O.value=k.select(h.value),(null===(e=b.value)||void 0===e?void 0:e.length)>0&&_(b.value[0])}));var V=function(e){var t,n=S.find((function(t){return t.value===e}));null===(t=n.onClick)||void 0===t||t.call(n,{value:e});var r=n.to,o=n.href,a=n.replace;o&&(window.location.href=n.href);var l=n.router||c.$router;r&&l&&(a?l.replace(r):l.push(r))},D=t.ref(),E=t.ref(),F=t.ref(),T=t.ref(),I=function(e,t){e.forEach((function(e){var n,r,o,a,l=null===(n=e.props)||void 0===n?void 0:n.value;"TSubmenu"!==(null===(r=e.type)||void 0===r?void 0:r.name)&&"TMenuItem"!==(null===(o=e.type)||void 0===o?void 0:o.name)||k.add(function(e){for(var t=1;tNumber(r)?"error":""}return""})),o=t.computed((function(){return e.value.status||r.value})),a=function(){var t,n;null===(t=(n=e.value).onValidate)||void 0===t||t.call(n,{error:r.value?"exceed-maximum":void 0})};return t.watch(r,a),t.onMounted((function(){r.value&&a()})),{tStatus:o,limitNumber:n,getValueByLimitNumber:function(t){var n,r,o,a=e.value,l=a.allowInputOverMax,u=a.maxlength,c=a.maxcharacter;if(!u&&!c||l||!t)return t;if(u)return n=t,r=u,i(null!=o?o:"").slice().length===r?o||"":i(null!=n?n:"").slice(0,r).join("");if(c){var s=il(t,c);if(E(s))return s.characters}}}}function ly(e,t){return"number"===t?e||0===e?Number(e):void 0:e}function iy(e,n){var r=t.toRefs(e),o=r.value,a=r.modelValue,l=t.ref(),i=t.ref(!1),u=t.ref(),c=t.ref(null),s=t.ref(),d=Oi(),v=ey(),f=Ha(qm(o,a,e.defaultValue,e.onChange),2),p=f[0],m=f[1],h=t.ref(!1),g=t.ref(!1),y=t.ref(e.type),b=t.ref(null),w=ay(t.computed((function(){return{value:[void 0,null].includes(p.value)?void 0:String(p.value),status:e.status,maxlength:Number(e.maxlength),maxcharacter:e.maxcharacter,allowInputOverMax:e.allowInputOverMax,onValidate:e.onValidate}}))),O=w.limitNumber,C=w.getValueByLimitNumber,x=w.tStatus,P=t.computed((function(){return(p.value&&!d.value&&e.clearable&&!v.value||e.showClearIconOnEmpty)&&h.value})),j=function(){var e;g.value=!0,null===(e=b.value)||void 0===e||e.focus()},S=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=b.value;if(t){var n=String(e);t.value&&t.value!==n&&(t.value=n)}},k=function(n){var r,o=n.target.value;"number"!==e.type&&"string"==typeof p.value&&o.length>(null===(r=p.value)||void 0===r?void 0:r.length)&&(o=C(o)),m(ly(o,e.type),{e:n,trigger:"input"}),t.nextTick((function(){"number"===e.type&&/\.(\d+)?0$/.test(o)?S(o):S(p.value)}))},N=t.inject(oy,void 0);return t.watch((function(){return e.autofocus}),(function(e){!0===e&&t.nextTick((function(){var e;null===(e=b.value)||void 0===e||e.focus()}))}),{immediate:!0}),t.watch(p,(function(t,n){var r="number"===e.type;void 0===n&&e.format&&"number"!=typeof t&&!r?l.value=e.format(t):l.value=t;var o="number"==typeof t?t:C(t);o===t||r||m(o,{trigger:"initial"})}),{immediate:!0}),t.watch((function(){return e.type}),(function(e){y.value=e}),{immediate:!0}),n({inputRef:b,focus:j,blur:function(){var e;g.value=!1,null===(e=b.value)||void 0===e||e.blur()}}),{isHover:h,focused:g,renderType:y,showClear:P,inputRef:b,clearIconRef:c,inputValue:l,isComposition:i,compositionValue:u,limitNumber:O,tStatus:x,emitFocus:function(t){var n;h.value&&g.value||(l.value=p.value,e.disabled||(g.value=!0,null===(n=e.onFocus)||void 0===n||n.call(e,p.value,{e:t})))},formatAndEmitBlur:function(t){var n;(function(){var e,t=s.value;if(!(t&&t.tagName&&null!==(e=c.value)&&void 0!==e&&e.$el&&["path","svg"].includes(t.tagName)))return!1;for(;t;){var n;if((null===(n=c.value)||void 0===n?void 0:n.$el)===t)return!0;t=t.parentNode}return!1})()?j():(e.format&&(l.value="number"==typeof p.value||"number"===e.type?p.value:e.format(p.value)),g.value=!1,null===(n=e.onBlur)||void 0===n||n.call(e,p.value,{e:t}),null==N||N.handleBlur())},onHandleCompositionend:function(t){var n;i.value=!1,u.value="",k(t),null===(n=e.onCompositionend)||void 0===n||n.call(e,String(p.value),{e:t})},onHandleCompositionstart:function(t){var n;i.value=!0;var r=t.currentTarget.value;u.value=r,null===(n=e.onCompositionstart)||void 0===n||n.call(e,String(p.value),{e:t})},onRootClick:function(t){var n,r;null===(n=b.value)||void 0===n||n.focus(),null===(r=e.onClick)||void 0===r||r.call(e,{e:t})},emitPassword:function(){if(!d.value){var e="password"===y.value?"text":"password";y.value=e}},handleInput:function(e){var t=e.inputType&&"insertCompositionText"===e.inputType,n=e.currentTarget.value;t||i.value?u.value=n:k(e)},emitClear:function(t){var n,r=t.e,o="number"===e.type?void 0:"";m(o,{e:r,trigger:"clear"}),null===(n=e.onClear)||void 0===n||n.call(e,{e:r})},onClearIconMousedown:function(e){s.value=e.target},innerValue:p}}function uy(e,n,r){var o=t.toRefs(e),a=o.autoWidth,l=o.placeholder,i=t.ref(null),u=t.ref(null),c=function(){i.value&&n.value&&(n.value.style.width=getComputedStyle(i.value).width)};mh(i,(function(){a.value&&(u.value=setTimeout((function(){c(),clearTimeout(u.value)}),100))})),t.onBeforeUnmount((function(){clearTimeout(u.value)}));return t.onMounted((function(){a.value&&t.watch([r,l],(function(){a.value&&t.nextTick((function(){c()}))}),{immediate:!0})})),{inputPreRef:i}}var cy=["isHover","tStatus","inputRef","renderType","showClear","focused","inputValue","isComposition","compositionValue","innerValue","limitNumber"];function sy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function dy(e){for(var t=1;t1)return!1;if(/(e|E)+/.test(e[o])&&(t+=1)>1)return!1;if("-"===e[o]&&(n+=1)>2)return!1}return!0}function wy(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return-1!==e.indexOf(".")?(Qm("InputNumber","num is not a integer number."),e):!e||"0"===e&&t?"":"0"===e?e:(t?e.replace(/0+$/,""):e.replace(/^0+/,""))||"0"}function Oy(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=wy(e,n),o=wy(t,n),a=r.length>o.length,l=a?r:o,i=a?o:r,u=[],c=[],s=n?0:l.length-i.length,d=n?i.length:l.length,v=d-1;v>=0;v--){var f=v-s,p=Number(l[v])+(Number(i[f])||0)+(c[v]||0);p>=10&&(c[v-1]=1),u.unshift(String(p%10))}return c[-1]&&u.unshift("1"),n?u.concat(l.slice(d,l.length)).join(""):u.join("")}function Cy(e,t){var n=Ha(e.split("."),2),r=n[0],o=void 0===r?"0":r,a=n[1],l=void 0===a?"0":a,i=Ha(t.split("."),2),u=i[0],c=void 0===u?"0":u,s=i[1],d=void 0===s?"0":s,v=Oy(o,c);if("0"===l&&"0"===d)return v;var f=wy(l,!0),p=wy(d,!0),m=Oy(f,p,!0),h=m.length;return h>f.length&&h>p.length?[wy(Oy(v,"1")),wy(m.slice(1),!0)].filter((function(e){return e})).join("."):[wy(v),wy(m,!0)].filter((function(e){return e})).join(".")}function xy(e,t){var n=wy(e),r=wy(t);if(n.length===r.length){for(var o=0,a=n.length;or[o])return 1;if(n[o]r.length?1:-1}function Py(e,t){for(var n=e&&"0"!==e?e.replace(/0+$/,""):"0",r=t&&"0"!==t?t.replace(/0+$/,""):"0",o=0,a=Math.max(n.length,r.length);o(r[o]||0))return 1;if((n[o]||0)<(r[o]||0))return-1}return 0}function jy(e){var t=Ha(e.split("e"),2),n=t[0],r=t[1];if(!r)return e;var o=Ha(e.split("."),2),a=o[0],l=o[1],i=void 0===l?"":l,u=Number(r),c=Ha(i.split("e"),1)[0];if(u>c.length){var s=yy(u-c.length);return n.replace(/(^0+|\.)/g,"")+s}var d=a.replace(/^0+/,"")+c.slice(0,u),v=c.slice(u);return v?[d,v].join("."):d}function Sy(e){return[-1/0,1/0].includes(Number(e))}function ky(e){return Number(e)Number.MIN_SAFE_INTEGER}function Ny(e,t,n){var r=ky(e)&&ky(t)&&!n,o=Sy(e)||Sy(t);return r||o?Number(e)===Number(t)?0:Number(e)>Number(t)?1:-1:function(e,t){var n=Ha(jy(e).split("."),2),r=n[0],o=n[1],a=Ha(jy(t).split("."),2),l=a[0],i=a[1],u=xy(r.replace("-",""),l.replace("-","")),c=r.includes("-"),s=l.includes("-");return c&&!s?-1:!c&&s?1:c&&s?0===u?0:u>0?-1:1:0===u?Py(o,i):u}(String(e),String(t))}function _y(e,t,n){if(e===t)return"0";for(var r=n||{},o=r.decimal,a=r.stayZero,l=wy(e),i=wy(t),u=xy(l,i)>0,c=u?l:i,s=u?i:l,d=[],v=[],f=o?0:c.length-s.length,p=o?s.length:c.length,m=p-1;m>=0;m--){var h=m-f,g=Number(c[m])-(Number(s[h])||0)-(v[m]||0);g<0&&(v[m-1]=1,g+=10),d.unshift(String(g))}if(o)return d.concat(c.slice(p,c.length)).join("");var y=d.join("");return a||(y=y.replace(/^0+/,"")),wy(u?y:"-".concat(y))}function Vy(e,t){if(e===t)return"0";var n=Ny(e,t,!0)>0,r=n?t:e,o=Ha((n?e:t).split("."),2),a=o[0],l=o[1],i=void 0===l?"0":l,u=Ha(r.split("."),2),c=u[0],s=u[1],d=void 0===s?"0":s,v=_y(a,c);if("0"===i&&"0"===d)return n?v:"-".concat(v);var f="",p=i;i.length=0?f=_y(p,d,{decimal:!0}):(i.length2&&void 0!==arguments[2])||arguments[2])return e.toFixed(t);var n=Ha(e.toString().split("."),2),r=n[0],o=n[1];if(0===t)return r;if(o){var a=o.slice(0,t);return o.length1&&void 0!==arguments[1]?arguments[1]:0,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(Number.isNaN(Number(e)))return"";if(!r)return function(e,t){var n;return E(t)?Dy(e,t.places,null===(n=t.enableRound)||void 0===n||n):Dy(e,t,!0)}(Number(e),n);var o=E(n)?n.places:n,a=!E(n)||(null===(t=n.enableRound)||void 0===t||t);if(!Do(e))return String(e);var l=Ha(e.split("."),2),i=l[0],u=l[1];if(!u)return o>0&&a?[e,yy(o)].join("."):e;if(0===o)return a&&Number(u[0])>=5?Cy(i,"1"):i;var c=u.slice(0,o);if(u.length=5;c=f?Cy(c,"1"):c,d&&f&&d+c.length>=o&&(c="".concat(yy(o-c.length)).concat(c)),v&&c.length>o&&(i=(Number(i)+1).toString(),c=yy(o))}return[i,c].join(".")}function Fy(e,t){var n,r;if(!e||!t)return(e||0)+(t||0);var o=(null===(n=e.toString().split(".")[1])||void 0===n?void 0:n.length)||0,a=(null===(r=t.toString().split(".")[1])||void 0===r?void 0:r.length)||0;if(!o&&!a)return e+t;var l=e,i=t,u=Math.abs(o-a),c=Math.pow(10,Math.max(o,a));if(u>0){var s=Math.pow(10,u);o>a?(l=Number(e.toString().replace(".","")),i=Number(t.toString().replace(".",""))*s):(l=Number(e.toString().replace(".",""))*s,i=Number(t.toString().replace(".","")))}else l=Number(e.toString().replace(".","")),i=Number(t.toString().replace(".",""));return(l+i)/c}function Ty(e,t){var n,r;if(!e||!t)return(e||0)-(t||0);var o=(null===(n=e.toString().split(".")[1])||void 0===n?void 0:n.length)||0,a=(null===(r=t.toString().split(".")[1])||void 0===r?void 0:r.length)||0,l=Math.pow(10,Math.max(o,a));return Number(((e*l-t*l)/l).toFixed(o>=a?o:a))}function Iy(e){var t=e.op,n=e.step,r=e.lastValue,o=e.max,a=e.min,l=e.largeNumber;if(Number(n)<=0)return Qm("InputNumber","step must be larger than 0."),r;var i,u,c,s=Ho(n)?String(n):n;return"add"===t?l&&Do(r)?i=function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r)return Vy(t,e.slice(1));if(n&&r){var o=Cy(t.slice(1),e.slice(1));return"-".concat(o)}return!n&&r?Vy(e,t.slice(1)):Cy(e,t)}(String(r),String(s)):(u=Number(r||0),c=Number(n),i=u<0&&c>0?Ty(c,Math.abs(u)):u<0&&c<0?-1*Fy(Math.abs(u),Math.abs(c)):u>0&&c<0?Ty(u,Math.abs(c)):Fy(u,c)):"reduce"===t&&(i=l&&Do(r)?function(e,t){var n="-"===e[0],r="-"===t[0];if(n&&!r){var o=Cy(e.slice(1),t);return"-".concat(o)}return n&&r?Vy(t.slice(1),e.slice(1)):!n&&r?Cy(e,t.slice(1)):Vy(e,t)}(String(r),String(s)):function(e,t){return e<0&&t>0?-1*Fy(Math.abs(e),t):e<0&&t<0?Ty(Math.abs(t),Math.abs(e)):e>0&&t<0?Fy(e,Math.abs(t)):Ty(e,t)}(Number(r||0),Number(n))),Uo(r)&&(i=function(e,t){if(""!==e){var n=t.max,r=t.min,o=t.lastValue,a=t.largeNumber;return by(e)?!a||!Do(n)&&n!==1/0||!Do(r)&&r!==-1/0?Math.max(Number(r),Math.min(Number(n),Number(e))):Ny(n,e,a)<0?n:Ny(r,e,a)>0?r:e:o}}(i,{max:o,min:a,lastValue:r,largeNumber:l})),l?i:Number(i)}function My(e){var t=e.largeNumber,n=e.value,r=e.max,o=e.min;if(!Uo(n)&&!Uo(t))return t&&Ho(n)&&Gm("InputNumber","largeNumber value must be a string."),Ny(n,r,t)>0?"exceed-maximum":Ny(n,o,t)<0?"below-minimum":void 0}var Ay=["-",".","e","E","+"];function By(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!["",null,void 0].includes(e)&&/\d+/.test(e)){var n=t.decimalPlaces,r=t.largeNumber,o=t.isToFixed,a=e.replace(/[.|+|\-|e]$/,"");return r&&(a=jy(a)),void 0!==n&&(a=Ey(a,n,r)),r||o?a:parseFloat(a)}}function Ly(e){var n=Km(),r=n.classPrefix,o=n.sizeClassNames,a=n.statusClassNames,l=t.toRefs(e),i=l.value,u=l.modelValue,c=l.max,d=l.min,v=Ha(qm(i,u,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=t.ref(),h=t.ref(""),g=Oi(),y=ey(),b=t.ref(),w=t.computed((function(){return g.value||!function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!e&&0!==e||(n&&Do(e)?Ny(e,t,n)>0:e>t)}(f.value,e.min,e.largeNumber)})),O=t.computed((function(){return g.value||!function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!e&&0!==e||(n&&Do(e)?Ny(e,t,n)<0:e1)return!1;if((null===(r=e.match(/e/g))||void 0===r?void 0:r.length)>1)return!1;var o=e.slice(1);return!(/(\+|-)/.test(o)&&!/e+/i.test(o)||!(t&&by(e)||!Number.isNaN(Number(e))||Ay.includes(e.slice(-1)))||/e/i.test(e)&&!/\de/i.test(e))}(a,e.largeNumber))if(h.value=a,e.largeNumber)p(a,{type:"input",e:o});else if(function(e,t){return parseFloat(e)!==t&&!Number.isNaN(Number(e))}(String(a),Number(f.value))){var l=""===a?void 0:Number(a);p(l,{type:"input",e:o})}},isReadonly:y}}function Ry(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var zy=t.defineComponent({name:"TInputNumber",props:gy,setup:function(e,n){var r=ei(),o=up({AddIcon:zi,RemoveIcon:Vd,ChevronDownIcon:Au,ChevronUpIcon:fc}),a=o.AddIcon,l=o.RemoveIcon,i=o.ChevronDownIcon,u=o.ChevronUpIcon,c=Ly(e),d=c.inputRef;return n.expose(function(e){for(var t=1;t1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(e=pb(e,360),t=pb(t,100),n=pb(n,100),0===t)r=o=a=n;else{var i=n<.5?n*(1+t):n+t-n*t,u=2*n-i;r=l(u,i,e+1/3),o=l(u,i,e),a=l(u,i,e-1/3)}return{r:255*r,g:255*o,b:255*a}}(e.h,r,a),l=!0,i="hsl"),e.hasOwnProperty("a")&&(n=e.a));var u,c,s;return n=fb(n),{ok:l,format:e.format||i,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}function qy(e,t,n){e=pb(e,255),t=pb(t,255),n=pb(n,255);var r,o,a=Math.max(e,t,n),l=Math.min(e,t,n),i=(a+l)/2;if(a==l)r=o=0;else{var u=a-l;switch(o=i>.5?u/(2-a-l):u/(a+l),a){case e:r=(t-n)/u+(t>1)+720)%360;--t;)r.h=(r.h+o)%360,a.push(Zy(r));return a}function sb(e,t){t=t||6;for(var n=Zy(e).toHsv(),r=n.h,o=n.s,a=n.v,l=[],i=1/t;t--;)l.push(Zy({h:r,s:o,v:a})),a=(a+i)%1;return l}Zy.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,n,r=this.toRgb();return e=r.r/255,t=r.g/255,n=r.b/255,.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))},setAlpha:function(e){return this._a=fb(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=Xy(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=Xy(this._r,this._g,this._b),t=Math.round(360*e.h),n=Math.round(100*e.s),r=Math.round(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+r+"%)":"hsva("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=qy(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=qy(this._r,this._g,this._b),t=Math.round(360*e.h),n=Math.round(100*e.s),r=Math.round(100*e.l);return 1==this._a?"hsl("+t+", "+n+"%, "+r+"%)":"hsla("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return Gy(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,n,r,o){var a=[gb(Math.round(e).toString(16)),gb(Math.round(t).toString(16)),gb(Math.round(n).toString(16)),gb(bb(r))];if(o&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1))return a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0);return a.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*pb(this._r,255))+"%",g:Math.round(100*pb(this._g,255))+"%",b:Math.round(100*pb(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*pb(this._r,255))+"%, "+Math.round(100*pb(this._g,255))+"%, "+Math.round(100*pb(this._b,255))+"%)":"rgba("+Math.round(100*pb(this._r,255))+"%, "+Math.round(100*pb(this._g,255))+"%, "+Math.round(100*pb(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(vb[Gy(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+Jy(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var o=Zy(e);n="#"+Jy(o._r,o._g,o._b,o._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+n+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return Zy(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(nb,arguments)},brighten:function(){return this._applyModification(rb,arguments)},darken:function(){return this._applyModification(ob,arguments)},desaturate:function(){return this._applyModification(Qy,arguments)},saturate:function(){return this._applyModification(eb,arguments)},greyscale:function(){return this._applyModification(tb,arguments)},spin:function(){return this._applyModification(ab,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(cb,arguments)},complement:function(){return this._applyCombination(lb,arguments)},monochromatic:function(){return this._applyCombination(sb,arguments)},splitcomplement:function(){return this._applyCombination(ub,arguments)},triad:function(){return this._applyCombination(ib,[3])},tetrad:function(){return this._applyCombination(ib,[4])}},Zy.fromRatio=function(e,t){if("object"==Uy(e)){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:yb(e[r]));e=n}return Zy(e,t)},Zy.equals=function(e,t){return!(!e||!t)&&Zy(e).toRgbString()==Zy(t).toRgbString()},Zy.random=function(){return Zy.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Zy.mix=function(e,t,n){n=0===n?0:n||50;var r=Zy(e).toRgb(),o=Zy(t).toRgb(),a=n/100;return Zy({r:(o.r-r.r)*a+r.r,g:(o.g-r.g)*a+r.g,b:(o.b-r.b)*a+r.b,a:(o.a-r.a)*a+r.a})},Zy.readability=function(e,t){var n=Zy(e),r=Zy(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)},Zy.isReadable=function(e,t,n){var r,o,a=Zy.readability(e,t);switch(o=!1,(r=function(e){var t,n;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==n&&"large"!==n&&(n="small");return{level:t,size:n}}(n)).level+r.size){case"AAsmall":case"AAAlarge":o=a>=4.5;break;case"AAlarge":o=a>=3;break;case"AAAsmall":o=a>=7}return o},Zy.mostReadable=function(e,t,n){var r,o,a,l,i=null,u=0;o=(n=n||{}).includeFallbackColors,a=n.level,l=n.size;for(var c=0;cu&&(u=r,i=Zy(t[c]));return Zy.isReadable(e,i,{level:a,size:l})||!o?i:(n.includeFallbackColors=!1,Zy.mostReadable(e,["#fff","#000"],n))};var db=Zy.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},vb=Zy.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(db);function fb(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function pb(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function mb(e){return Math.min(1,Math.max(0,e))}function hb(e){return parseInt(e,16)}function gb(e){return 1==e.length?"0"+e:""+e}function yb(e){return e<=1&&(e=100*e+"%"),e}function bb(e){return Math.round(255*parseFloat(e)).toString(16)}function wb(e){return hb(e)/255}var Ob,Cb,xb,Pb=(Cb="[\\s|\\(]+("+(Ob="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+Ob+")[,|\\s]+("+Ob+")\\s*\\)?",xb="[\\s|\\(]+("+Ob+")[,|\\s]+("+Ob+")[,|\\s]+("+Ob+")[,|\\s]+("+Ob+")\\s*\\)?",{CSS_UNIT:new RegExp(Ob),rgb:new RegExp("rgb"+Cb),rgba:new RegExp("rgba"+xb),hsl:new RegExp("hsl"+Cb),hsla:new RegExp("hsla"+xb),hsv:new RegExp("hsv"+Cb),hsva:new RegExp("hsva"+xb),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function jb(e){return!!Pb.CSS_UNIT.exec(e)}var Sb={closable:Boolean,color:{type:String,default:""},content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function,default:void 0},maxWidth:{type:[String,Number]},shape:{type:String,default:"square",validator:function(e){return!e||["square","round","mark"].includes(e)}},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},theme:{type:String,default:"default",validator:function(e){return!e||["default","primary","warning","danger","success"].includes(e)}},title:{type:String,default:""},variant:{type:String,default:"dark",validator:function(e){return!e||["dark","light","outline","light-outline"].includes(e)}},onClick:Function,onClose:Function},kb=t.defineComponent({name:"TTag",props:Sb,setup:function(e){var n=Ga("tag").globalConfig,r=Qa("tag"),o=up({CloseIcon:xc}).CloseIcon,a=ei(),l=ni(),i=el().SIZE,u=t.getCurrentInstance().vnode,c=t.computed((function(){return["".concat(r.value),"".concat(r.value,"--").concat(e.theme),"".concat(r.value,"--").concat(e.variant),s(s(s(s({},"".concat(r.value,"--ellipsis"),e.maxWidth),"".concat(r.value,"--close"),e.closable),"".concat(r.value,"--disabled"),e.disabled),i.value[e.size],"medium"!==e.size),"square"!==e.shape&&"".concat(r.value,"--").concat(e.shape)]})),d=t.computed((function(){return f()})),v=t.computed((function(){return e.maxWidth?{maxWidth:isNaN(Number(e.maxWidth))?String(e.maxWidth):"".concat(e.maxWidth,"px")}:{}})),f=function(){var t=e.color,n=e.variant;if(!t)return{};var r,o,a,l,i={color:Zy(t).getLuminance()>.5?"black":"white"};if("outline"!==n&&"light-outline"!==n||(i.borderColor=t),"outline"!==n){i.backgroundColor="dark"===n?t:(r=Zy(t).toRgb(),o=r.r,a=r.g,l=r.b,"rgba(".concat(o,", ").concat(a,", ").concat(l,", 0.1)"))}return"dark"!==n&&(i.color=t),i},p=function(t){var n;e.disabled||null===(n=e.onClick)||void 0===n||n.call(e,{e:t})};return function(){var i=function(){if(!e.closable)return null;var a="".concat(r.value,"__icon-close");return n.value.closeIcon?t.h(n.value.closeIcon(t.h),{class:a}):t.createVNode(o,{onClick:function(t){var n,r=t.e;r&&r.stopPropagation(),null===(n=e.onClose)||void 0===n||n.call(e,{e:r})},class:a},null)}(),s=l("default","content"),f=a("icon"),m=function(t){if(e.maxWidth){var n=u.props||{};return Reflect.has(n,"title")?n.title||void 0:t||void 0}}(Do(s)?s:"");return t.createVNode("div",{class:c.value,style:d.value,onClick:p},[f,t.createVNode("span",{class:e.maxWidth?"".concat(r.value,"--text"):void 0,style:v.value,title:m},[s]),!e.disabled&&i])}}}),Nb={checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,checkedProps:{type:Object},content:{type:[String,Number,Array,Function]},default:{type:[String,Function]},disabled:Boolean,size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},uncheckedProps:{type:Object},value:{type:[String,Number]},onChange:Function,onClick:Function},_b=/^ArrowDown$/i,Vb=/^ArrowUp$/i,Db=/^ArrowLeft$/i,Eb=/^ArrowRight$/i,Fb=/^Escape$/i,Tb=/^Space$/i,Ib=/^Enter$/i,Mb=/^(Shift|ShiftLeft|ShiftRight)$/i,Ab=/^KeyC$/i,Bb=/^(KeyA|KeyL)$/i,Lb=/^(Enter|Space)$/i;function Rb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function zb(e){for(var t=1;ts&&fv))return}null==r||r({currentIndex:a.value,current:l,target:n,targetIndex:t}),a.value=t}}};if(!n)return{};function s(e,t,n){a.value=t,l.value=n;var r=e.target;if(o&&r){var i=r.getBoundingClientRect(),c=i.x,s=i.width;u.nodeX=c,u.nodeWidth=s,u.mouseX=e.clientX}}function d(){i.value=!0}function v(){i.value,i.value=!1,a.value=-1,l.value=null}return{onDragStart:s,onDragOver:c,onDrop:d,onDragEnd:v,getDragProps:function(e,t){return n?{draggable:!0,onDragstart:function(n){s(n,e,t)},onDragover:function(n){c(n,e,t)},onDrop:function(){d()},onDragend:function(){v()}}:{}},dragging:-1!==a.value}}(Gb(Gb({},e),{},{sortOnDraggable:e.dragSort,onDragOverCheck:{x:!0,targetClassNameRegExp:new RegExp("^".concat(A.value,"-tag"))}})),R=L.getDragProps,z=function(e){var n=t.ref(),r=t.toRefs(e),o=r.excessTagsDisplayType,a=r.readonly,l=r.disabled,i=t.ref(0),u=t.ref(),c=t.ref(),s=t.ref(!1),d=function(e){var t=e.children[0];u.value=t},v=function(){i.value=u.value.scrollWidth-u.value.clientWidth},f=function(e){var t;H(null===(t=u.value)||void 0===t?void 0:t.scroll)&&u.value.scroll({left:e,behavior:"smooth"})},p=function(){v(),f(i.value),setTimeout((function(){s.value=!0}),200)};return t.onMounted((function(){var e,t=null===(e=n.value)||void 0===e?void 0:e.$el;t&&d(t)})),t.onUnmounted((function(){clearTimeout(c.value)})),{tagInputRef:n,scrollElement:u,scrollDistance:i,scrollTo:f,scrollToRight:p,scrollToLeft:function(){f(0)},updateScrollElement:d,updateScrollDistance:v,onWheel:function(e){var t=e.e;if(!a.value&&!l.value&&u.value)if(t.deltaX>0){var n=Math.min(u.value.scrollLeft+120,i.value);f(n)}else{var r=Math.max(u.value.scrollLeft-120,0);f(r)}},scrollToRightOnEnter:function(){"scroll"===o.value&&(c.value=setTimeout((function(){p(),clearTimeout(c.value)}),100))},scrollToLeftOnLeave:function(){"scroll"===o.value&&(s.value=!1,f(0),clearTimeout(c.value))},isScrollable:s}}(e),W=z.scrollToRight,K=z.onWheel,U=z.scrollToRightOnEnter,Y=z.scrollToLeftOnLeave,$=z.tagInputRef,Z=z.isScrollable,q=function(e){var n=ei(),r=Qa(),o=t.toRefs(e),a=o.value,l=o.modelValue,u=o.onRemove,c=o.max,s=o.minCollapsedNum,d=o.size,v=o.tagProps,f=o.getDragProps,p=Ha(qm(a,l,e.defaultValue||[],e.onChange),2),m=p[0],h=p[1],g=t.ref(),y=Oi(),b=ey(),w=function(e){var t,n=i(m.value),r=Ha(n.splice(e.index,1),1)[0];h(n,qb(qb({trigger:"tag-remove"},e),{},{item:r})),null===(t=u.value)||void 0===t||t.call(u,qb(qb({},e),{},{item:r,trigger:"tag-remove",value:n}))};return{tagValue:m,clearAll:function(e){h([],{trigger:"clear",e:e.e})},onClose:w,onInnerEnter:function(t,n){var r,o,a=t?String(t).trim():"",l=c&&(null===(r=m.value)||void 0===r?void 0:r.length)>=c.value,i=m.value;!l&&a&&(i=m.value instanceof Array?m.value.concat(String(a)):[a],h(i,{trigger:"enter",index:i.length-1,item:a,e:n.e})),null==e||null===(o=e.onEnter)||void 0===o||o.call(e,i,qb(qb({},n),{},{inputValue:t}))},onInputBackspaceKeyUp:function(e){m.value&&m.value.length&&(g.value=e)},onInputBackspaceKeyDown:function(e,t){var n=t.e;if(m.value&&m.value.length&&"Process"!==n.key&&!b.value){var r=/(Backspace|NumpadDelete)/i.test(n.code)||/(Backspace|NumpadDelete)/i.test(n.key);if(!e&&r){var o,a=m.value.length-1,l=m.value[a],i="backspace",c=m.value.slice(0,-1);h(c,{e:n,index:a,item:l,trigger:i}),null===(o=u.value)||void 0===o||o.call(u,{e:n,index:a,item:l,trigger:i,value:c})}g.value=e}},renderLabel:function(e){var o,a=e.displayNode,l=e.label,i=s.value?m.value.slice(0,s.value):m.value,u=a?[a]:(null==i||null===(o=i.map)||void 0===o?void 0:o.call(i,(function(e,r){var o,a=n("tag",{params:{value:e}});return t.createVNode(Ub,t.mergeProps({key:"".concat(e).concat(r),size:d.value,disabled:y.value,onClose:function(e){return w({e:e.e,index:r})},closable:!b.value&&!y.value},null===(o=f.value)||void 0===o?void 0:o.call(f,r,e),v.value),{default:function(){return[null!=a?a:e]}})})))||[];if([null,void 0,""].includes(l)||u.unshift(t.createVNode("div",{class:"".concat(r.value,"-tag-input__prefix"),key:"label"},[l])),i.length!==(m.value||[]).length){var c=m.value.length-i.length,p=n("collapsedItems",{params:{value:m.value,count:m.value.length-s.value,collapsedTags:m.value.slice(s.value,m.value.length),collapsedSelectedItems:m.value.slice(s.value,m.value.length),onClose:w}});u.push(null!=p?p:t.createVNode(Ub,t.mergeProps({key:"more",size:d.value},v.value),{default:function(){return["+",c]}}))}return u}}}(t.reactive(Gb(Gb({},t.toRefs(e)),{},{getDragProps:R}))),X=q.tagValue,G=q.onInnerEnter,J=q.onInputBackspaceKeyUp,Q=q.onInputBackspaceKeyDown,ee=q.clearAll,te=q.renderLabel,ne=q.onClose,re=t.computed((function(){var e=!(j(X.value)&&X.value.length);return[l.value,s(s(s({},c.value,"break-line"===_.value),"".concat(A.value,"-is-empty"),e),"".concat(A.value,"-tag-input--with-tag"),!e)]})),oe=t.computed((function(){var e;return null!==(e=X.value)&&void 0!==e&&e.length?"":D.value})),ae=t.computed((function(){var e;return Boolean(!f.value&&!v.value&&V.value&&F.value&&((null===(e=X.value)||void 0===e?void 0:e.length)||S.value))})),le=function(e,n){var r,o;null===(r=n.e)||void 0===r||null===(o=r.preventDefault)||void 0===o||o.call(r),k("",{e:n.e,trigger:"enter"}),!M.value&&G(e,n),t.nextTick((function(){W(),M.value=!1}))},ie=function(e,t){var n,r;M.value=!0,null===(n=h.value)||void 0===n||null===(r=n.onCompositionstart)||void 0===r||r.call(n,e,t)},ue=function(e,t){var n,r;M.value=!1,null===(n=h.value)||void 0===n||null===(r=n.onCompositionend)||void 0===r||r.call(n,e,t)},ce=function(t){var n,r;v.value||(B.value=!0,null===(n=$.value)||void 0===n||n.focus(),null===(r=e.onClick)||void 0===r||r.call(e,t))},se=function(t){var n;ee(t),k("",{e:t.e,trigger:"clear"}),null===(n=e.onClear)||void 0===n||n.call(e,t)},de=function(e){T(e),U()},ve=function(e){I(e),Y()},fe=function(t,n){var r;B.value||(B.value=!0,null===(r=e.onFocus)||void 0===r||r.call(e,X.value,{e:n.e,inputValue:t}))},pe=function(t,n){var r;B.value=!1,k("",{e:n.e,trigger:"blur"}),null===(r=e.onBlur)||void 0===r||r.call(e,X.value,{e:n.e,inputValue:t})},me=function(e,t){k(e,Gb(Gb({},t),{},{trigger:"input"}))};return t.watch((function(){return Z.value}),(function(t){if("scroll"===e.excessTagsDisplayType){var n="".concat(A.value,"-input__prefix"),r=$.value.$el.querySelector(".".concat(n));t?r.classList.add("".concat(n,"--scrollable")):r.classList.remove("".concat(n,"--scrollable"))}})),function(){var e,n,a=ae.value?t.createVNode(d,{class:u.value,onClick:se},null):o("suffixIcon"),l=o("prefixIcon"),i="".concat(A.value,"-tag-input__with-suffix-icon");a&&!re.value.includes(i)&&re.value.push(i);var c=o("valueDisplay",{params:{value:X.value,onClose:function(e){return ne({index:e})}}}),s=o("label",{silent:!0}),p=f.value||(null===(e=h.value)||void 0===e?void 0:e.readonly);return t.createVNode(my,t.mergeProps({ref:$,borderless:g.value,readonly:p,showInput:!p||!X.value||!(null!==(n=X.value)&&void 0!==n&&n.length),value:S.value,autoWidth:!0,size:y.value,disabled:v.value,label:function(){return te({displayNode:c,label:s})},class:re.value,tips:b.value,status:w.value,placeholder:oe.value,suffix:O.value,suffixIcon:function(){return a},prefixIcon:function(){return l},keepWrapperWidth:!C.value,onWheel:K,onChange:me,onPaste:x.value,onEnter:le,onKeyup:J,onKeydown:Q,onMouseenter:de,onMouseleave:ve,onFocus:fe,onBlur:pe,onClick:ce,onCompositionstart:ie,onCompositionend:ue},h.value),{suffix:r.suffix})}}}),Qb=pi(Jb),ew=["tips"];function tw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function nw(e){for(var t=1;t=e.offsetWidth?t.offsetWidth:e.offsetWidth,a={};return r.value&&"object"===u(r.value.overlayInnerStyle)&&!r.value.overlayInnerStyle.width&&(a=r.value.overlayInnerStyle),aw({width:"".concat(Math.min(o,1e3),"px")},a)},s=function(e,t){var n;return aw({width:"".concat(Math.max(e.offsetWidth,t.offsetWidth),"px")},null===(n=r.value)||void 0===n?void 0:n.overlayInnerStyle)};return{tOverlayInnerStyle:t.computed((function(){var e,t=(null===(e=r.value)||void 0===e?void 0:e.overlayInnerStyle)||{};return H(t)||E(t)&&t.width?t:o.value?s:c})),innerPopupVisible:a,onInnerPopupVisibleChange:function(t,n){if(!l.value&&!i.value){var r,o=!("trigger-element-click"!==n.trigger||!e.allowInput)||t;if(e.popupVisible!==o)a.value=o,null===(r=e.onPopupVisibleChange)||void 0===r||r.call(e,o,n)}}}}var iw=["tips"];function uw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function cw(e){for(var t=1;t=0||e.multiple&&(null===(r=I.value)||void 0===r||null===(o=r.focus)||void 0===o||o.call(r))};return n.expose({popupRef:f,allowInput:O}),function(){var e,r,o={visible:null!==(e=g.value)&&void 0!==e?e:j.value},a=t.createVNode(Nh,t.mergeProps({ref:f,trigger:(null===(r=b.value)||void 0===r?void 0:r.trigger)||"click",placement:"bottom-left"},o,{content:w.value,hideEmptyPopup:!0},pw(pw({onVisibleChange:S,onOverlayClick:R},b.value),{},{overlayInnerStyle:P.value})),pw({default:function(){return[m.value?M({commonInputProps:_.value,onInnerClear:V,popupVisible:o.visible,allowInput:O.value}):D(o.visible)]}},pw(pw({},n.slots),{},{content:n.slots.panel}))),l=d("tips"),i=["".concat(c.value,"-input__tips"),"".concat(c.value,"-tips"),"".concat(c.value,"-is-").concat(C.value)];return t.createVNode("div",{ref:v,class:B.value},[a,l&&t.createVNode("div",{class:i},[l])])}}}),hw=pi(mw),gw={checkAll:Boolean,content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,label:{type:String,default:""},title:{type:String,default:""},value:{type:[String,Number,Boolean]}},yw={checkAll:Boolean,checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},indeterminate:Boolean,label:{type:[String,Function]},lazyLoad:Boolean,name:{type:String,default:""},readonly:{type:Boolean,default:void 0},title:{type:String,default:""},value:{type:[String,Number,Boolean]},onChange:Function},bw=Symbol("CheckboxGroupProvide");function ww(e,t,n,r){if("undefined"==typeof window)return null;if(!window||!window.IntersectionObserver)return n(),null;var o=null;try{(o=new window.IntersectionObserver((function(t){t[0].isIntersecting&&(n(),o.unobserve(e))}),{rootMargin:"0px 0px ".concat(r,"px 0px"),root:t})).observe(e)}catch(e){console.error(e),n()}return o}function Ow(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Cw(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function _w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n((null===(r=e.scroll)||void 0===r?void 0:r.threshold)||100)})),u="virtual"===(null===(n=e.scroll)||void 0===n?void 0:n.type)?function(e){var n=e.data,r=e.container,o=e.fixedHeight,a=void 0!==o&&o,l=e.lineHeight,i=void 0===l?30:l,u=e.bufferSize,c=void 0===u?20:u,s=e.threshold,d=void 0===s?100:s,v=t.reactive({visibleData:[],cachedHeight:[],cachedScrollY:[]}),f=t.computed((function(){return n.value.length>d})),p=t.ref(0),m=new Map,h=0,g=0,y=0,b=0,w=0,O=0,C=function(){n.value.forEach((function(e,t){e.$index=t,a&&(v.cachedScrollY[t]=t*i)})),a||(v.cachedScrollY[n.value.length-1]=void 0)};C();var x=t.computed((function(){var e=v.cachedHeight;if(e.length){var t=e.reduce((function(e,t){return e+t||i}),0);if(e.length===n.value.length)return t;var r=t/e.length;return t+(n.value.length-e.length)*r}return f.value?n.value.length*i:0})),P=t.computed((function(){var e=v.visibleData,t=e[0];return t?1===e.length?0:v.cachedScrollY[t.$index]:0})),j=function(){O=Math.min(w+h+2*c,n.value.length),v.visibleData=n.value.slice(w,O)},S=function(){var e,o=m.get(y);if(o){var a=null==o||null===(e=o.getBoundingClientRect())||void 0===e?void 0:e.height;v.cachedScrollY[y]=r.value.scrollTop-b,v.cachedHeight[y]=a;for(var l=y+1;l<=(null===(i=v.visibleData[v.visibleData.length-1])||void 0===i?void 0:i.$index);l++){var i,u=m.get(l),c=((null==u?void 0:u.getBoundingClientRect())||{}).height;v.cachedHeight[l]=c;var s=v.cachedScrollY[l-1]+v.cachedHeight[l-1];v.cachedScrollY.splice(l,1,s)}for(var d=y-1;d>=(null===(f=v.visibleData[0])||void 0===f?void 0:f.$index);d--){var f,p=m.get(d),h=((null==p?void 0:p.getBoundingClientRect())||{}).height;v.cachedHeight[d]=h;var C=v.cachedScrollY[d+1]-v.cachedHeight[d];v.cachedScrollY.splice(d,1,C)}if(v.cachedScrollY[0]>0){for(var x=v.cachedScrollY[0],P=Math.min(O,n.value.length),j=0;j=w;o--)o===O-1?v.cachedScrollY.splice(o,1,n.value-v.cachedHeight[o]):v.cachedScrollY.splice(o,1,v.cachedScrollY[o+1]-v.cachedHeight[o])}))}};!a&&t.watch(p,S,{flush:"post"}),t.watch(n,(function(){C(),v.visibleData=[],v.cachedScrollY=[],v.cachedHeight=[],g=0,y=0,b=0,w=0,m.clear(),n.value.length<=d?v.visibleData=n.value:j(),r.value&&(r.value.scrollTop=0)}));var k=!1,N=function(){k&&(h=Math.ceil(r.value.offsetHeight/i),j())};return t.onMounted((function(){if(window&&window.IntersectionObserver){var e=new window.IntersectionObserver((function(t){var n=t[0];(n.isIntersecting||n.intersectionRatio)&&(k=!0,f.value&&N(),e.unobserve(r.value))}));r.value&&e.observe(r.value)}})),Zm(Zm({trs:m,scrollHeight:x},t.toRefs(v)),{},{translateY:P,handleScroll:function(){if(f.value){var e=r.value.scrollTop,t=e-g;g=e;var o=y;if(t+=b){if(t>=0){for(;o(v.cachedHeight[o]||i);)v.cachedHeight[o]||(v.cachedHeight[o]=i),t-=v.cachedHeight[o],o++;o>=n.value.length?(y=n.value.length-1,b=0):(y=o,b=t);var a=r.value;e+a.clientHeight===a.scrollHeight&&(y=n.value.length-h+1),w<=y-c&&(w=Math.min(n.value.length-h,y-c))<0&&(w=0)}else{for(;t<0;)o--,v.cachedHeight[o]||(v.cachedHeight[o]=i),t+=v.cachedHeight[o];o<0?(y=0,b=0):(y=o,b=t),S(),w>y-c&&(w=Math.max(0,y-c))}j()}}},handleRowMounted:function(){f.value&&p.value++},refreshContainer:N,fixedHeight:a,calculateScrollY:S})}({container:e.popupContentRef,data:e.options,fixedHeight:(null===(r=e.scroll)||void 0===r?void 0:r.isFixedRowHeight)||!1,lineHeight:(null===(o=e.scroll)||void 0===o?void 0:o.rowHeight)||28,bufferSize:(null===(a=e.scroll)||void 0===a?void 0:a.bufferSize)||20,threshold:(null===(l=e.scroll)||void 0===l?void 0:l.threshold)||100}):{},c=u.trs,s=void 0===c?null:c,d=u.visibleData,v=void 0===d?null:d,f=u.handleScroll,p=void 0===f?null:f,m=u.scrollHeight,h=void 0===m?null:m,g=u.translateY,y=void 0===g?null:g,b=u.handleRowMounted,w=void 0===b?null:b,O=-1,C=function(e){if(i.value){var t=e.target.scrollTop;Math.abs(O-t)>5?(p(),O=t):O=-1}};t.onMounted((function(){var t;null===(t=e.popupContentRef.value)||void 0===t||t.addEventListener("scroll",C)})),t.onBeforeUnmount((function(){var t;null===(t=e.popupContentRef.value)||void 0===t||t.removeEventListener("scroll",C)}));var x=t.computed((function(){return{position:"absolute",width:"1px",height:"1px",transition:"transform 0.2s",transform:"translate(0, ".concat(h.value,"px)"),"-ms-transform":"translate(0, ".concat(h.value,"px)"),"-moz-transform":"translate(0, ".concat(h.value,"px)"),"-webkit-transform":"translate(0, ".concat(h.value,"px)")}})),P=t.computed((function(){return{transform:"translate(0, ".concat(y.value,"px)"),"-ms-transform":"translate(0, ".concat(y.value,"px)"),"-moz-transform":"translate(0, ".concat(y.value,"px)"),"-webkit-transform":"translate(0, ".concat(y.value,"px)")}}));return{trs:s,scrollHeight:h,translateY:y,visibleData:v,handleRowMounted:w,isVirtual:i,cursorStyle:x,panelStyle:P}};var Rw=t.defineComponent({name:"TSelectPanel",props:{inputValue:Bw.inputValue,panelTopContent:Bw.panelTopContent,panelBottomContent:Bw.panelBottomContent,empty:Bw.empty,creatable:Bw.creatable,loading:Bw.loading,loadingText:Bw.loadingText,multiple:Bw.multiple,filterable:Bw.filterable,filter:Bw.filter,scroll:Bw.scroll,size:Bw.size},setup:function(e,n){var r=n.expose,o=Qa("select"),a=ei(),l=ti(),i=Ga("select"),u=i.t,c=i.globalConfig,s=t.inject(Ew),d=t.ref(null),v=t.computed((function(){return s.value.popupContentRef.value})),f=t.computed((function(){return e.creatable&&e.filterable&&e.inputValue})),p=t.computed((function(){return s.value.displayOptions})),m=Lw({scroll:e.scroll,popupContentRef:v,options:p}),h=m.trs,g=m.visibleData,y=m.handleRowMounted,b=m.isVirtual,w=m.panelStyle,O=m.cursorStyle,C=t.computed((function(){return!p.value.length})),x=function(n){return t.createVNode("ul",{class:"".concat(o.value,"__list")},[n.map((function(n,r){var o,a,l,i;return n.children?t.createVNode(Aw,{label:n.group,divider:n.divider},"function"==typeof(i=l=x(n.children))||"[object Object]"===Object.prototype.toString.call(i)&&!t.isVNode(i)?l:{default:function(){return[l]}}):t.createVNode(Iw,t.mergeProps(ta(n,"index","$index","className","tagName"),b.value?{rowIndex:n.$index,trs:h,scrollType:null===(o=e.scroll)||void 0===o?void 0:o.type,isVirtual:b.value,bufferSize:null===(a=e.scroll)||void 0===a?void 0:a.bufferSize,key:"".concat(n.$index||"","_").concat(r,"_").concat(n.value)}:{key:"".concat(r,"_").concat(n.value)},{index:r,multiple:e.multiple,onRowMounted:y}),n.slots)}))])},P=t.computed((function(){return{small:"s",medium:"m",large:"l"}[s.value.size]}));r({innerRef:d,visibleData:g,isVirtual:b,displayOptions:p});return{renderPanel:function(n,r){return t.createVNode("div",{ref:d,class:["".concat(o.value,"__dropdown-inner"),"".concat(o.value,"__dropdown-inner--size-").concat(P.value)],style:r},[f.value&&t.createVNode("ul",{class:["".concat(o.value,"__create-option"),"".concat(o.value,"__list")]},[t.createVNode(Iw,{value:e.inputValue,label:"".concat(e.inputValue),createAble:!0,class:"".concat(o.value,"__create-option--special")},null)]),e.loading&&l("loadingText",{defaultNode:t.createVNode("div",{class:"".concat(o.value,"__loading-tips")},[u(c.value.loadingText)])}),!e.loading&&C.value&&!f.value&&t.createVNode("div",{class:"".concat(o.value,"__empty")},[a("empty")||u(c.value.empty)]),!C.value&&x(n)])},panelStyle:w,cursorStyle:O,isVirtual:b,displayOptions:p,visibleData:g,renderTNodeJSX:a}},render:function(){return this.isVirtual?t.createVNode(t.Fragment,null,[this.renderTNodeJSX("panelTopContent"),t.createVNode("div",null,[t.createVNode("div",{style:this.cursorStyle},null),this.renderPanel(this.visibleData,this.panelStyle)]),this.renderTNodeJSX("panelBottomContent")]):t.createVNode(t.Fragment,null,[this.renderTNodeJSX("panelTopContent"),this.renderPanel(this.displayOptions),this.renderTNodeJSX("panelBottomContent")])}});function zw(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Hw(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Hw(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function Hw(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function $w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n-1},d=t.computed((function(){if(e.onSearch&&e.filterable)return l.value;if(!r.value||!e.filterable&&!H(e.filter))return l.value;var t,n=[];if(l.value.forEach((function(e){e.children&&n.push(Kw(Kw({},e),{},{children:e.children.filter(s)})),!0===(null==e?void 0:e.checkAll)&&(t=e),s(e)&&n.push(e)})),!H(e.filter)){var o=n.filter((function(e){return e.label===r.value})),a=n.filter((function(e){return e.label!==r.value}));n=o.concat(a)}return n.length&&t?[t].concat(i(n)):n}));return{options:l,optionsMap:c,optionsList:u,optionsCache:a,displayOptions:d,filterMethods:s}}(e,N,w),V=_.optionsMap,D=_.optionsList,E=_.optionsCache,F=_.displayOptions,T=_.filterMethods,I=t.computed((function(){return void 0===x.value?e.multiple?[]:void 0:"object"===e.valueType?e.multiple?x.value.map((function(e){return e[N.value.value]})):x.value[N.value.value]:x.value})),M=function(t,n){if("object"===e.valueType){var r=N.value,o=r.value,a=r.label,l=function(e){if(void 0!==e){var t=V.value.get(e);return s(s({},o,St(t,o)),a,St(t,a))}};t=e.multiple?t.map((function(e){return l(e)})):l(t)}t!==x.value&&(e.multiple&&!e.reserveKeyword&&O(""),P(t,qw({selectedOptions:X(t)},n)))},A=Ha(Um(m,!1,(function(t,n){var r;null===(r=e.onPopupVisibleChange)||void 0===r||r.call(e,t,n)}),"popupVisible"),2),B=A[0],L=A[1],R=t.computed((function(){var t;return null!==(t=!e.multiple&&B.value&&Vw(I.value,V)||e.placeholder)&&void 0!==t?t:f(v.value.placeholder)})),z=t.computed((function(){return e.multiple?function(e,t){var n,r=[],o=Nw(e);try{for(o.s();!(n=o.n()).done;){var a=n.value,l=Vw(a,t);l&&r.push(l)}}catch(e){o.e(e)}finally{o.f()}return r}(I.value,V):Vw(I.value,V)})),W=t.computed((function(){var t,n=e.multiple&&j(I.value)?I.value.map((function(e){var t;return{value:e,label:null===(t=V.value.get(e))||void 0===t?void 0:t.label}})):I.value,r={value:n,onClose:e.multiple?function(e){return Y(e)}:function(){}};return e.multiple||Object.assign(r,{label:z.value}),e.minCollapsedNum&&e.multiple?qw(qw({},r),{},{displayValue:null==n||null===(t=n.slice)||void 0===t?void 0:t.call(n,0,e.minCollapsedNum)}):r})),K=t.computed((function(){return Boolean(e.filterable||v.value.filterable||H(e.filter))})),U=t.computed((function(){return Boolean((e.filterable||v.value.filterable)&&H(e.onSearch))})),Y=function(t,n){var r,o=n||{},a=o.e,l=o.trigger,i=void 0===l?"tag-remove":l;a&&a.stopPropagation();var u=Mr(I.value),c=u[t];u.splice(t,1),"clear"!==i&&M(u,{selectedOptions:X(u),trigger:i,e:a}),null===(r=e.onRemove)||void 0===r||r.call(e,{value:c,data:V.value.get(c),e:a})},$=function(){var t;w.value&&(null===(t=e.onCreate)||void 0===t||t.call(e,w.value),B.value||O(""))},Z=t.computed((function(){var e;return null===(e=k.value)||void 0===e?void 0:e.popupRef.getOverlay()})),q=t.computed((function(){return D.value.filter((function(e){return!e.disabled&&!e["check-all"]&&!e.checkAll&&T(e)}))})),X=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:I.value;return D.value.filter((function(t){if(!t.checkAll)return j(e)?e.includes(t.value):e===t.value}))},G=function(e){var n=e.displayOptions,r=e.optionsList,o=e.innerPopupVisible,a=e.setInnerPopupVisible,l=e.selectPanelRef,i=e.isFilterable,u=e.isRemoteSearch,c=e.getSelectedOptions,s=e.setInnerValue,d=e.innerValue,v=e.popupContentRef,f=e.multiple,p=e.max,m=t.ref(-1),h=t.ref([]),g=t.ref([]),y=Qa();return t.watch(o,(function(e){e&&(m.value=-1,g.value=[],h.value=[])})),t.watch(m,(function(e){var t,n=(null===(t=l.value)||void 0===t||null===(t=t.innerRef)||void 0===t||null===(t=t.querySelector(".".concat(y.value,"-select-option")))||void 0===t?void 0:t.clientHeight)*e;v.value.scrollTo({top:n,behavior:"smooth"})})),{hoverIndex:m,handleKeyDown:function(e){var t,v,y=n.value.length,b=m.value;switch(e.code){case"ArrowUp":e.preventDefault(),-1===m.value?b=0:0===m.value||m.value>n.value.length-1?b=y-1:b--,null!==(t=r.value[b])&&void 0!==t&&t.disabled&&b--,m.value=b;break;case"ArrowDown":e.preventDefault(),-1===m.value||m.value>=y-1?b=0:b++,null!==(v=r.value[b])&&void 0!==v&&v.disabled&&b++,m.value=b;break;case"Enter":if(-1===m.value)break;var w=l.value.isVirtual&&i.value&&g.value.length?g.value:u.value?r.value:h.value;if(w.length||(w=r.value),!o.value){a(!0,{e:e});break}if(f){var O;if(-1===m.value)return;var C=null===(O=w[m.value])||void 0===O?void 0:O.value;if(!C)return;var x=Dw(d.value,C);if(p>0&&x.value.length>p)return;var P=c(x.value);s(x.value,{option:P.find((function(e){return e.value==C})),selectedOptions:P,trigger:x.isCheck?"check":"uncheck",e:e}),h.value=[]}else{var j=c(w[m.value].value);s(w[m.value].value,{option:null==j?void 0:j[0],selectedOptions:c(w[m.value].value),trigger:"check",e:e}),a(!1,{e:e})}break;case"Escape":a(!1,{e:e})}},virtualFilteredOptions:g,filteredOptions:h}}({displayOptions:F,optionsList:D,innerPopupVisible:B,setInnerPopupVisible:L,selectPanelRef:S,isFilterable:K,isRemoteSearch:U,getSelectedOptions:X,setInnerValue:M,innerValue:I,popupContentRef:Z,multiple:e.multiple,max:e.max}),J=G.hoverIndex,Q=G.virtualFilteredOptions,ee=G.handleKeyDown,te=G.filteredOptions,ne=function(t){if(e.multiple){var n=N.value.value,r=I.value.filter((function(e){return D.value.find((function(t){return t.value===e&&t.disabled}))})),o=q.value.map((function(e){return e.value})),a="object"===e.valueType?x.value.map((function(e){return St(e,n)})):x.value,l=i(t?new Set([].concat(i(a),i(o),i(r))):r);M(l,{selectedOptions:X(l),trigger:t?"check":"clear"})}},re=t.computed((function(){var e=q.value.map((function(e){return e.value}));return Io(I.value,e).length})),oe=t.computed((function(){return re.value===q.value.length})),ae=t.computed((function(){return!oe.value&&0!==re.value})),le=t.computed((function(){return{max:e.max,multiple:e.multiple,hoverIndex:J.value,selectValue:I.value,reserveKeyword:e.reserveKeyword,handleValueChange:M,handlerInputChange:O,handlePopupVisibleChange:L,handleCreate:$,size:e.size,popupContentRef:Z,indeterminate:ae.value,isCheckAll:oe.value,onCheckAllChange:ne,getSelectedOptions:X,displayOptions:F.value,emitBlur:se}}));t.provide(Ew,le);var ie=function(){!e.multiple&&j(x.value)&&P(void 0,{selectedOptions:[],trigger:"default"}),e.multiple&&!j(x.value)&&P([],{selectedOptions:[],trigger:"default"})},ue=po((function(t,n){var r,o=n.e;null===(r=e.onSearch)||void 0===r||r.call(e,"".concat(t),{e:o})}),300),ce=function(e,n){e&&!B.value&&L(!0,{e:n.e}),O(e),ue("".concat(e),{e:n.e}),t.nextTick((function(){var e,t;Q.value=null===(e=S.value)||void 0===e?void 0:e.visibleData,te.value=null===(t=S.value)||void 0===t?void 0:t.displayOptions}))},se=function(t){var n;null===(n=e.onBlur)||void 0===n||n.call(e,{e:t,value:I.value})},de=function(e,t){L(e,t),e&&"trigger-element-click"===t.trigger&&O("")},ve=function(){var t=Bf(Hf.mark((function t(n){var r,o,a;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=e.popupProps,!e.loading){t.next=3;break}return t.abrupt("return");case 3:null==a||null===(r=a["on-scroll-to-bottom"])||void 0===r||r.call(a,n),null==a||null===(o=a.onScrollToBottom)||void 0===o||o.call(a,n);case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();t.watch(x,(function(n){ie(),t.nextTick((function(){!function(t){if(e.multiple){var n,r=[],o=Yw(t||[]);try{for(o.s();!(n=o.n()).done;){var a=n.value,l=V.value.get(a);l&&r.push(l)}}catch(e){o.e(e)}finally{o.f()}E.value=Array.from(new Set([].concat(r,i(E.value))))}else{var u=V.value.get(t);u&&(E.value=Array.from(new Set([u].concat(i(E.value)))))}}(n)}))}),{immediate:!0}),t.watch((function(){return e.multiple}),(function(){ie()}));return t.provide("updateScrollTop",(function(e){var n;if(S.value){var r=null===(n=S.value)||void 0===n||null===(n=n.innerRef)||void 0===n?void 0:n.querySelector(".".concat(o.value,"-is-selected"));t.nextTick((function(){if(r&&e){var t=getComputedStyle(r).paddingBottom,n=getComputedStyle(e).marginBottom,o=parseInt(t,10)+parseInt(n,10),a=r.offsetTop-e.offsetTop-(e.clientHeight-r.clientHeight)+o;e.scrollTop=a}}))}})),function(){var n=e.popupProps||{},o=n.overlayClassName,i=nl(n,Uw);return t.createVNode("div",{class:"".concat(c.value,"__wrap")},[t.createVNode(hw,t.mergeProps({autoWidth:e.autoWidth,readonly:l.value,borderless:e.borderless,multiple:e.multiple,clearable:e.clearable,loading:e.loading,status:e.status,tips:e.tips,minCollapsedNum:e.minCollapsedNum,autofocus:e.autofocus,suffix:e.suffix,valueDisplayOptions:e.valueDisplayOptions},{ref:k,class:c.value,value:z.value,disabled:a.value,popupVisible:B.value,inputValue:B.value?w.value:"",placeholder:"".concat(R.value),allowInput:K.value,"collapsed-items":e.collapsedItems,inputProps:qw(qw({size:e.size,autofocus:e.autofocus},e.inputProps),{},{onkeydown:ee}),tagInputProps:qw({size:e.size},e.tagInputProps),onTagChange:function(e,t){Y(t.index,t)},tagProps:qw({},e.tagProps),popupProps:qw(qw({overlayClassName:["".concat(c.value,"__dropdown"),o]},i),{},{onScrollToBottom:ve}),label:e.label,prefixIcon:e.prefixIcon,suffix:e.suffix,suffixIcon:function(){return e.suffixIcon||r.suffixIcon?u("suffixIcon"):e.showArrow&&t.createVNode(Bg,{overlayClassName:"".concat(c.value,"__right-icon"),isActive:B.value},null)},valueDisplay:function(){return u("valueDisplay",{params:W.value})},onPopupVisibleChange:de,onInputChange:ce,onClear:function(t){var n,r=t.e;M(e.multiple?[]:void 0,{option:null,selectedOptions:X(e.multiple?[]:void 0),trigger:"clear",e:r}),null===(n=e.onClear)||void 0===n||n.call(e,{e:r})},onEnter:function(t,n){var r=n.e;setTimeout((function(){var t;null===(t=e.onEnter)||void 0===t||t.call(e,{inputValue:"".concat(w.value),e:r,value:I.value}),$()}),0)},onBlur:function(t,n){var r,o=n.e;null===(r=e.onBlur)||void 0===r||r.call(e,{e:o,value:I.value})},onFocus:function(t,n){var r,o=n.e;null===(r=e.onFocus)||void 0===r||r.call(e,{e:o,value:I.value})}},e.selectInputProps),{label:r.label,prefixIcon:r.prefixIcon,suffix:r.suffix,panel:function(){return t.createVNode(Rw,t.mergeProps({ref:S},xa(e,["size","multiple","empty","loading","loadingText","filterable","creatable","panelTopContent","panelBottomContent","filter","scroll"]),{inputValue:w.value}),r)},collapsedItems:r.collapsedItems})])}}}),Gw=pi(Xw),Jw=pi(Iw),Qw=pi(Aw),eO={append:{type:[String,Function]},prepend:{type:[String,Function]}},tO=t.defineComponent({name:"TInputAdornment",inheritAttrs:!1,props:eO,setup:function(e,n){var r=n.slots,o=Qa("input-adornment"),a=ei(),l=function(e,n,a){var l,i=Do(a)||Ho(a);return r[n]||!Do(a)||a?(l=r[n]?1===r[n](null).length&&"string"==typeof r[n](null)[0].children?t.createVNode("span",{class:"".concat(o.value,"__text")},[r[n](null)]):r[n](null):H(a)?a(e):i?t.createVNode("span",{class:"".concat(o.value,"__text")},[a]):a)?t.createVNode("span",{class:"".concat(o.value,"__").concat(n)},[l]):l:null};return function(){var n=l(t.h,"prepend",e.prepend),r=l(t.h,"append",e.append),i=a("default")||[null],u=[o.value,s(s({},"".concat(o.value,"--prepend"),n),"".concat(o.value,"--append"),r)];return n||r?t.createVNode("div",{class:u},[n,i[0],r]):i[0]}}}),nO=pi(tO),rO={current:{type:Number,default:void 0},modelValue:{type:Number,default:void 0},defaultCurrent:{type:Number,default:1},disabled:Boolean,foldedMaxPageBtn:{type:Number,default:5},maxPageBtn:{type:Number,default:10},pageEllipsisMode:{type:String,default:"mid",validator:function(e){return!e||["mid","both-ends"].includes(e)}},pageSize:{type:Number,default:void 0},defaultPageSize:{type:Number,default:10},pageSizeOptions:{type:Array,default:function(){return[5,10,20,50]}},selectProps:{type:Object},showFirstAndLastPageBtn:Boolean,showJumper:Boolean,showPageNumber:{type:Boolean,default:!0},showPageSize:{type:Boolean,default:!0},showPreviousAndNextBtn:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium"].includes(e)}},theme:{type:String,default:"default",validator:function(e){return!e||["default","simple"].includes(e)}},total:{type:Number,default:0},totalContent:{type:[Boolean,Function],default:!0},onChange:Function,onCurrentChange:Function,onPageSizeChange:Function};var oO=["pageCount"],aO=t.defineComponent({name:"TPagination",props:rO,setup:function(e){var n=t.getCurrentInstance().emit,r=t.toRefs(e),o=r.modelValue,a=r.pageSize,l=r.current,i=ei(),u=Ha(qm(l,o,e.defaultCurrent,e.onCurrentChange,"current"),2),c=u[0],d=u[1],v=Ha(Um(a,e.defaultPageSize,e.onPageSizeChange,"pageSize"),2),f=v[0],p=v[1],m=Ga("pagination"),h=m.t,g=m.globalConfig,y=Qa("pagination"),b=up({PageFirstIcon:wd,PageLastIcon:jd,ChevronLeftIcon:$u,ChevronRightIcon:uc,ChevronLeftDoubleIcon:Hu,ChevronRightDoubleIcon:rc,EllipsisIcon:Zc}),w=b.PageFirstIcon,O=b.PageLastIcon,C=b.ChevronLeftIcon,x=b.ChevronRightIcon,P=b.ChevronLeftDoubleIcon,j=b.ChevronRightDoubleIcon,S=b.EllipsisIcon,k=function(e,n,r,o){var a=el(),l=a.SIZE,i=a.STATUS,u=t.computed((function(){var t=Math.ceil(e.total/r.value);return t>0?t:1})),c=t.computed((function(){return["".concat(o.value),l.value[e.size],s(s({},i.value.disabled,e.disabled),"".concat(o.value,"-ie"),ll()<11),"simple"===e.theme?"".concat(o.value,"--simple"):""]})),d=t.computed((function(){return["".concat(o.value,"__total")]})),v=t.computed((function(){return["".concat(o.value,"__select")]})),f=t.computed((function(){return["".concat(o.value,"__btn"),"".concat(o.value,"__btn-prev"),s({},i.value.disabled,e.disabled||1===n.value)]})),p=t.computed((function(){return["".concat(o.value,"__btn"),"".concat(o.value,"__btn-next"),s({},i.value.disabled,e.disabled||n.value===u.value)]})),m=t.computed((function(){return["".concat(o.value,"__pager")]})),h=t.computed((function(){return["".concat(o.value,"__number"),"".concat(o.value,"__number--more"),s({},i.value.disabled,e.disabled)]})),g=t.computed((function(){return["".concat(o.value,"__jump")]})),y=t.computed((function(){return["".concat(o.value,"__input")]})),b=t.computed((function(){return["".concat(o.value,"__select")]}));return{pageCount:u,paginationClass:c,totalClass:d,sizerClass:v,preBtnClass:f,nextBtnClass:p,btnWrapClass:m,btnMoreClass:h,jumperClass:g,jumperInputClass:y,simpleClass:b,getButtonClass:function(t){return["".concat(o.value,"__number"),s(s({},i.value.disabled,e.disabled),i.value.current,n.value===t)]}}}(e,c,f,y),N=k.pageCount,_=nl(k,oO),V=function(e,n,r){var o=t.ref(!1),a=t.ref(!1),l=t.computed((function(){return Math.ceil((e.foldedMaxPageBtn-1)/2)})),i=t.computed((function(){return Math.floor((e.foldedMaxPageBtn-1)/2)})),u=t.computed((function(){return 2+l.valuer.value}));return{prevMore:o,nextMore:a,curPageLeftCount:l,curPageRightCount:i,isPrevMoreShow:u,isNextMoreShow:c}}(e,N,c),D=V.prevMore,F=V.isPrevMoreShow,T=V.curPageLeftCount,I=V.nextMore,M=V.isNextMoreShow,A=V.curPageRightCount,B=t.ref(c.value),L=t.computed((function(){return N.value>e.maxPageBtn})),R=t.computed((function(){return e.pageSizeOptions.map((function(e){return E(e)?e:{label:h(g.value.itemsPerPage,{size:e}),value:Number(e)}})).sort((function(e,t){return e.value-t.value}))})),z=t.computed((function(){return"mid"===e.pageEllipsisMode})),H=t.computed((function(){var t,n,r=[];if(L.value)if(F.value&&M.value)t=c.value-T.value,n=c.value+A.value;else{var o=z.value?2:1,a=z.value?N.value-1:N.value;t=F.value?Math.min(c.value-1,N.value-e.foldedMaxPageBtn+1):o,n=M.value?Math.max(c.value+1,e.foldedMaxPageBtn):a}else t=1,n=N.value;for(var l=t;l<=n;l++)r.push(l);return r}));t.watch((function(){return N.value}),(function(){c.value>N.value&&(c.value=1)})),t.watch((function(){return c.value}),(function(e){return B.value=e}));var W=function(t,r){if(!e.disabled){var o=t;if(t<1?o=1:t>N.value&&(o=N.value),c.value!==o){var a,l=c.value;if(r=r||{current:o,previous:l,pageSize:f.value})d(o,r),null===(a=e.onChange)||void 0===a||a.call(e,r);else n("update:modelValue",o)}}},K=function(t){({prevPage:function(){return W(c.value-1)},nextPage:function(){return W(c.value+1)},prevMorePage:function(){return W(Math.max(2,c.value-e.foldedMaxPageBtn))},nextMorePage:function(){return W(Math.min(c.value+e.foldedMaxPageBtn,N.value-1))}})[t]()},U=function(t){if(!e.disabled){var n=parseInt(t,10),r=1;n>0&&(r=Math.max(Math.ceil(e.total/n),1));var o=!1;c.value>r&&(o=!0);var a,l={current:o?r:c.value,previous:c.value,pageSize:n};if(p(n,l),o)W(r,l);else null===(a=e.onChange)||void 0===a||a.call(e,l)}},Y=function(e){var t,n=Math.trunc(+e);Ho(t=n)&&t!=+t||(B.value=n,W(n))};return function(){var n=e.total,r=e.pageSizeOptions,o=e.size,a=e.disabled,l=e.showPageSize;if(N.value<1)return null;var u=t.createVNode("div",{class:_.jumperClass.value},[h(g.value.jumpTo),t.createVNode(nO,{append:"/ ".concat(N.value," ").concat(h(g.value.page))},{default:function(){return[t.createVNode(Hy,{class:_.jumperInputClass.value,modelValue:B.value,"onUpdate:modelValue":function(e){return B.value=e},onBlur:Y,onEnter:Y,max:N.value,min:1,size:o,disabled:a,theme:"normal",placeholder:""},null)]}})]);return t.createVNode("div",{class:_.paginationClass.value},[i("totalContent",t.createVNode("div",{class:_.totalClass.value},[h(g.value.total,{total:n})])),l&&r.length>0&&t.createVNode(Gw,t.mergeProps({size:o,value:f,disabled:a,class:_.sizerClass.value,autoWidth:!0,onChange:U,options:R.value},e.selectProps),null),e.showFirstAndLastPageBtn?t.createVNode("div",{class:_.preBtnClass.value,onClick:function(){return W(1)}},[t.createVNode(w,null,null)]):null,e.showPreviousAndNextBtn?t.createVNode("div",{class:_.preBtnClass.value,onClick:function(){return K("prevPage")}},[t.createVNode(C,null,null)]):null,e.showPageNumber&&"default"===e.theme?t.createVNode("ul",{class:_.btnWrapClass.value},[L.value&&z.value&&t.createVNode("li",{class:_.getButtonClass(1),onClick:function(){return W(1)}},[1]),L.value&&F.value&&z.value?t.createVNode("li",{class:_.btnMoreClass.value,onClick:function(){return K("prevMorePage")},onMouseover:function(){return D.value=!0},onMouseout:function(){return D.value=!1}},[D.value?t.createVNode(P,null,null):t.createVNode(S,null,null)]):null,H.value.map((function(e){return t.createVNode("li",{class:_.getButtonClass(e),key:e,onClick:function(){return W(e)}},[e])})),L.value&&M.value&&z.value?t.createVNode("li",{class:_.btnMoreClass.value,onClick:function(){return K("nextMorePage")},onMouseover:function(){return I.value=!0},onMouseout:function(){return I.value=!1}},[I.value?t.createVNode(j,null,null):t.createVNode(S,null,null)]):null,L.value&&z.value?t.createVNode("li",{class:_.getButtonClass(N.value),onClick:function(){return W(N.value)}},[N.value]):null]):null,"simple"===e.theme&&u,e.showPreviousAndNextBtn?t.createVNode("div",{class:_.nextBtnClass.value,onClick:function(){return K("nextPage")}},[t.createVNode(x,null,null)]):null,e.showFirstAndLastPageBtn?t.createVNode("div",{class:_.nextBtnClass.value,onClick:function(){return W(N.value)}},[t.createVNode(O,null,null)]):null,"default"===e.theme&&e.showJumper&&u])}}}),lO={disabled:{type:[Boolean,Object]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},showCurrent:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},tips:{type:Object},variant:{type:String,default:"text",validator:function(e){return!e||["text","outline"].includes(e)}},onChange:Function},iO=t.defineComponent({name:"TPaginationMini",props:lO,setup:function(e){var n=Qa("pagination-mini"),r=up({ChevronLeftIcon:$u,RoundIcon:Rd,ChevronRightIcon:uc,ChevronUpIcon:fc,ChevronDownIcon:Au}),o=r.ChevronLeftIcon,a=r.RoundIcon,l=r.ChevronRightIcon,i=r.ChevronUpIcon,u=r.ChevronDownIcon,c=t.computed((function(){return E(e.tips)?e.tips:!0===e.tips?{prev:"\u4e0a\u4e00\u9875",current:"\u5f53\u524d",next:"\u4e0b\u4e00\u9875"}:{}})),d=t.computed((function(){return E(e.disabled)?e.disabled:!0===e.disabled?{prev:!0,current:!0,next:!0}:{prev:!1,current:!1,next:!1}}));return function(){var r=[n.value,s({},"".concat(n.value,"--outline"),"outline"===e.variant)];return t.createVNode("div",{class:r},[t.createVNode(ji,{title:c.value.prev,variant:e.variant,size:e.size,shape:"square",onClick:function(t){var n;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,{e:t,trigger:"prev"})},icon:"horizontal"===e.layout?function(){return t.createVNode(o,null,null)}:function(){return t.createVNode(i,null,null)},class:"".concat(n.value,"__prev"),disabled:d.value.prev},null),e.showCurrent&&t.createVNode(ji,{title:c.value.current,variant:e.variant,size:e.size,shape:"square",onClick:function(t){var n;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,{e:t,trigger:"current"})},icon:function(){return t.createVNode(a,null,null)},class:"".concat(n.value,"__current"),disabled:d.value.current},null),t.createVNode(ji,{title:c.value.next,variant:e.variant,size:e.size,shape:"square",onClick:function(t){var n;return null===(n=e.onChange)||void 0===n?void 0:n.call(e,{e:t,trigger:"next"})},icon:"horizontal"===e.layout?function(){return t.createVNode(l,null,null)}:function(){return t.createVNode(u,null,null)},class:"".concat(n.value,"__next"),disabled:d.value.next},null)])}}}),uO=pi(aO),cO=pi(iO),sO={current:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultCurrent:{type:[String,Number]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},options:{type:Array},readonly:{type:Boolean,default:void 0},separator:{type:String,default:"line",validator:function(e){return!e||["line","dashed","arrow"].includes(e)}},sequence:{type:String,default:"positive",validator:function(e){return!e||["positive","reverse"].includes(e)}},theme:{type:String,default:"default",validator:function(e){return!e||["default","dot"].includes(e)}},onChange:Function},dO={content:{type:[String,Function],default:""},default:{type:[String,Function]},extra:{type:[String,Function]},icon:{type:[Boolean,Function],default:!0},status:{type:String,default:"default",validator:function(e){return!e||["default","process","finish","error"].includes(e)}},title:{type:[String,Function],default:""},value:{type:[String,Number]}};function vO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fO(e){for(var t=1;tr)return"finish"}return(void 0===t.value?n:t.value)===a.value?"process":"default"},c=gf(),s=function(){var t,n;null!==(t=e.options)&&void 0!==t&&t.length?n="reverse"===e.sequence?e.options.slice().reverse():e.options:n=function(t){var n=[];return null==t||t.forEach((function(t){var r=(null==t?void 0:t.props)||{},o=null==t?void 0:t.children;if(r||o){if(o&&E(o))for(var a in o)a in dO&&!r[a]&&(r[a]=o[a]);"reverse"===e.sequence?n.unshift(r):n.push(r)}})),n}(c("StepItem"));return(n||[]).forEach((function(e,t){void 0!==e.value&&(i.value[e.value]=t)})),n},d=t.computed((function(){return[n.value,"".concat(n.value,"--").concat(e.layout),"".concat(n.value,"--").concat((t=e.theme,s().forEach((function(e){void 0!==(null==e?void 0:e.icon)&&(t="default")})),t),"-anchor"),"".concat(n.value,"--").concat(e.sequence),"".concat(n.value,"--").concat(e.separator,"-separator")];var t}));return function(){return t.createVNode("div",{class:d.value},[(n=s(),n.map((function(r,o){var a="reverse"===e.sequence?n.length-o-1:o;return o=void 0!==r.value?o:a,t.createVNode(pO,t.mergeProps(r,{index:a,status:u(r,o),key:r.value||o}),null)})))]);var n}}}),hO=pi(mO),gO=pi(pO),yO={list:{type:Array,default:function(){return[]}},offset:{type:Array},placement:{type:String,default:"right-bottom",validator:function(e){return!e||["right-top","right-center","right-bottom","left-top","left-center","left-bottom"].includes(e)}},popupProps:{type:Object},shape:{type:String,default:"square",validator:function(e){return!e||["square","round"].includes(e)}},type:{type:String,default:"normal",validator:function(e){return!e||["normal","compact"].includes(e)}},width:{type:[String,Number]},onClick:Function,onHover:Function},bO={icon:{type:Function},label:{type:[String,Function]},popup:{type:[String,Function]},popupProps:{type:Object},trigger:{type:String,default:"hover",validator:function(e){return!e||["hover","click"].includes(e)}}};function wO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function OO(e){for(var t=1;t=t&&(n.value=!0),r=f.value.length?0:i+1;l.value=null===(a=f.value[u])||void 0===a?void 0:a.text}else(Ib.test(e.code)||Ib.test(e.key))&&l.value&&r("select",l.value,{e:e})},h=function(){Nl(document,"keydown",m)},g=function(){_l(document,"keydown",m)};return a({addKeyboardListener:h,removeKeyboardListener:g}),t.watch((function(){return e.popupVisible}),(function(){e.popupVisible?h():g()}),{immediate:!0}),t.watch((function(){return e.value}),(function(){e.value||(l.value="")}),{immediate:!0}),t.onBeforeUnmount((function(){g()})),function(){return f.value.length?t.createVNode("ul",{class:d.value},[f.value.map((function(n){var r=i(v.value);n.text===l.value&&r.push("".concat(u.value,"-select-option--hover"));var a=n.label;if(H(n.label))a=n.label(t.h);else if(o.option){var c;a=null===(c=o.option)||void 0===c?void 0:c.call(o,{option:n})}var s=a||n.text;return t.createVNode("li",{key:n.text,class:r,title:n.text,onClick:p},[Do(s)&&e.highlightKeyword?t.createVNode(EO,{content:s,keyword:e.value},null):s])}))]):t.createVNode("div",{class:"".concat(u.value,"-auto-complete__panel--empty")},[e.empty||c.value.empty])}}});function MO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function AO(e){for(var t=1;t=(n.getBoundingClientRect().width||n.offsetWidth||n.clientWidth)?"".concat(o,"px"):"auto"},null===(r=e.popupProps)||void 0===r?void 0:r.overlayInnerStyle)},b=t.computed((function(){return["".concat(d.value,"-auto-complete")]})),w=t.computed((function(){var t,n=["".concat(d.value,"-select__dropdown")];return null!==(t=e.popupProps)&&void 0!==t&&t.overlayClassName&&(n=n.concat(e.popupProps.overlayClassName)),n})),O=t.computed((function(){var t,n=["".concat(d.value,"-select__dropdown-inner")];return null!==(t=e.popupProps)&&void 0!==t&&t.overlayInnerClassName&&(n=n.concat(e.popupProps.overlayInnerClassName)),n})),C=function(e,t){i(e,t)},x=t.computed((function(){return AO({value:l.value,size:e.size},e.inputProps)})),P=function(n,r){var o;m.value||p.value||(h.value=!0,null===(o=e.onFocus)||void 0===o||o.call(e,AO(AO({},r),{},{value:n})),t.nextTick((function(){var e;null===(e=g.value)||void 0===e||e.addKeyboardListener()})))},j=function(t,n){var r;null===(r=e.onBlur)||void 0===r||r.call(e,AO(AO({},n),{},{value:t}))},S=function(t,n){var r;null===(r=e.onCompositionend)||void 0===r||r.call(e,AO(AO({},n),{},{value:t}))},k=function(t,n){var r;null===(r=e.onCompositionstart)||void 0===r||r.call(e,AO(AO({},n),{},{value:t}))},N=function(t,n){var r;null===(r=e.onEnter)||void 0===r||r.call(e,AO(AO({},n),{},{value:t}))},_=function(t,n){var r;m.value||p.value||(h.value=!1,i(t,n),null===(r=e.onSelect)||void 0===r||r.call(e,t,n))},V=function(e,t){var n=t.trigger;m.value||p.value||"trigger-element-click"!==n&&(h.value=e)};return function(){var n,o,a=u("default","triggerElement")||t.createVNode(my,t.mergeProps({borderless:e.borderless,placeholder:null!==(n=e.placeholder)&&void 0!==n?n:f.value.placeholder,tips:e.tips,status:e.status,readonly:m.value,disabled:p.value,autofocus:e.autofocus,clearable:e.clearable,onChange:C,onFocus:P,onBlur:j,onClear:e.onClear,onCompositionend:S,onCompositionstart:k,onEnter:N},x.value),r),i=Array.isArray(e.options)&&t.createVNode(IO,{ref:g,value:l.value,options:e.options,size:e.size,sizeClassNames:v,onSelect:_,popupVisible:h.value,highlightKeyword:e.highlightKeyword,filterable:e.filterable,filter:e.filter,empty:c("empty")},{option:r.option}),s=c("panelTopContent"),D=c("panelBottomContent"),E=s||i||D?t.createVNode("div",{class:"".concat(d.value,"-auto-complete__panel")},[s,i,D]):null,F=AO(AO({},e.popupProps),{},{overlayInnerStyle:y,overlayInnerClassName:O.value,overlayClassName:w.value});return t.createVNode("div",{class:b.value},[t.createVNode(Nh,t.mergeProps({visible:h.value,onVisibleChange:V,trigger:"focus",placement:"bottom-left",hideEmptyPopup:!0,content:E?function(){return E}:null},F),(o=a,"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?a:{default:function(){return[a]}}))])}}}),LO=pi(BO),RO=pi(EO);function zO(e,t,n){var r=n.disabled;return["".concat(e,"-cascader__icon"),s({},t.disabled,r)]}function HO(e,t,n){var r=n.checkStrictly,o=n.multiple,a=n.value,l=n.max,i=!r&&e.expanded&&(!o||!e.isLeaf())||r&&e.expanded,u=e.isLeaf(),c=e.disabled||o&&a.length>=l&&0!==l,d=e.checked||o&&!r&&e.expanded&&!u;return o||r||u||(d=e.expanded),[s(s(s({},t.selected,!c&&d),t.expanded,!c&&i),t.disabled,c)]}function WO(e){var t=e.value,n=e.multiple,r=e.treeStore,o=e.showAllLevels;if(n||0!==t&&!t)return"";if(j(t))return"";var a=r&&r.getNodes(t);if(!a||!a.length)return t;var l=a&&a[0].getPath();return l&&l.length?o?l.map((function(e){return e.label})).join(" / "):l.at(-1).label:t}function KO(e){var t=[];return e.forEach((function(e){t[e.level]?t[e.level].push(e):t[e.level]=[e]})),t}function UO(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/";return null==e?void 0:e.getPath().map((function(e){return e.label})).join(t)}var YO=function(e){var t=[];return j(e)?e.length>0&&E(e[0])?t=e.map((function(e){return e.value})):e.length&&(t=e):$O(e)||(t=E(e)?[e.value]:[e]),t};function $O(e){return!(Ho(e)&&!isNaN(e))&&Ro(e)}function ZO(e,t,n){var r=e.disabled,o=e.setValue,a=e.value,l=e.valueType,i=e.treeStore;if(!r)if(void 0!==t){var u=Mr(a).splice(t,1),c=i.getNodes(u[0])[0],s=c.setChecked(!c.isChecked());o("single"===l?s:s.map((function(e){return i.getNode(e).getPath().map((function(e){return e.value}))})),"uncheck",c.getModel()),H(n)&&n({value:s,node:c})}else H(n)&&n({value:a,node:void 0})}var qO={node:{type:Object,default:function(){return{}}},optionChild:{type:[Object,Array]},cascaderContext:{type:Object},onChange:Function,onClick:Function,onMouseenter:Function},XO=t.defineComponent({name:"TCascaderItem",props:qO,setup:function(e){var n=t.ref();wi(n);var r=Qa("cascader__item"),o=Qa(),a=up({ChevronRightIcon:uc}).ChevronRightIcon,l=el(),u=l.STATUS,c=l.SIZE,d=t.computed((function(){return function(e,t,n,r,o){var a=o.size;return["".concat(e,"-cascader__item")].concat(i(HO(t,r,o)),[n[a],s(s({},"".concat(e,"-cascader__item--with-icon"),!!t.children),"".concat(e,"-cascader__item--leaf"),t.isLeaf())])}(o.value,e.node,c.value,u.value,e.cascaderContext)})),v=t.computed((function(){return function(e,t,n,r){return["".concat(e,"-cascader__item-icon"),"".concat(e,"-icon")].concat(i(HO(t,n,r)))}(o.value,e.node,u.value,e.cascaderContext)}));function f(e,n){var o=n.inputVal,a=o?UO(e):e.label;if(o){for(var l=a.split(o),i=[],u=0;u=i&&0!==i,name:String(n.value),stopLabelTrigger:!!n.children,title:u?UO(n):p(n),onChange:function(){e.onChange()}},a),"function"==typeof(o=c)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?c:{default:function(){return[c]}})}return function(){var r=e.cascaderContext,o=e.node,l=e.optionChild,i=l&&r.multiple;return t.createVNode("li",{ref:n,class:d.value,onClick:function(){return i?e.onChange():e.onClick()},onMouseenter:e.onMouseenter},[l||(r.multiple?h(o,r):m(o,r)),o.children&&(o.loading?t.createVNode(mi,{class:v.value,size:"small"},null):t.createVNode(a,{class:v.value},null))])}}}),GO={autofocus:Boolean,borderless:Boolean,checkProps:{type:Object},checkStrictly:Boolean,clearable:Boolean,collapsedItems:{type:Function},disabled:{type:Boolean,default:void 0},empty:{type:[String,Function]},filter:{type:Function},filterable:Boolean,inputProps:{type:Object},keys:{type:Object},label:{type:[String,Function]},lazy:{type:Boolean,default:!0},load:{type:Function},loading:Boolean,loadingText:{type:[String,Function]},max:{type:Number,default:0},minCollapsedNum:{type:Number,default:0},multiple:Boolean,option:{type:Function},options:{type:Array,default:function(){return[]}},panelBottomContent:{type:[String,Function]},panelTopContent:{type:[String,Function]},placeholder:{type:String,default:void 0},popupProps:{type:Object},popupVisible:Boolean,prefixIcon:{type:Function},readonly:{type:Boolean,default:void 0},reserveKeyword:Boolean,selectInputProps:{type:Object},showAllLevels:{type:Boolean,default:!0},size:{type:String,default:"medium",validator:function(e){return!e||["large","medium","small"].includes(e)}},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},suffix:{type:[String,Function]},suffixIcon:{type:Function},tagInputProps:{type:Object},tagProps:{type:Object},tips:{type:[String,Function]},trigger:{type:String,default:"click",validator:function(e){return!e||["click","hover"].includes(e)}},value:{type:[String,Number,Array],default:void 0},modelValue:{type:[String,Number,Array],default:void 0},defaultValue:{type:[String,Number,Array],default:function(){return[]}},valueDisplay:{type:[String,Function]},valueMode:{type:String,default:"onlyLeaf",validator:function(e){return!e||["onlyLeaf","parentFirst","all"].includes(e)}},valueType:{type:String,default:"single",validator:function(e){return!e||["single","full"].includes(e)}},onBlur:Function,onChange:Function,onFocus:Function,onPopupVisibleChange:Function,onRemove:Function},JO=t.defineComponent({name:"TCascaderSubPanel",props:{option:GO.option,empty:GO.empty,trigger:GO.trigger,onChange:GO.onChange,loading:GO.loading,loadingText:GO.loadingText,cascaderContext:{type:Object}},setup:function(e){var n=ti(),r=Qa("cascader"),o=Ga("cascader").globalConfig,a=t.computed((function(){return KO(e.cascaderContext.treeNodes)})),l=function(t,n){!function(e,t,n,r){var o=r.checkStrictly,a=r.multiple,l=r.treeStore,i=r.setVisible,u=r.setValue,c=r.setTreeNodes,s=r.setExpend,d=r.value,v=r.max,f=r.valueType;if(!(n.disabled||a&&d.length>=v&&0!==v)){if(e===t){var p=n.setExpanded(!0);l.refreshNodes(),l.replaceExpanded(p),c(l.getNodes().filter((function(e){return e.visible}))),a&&s(p)}if(!a&&(n.isLeaf()||o)&&"click"===t){l.resetChecked();var m=Ha(n.setChecked(!n.checked),1)[0];u("single"===f?m:n.getPath().map((function(e){return e.value})),"check",n.getModel()),o&&"hover"!==e||i(!1,{})}}}(e.trigger,n,t,e.cascaderContext)},i=function(r,o){var a=r.data.content?$l(r.data.content(t.h)):n("option",{params:{item:r.data,index:o}});return t.createVNode(XO,{key:r.value,node:r,optionChild:a,cascaderContext:e.cascaderContext,onClick:function(){l(r,"click")},onMouseenter:function(){l(r,"hover")},onChange:function(){!function(e,t){var n=t.disabled,r=t.max,o=t.inputVal,a=t.multiple,l=t.setVisible,i=t.setValue,u=t.treeNodes,c=t.treeStore,s=t.valueType;if(e&&!n&&!e.disabled){var d=e.setChecked(!e.isChecked());if(Ho(r)&&r<0&&console.warn("TDesign Warn:","max should > 0"),!(d.length>r&&Ho(r)&&r>0)){if(0===d.length){var v=c.getExpanded();setTimeout((function(){c.replaceExpanded(v),c.refreshNodes()}),0)}a||l(!1,{});var f=u.every((function(e){return d.indexOf(e.value)>-1}));o&&f&&l(!1,{}),i("single"===s?d:d.map((function(e){return c.getNode(e).getPath().map((function(e){return e.value}))})),e.checked?"uncheck":"check",e.getModel())}}}(r,e.cascaderContext)}},null)},u=function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return t.createVNode("ul",{class:["".concat(r.value,"__menu"),"narrow-scrollbar",s(s({},"".concat(r.value,"__menu--segment"),o),"".concat(r.value,"__menu--filter"),n)],key:"".concat(r,"__menu").concat(a)},[e.map((function(e){return i(e,a)}))])};return function(){var l,i,c,d;return l=e.loading?n("loadingText",t.createVNode("div",{class:"".concat(r.value,"__panel--empty")},[o.value.loadingText])):a.value.length?(i=e.cascaderContext,c=i.inputVal,d=i.treeNodes,c?u(d,!0):a.value.map((function(e,t){return u(e,!1,t!==a.value.length-1,t)}))):n("empty",t.createVNode("div",{class:"".concat(r.value,"__panel--empty")},[o.value.empty])),t.createVNode("div",{class:["".concat(r.value,"__panel"),s({},"".concat(r.value,"--normal"),a.value.length&&!e.loading)]},[l])}}});var QO="__tdesign_tree-node__",eC=function(){return dg((function e(t){cg(this,e),s(this,QO,void 0),this[QO]=t}),[{key:"value",get:function(){return this[QO].value}},{key:"label",get:function(){return this[QO].label}},{key:"data",get:function(){return this[QO].data}},{key:"actived",get:function(){return this[QO].actived}},{key:"expanded",get:function(){return this[QO].expanded}},{key:"checked",get:function(){return this[QO].checked}},{key:"indeterminate",get:function(){return this[QO].indeterminate}},{key:"loading",get:function(){return this[QO].loading}},{key:"disabled",get:function(){return this[QO].isDisabled()}},{key:"getLevel",value:function(){return this[QO].getLevel()}},{key:"getIndex",value:function(){return this[QO].getIndex()}},{key:"isFirst",value:function(){return this[QO].isFirst()}},{key:"isLast",value:function(){return this[QO].isLast()}},{key:"isLeaf",value:function(){return this[QO].isLeaf()}},{key:"insertBefore",value:function(e){return this[QO].insertBefore(e)}},{key:"insertAfter",value:function(e){return this[QO].insertAfter(e)}},{key:"appendData",value:function(e){return this[QO].append(e)}},{key:"getPath",value:function(){return this[QO].getPath().map((function(e){return e.getModel()}))}},{key:"getParent",value:function(){var e;return null===(e=this[QO].parent)||void 0===e?void 0:e.getModel()}},{key:"getParents",value:function(){return this[QO].getParents().map((function(e){return e.getModel()}))}},{key:"getRoot",value:function(){var e=this[QO].getRoot();return null==e?void 0:e.getModel()}},{key:"getSiblings",value:function(){return this[QO].getSiblings().map((function(e){return e.getModel()}))}},{key:"getChildren",value:function(e){var t=this[QO],n=!1,r=t.children;if(Array.isArray(r))if(r.length>0)if(e){var o=t.walk();o.shift(),n=o.map((function(e){return e.getModel()}))}else n=r.map((function(e){return e.getModel()}));else n=!1;else Mo(r)&&(n=r);return n}},{key:"remove",value:function(e){var t=this[QO];if(e){var n=t.tree.getNode(e);if(n)n.getParents().map((function(e){return e.value})).indexOf(t.value)<0?Jm("Tree","`".concat(e,"` is not a childNode of current node")):n.remove();else Jm("Tree","`".concat(e,"` is not exist"))}else t.remove()}},{key:"setData",value:function(e){var t=this[QO],n=["value","label","disabled"],r=ta(e,["children"].concat(n)),o=t.tree.config.keys;n.forEach((function(t){var n=St(e,(null==o?void 0:o[t])||t);Uo(n)||(r[t]=n)})),Object.assign(t.data,r),Object.assign(t,r),t.update()}}])}();function tC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function nC(e){for(var t=1;t0?this.append(n):this.children=!1,this.update();case 13:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"set",value:function(e){var t=this,n=this.tree;Object.keys(e).forEach((function(n){(rC.call(oC,n)||"label"===n)&&(t[n]=e[n]),"disabled"===n&&t.setDisabled(e[n])})),n.updated(this)}},{key:"getParent",value:function(){return this.parent}},{key:"getParents",value:function(){for(var e=[],t=this.parent;t;)e.push(t),t=t.parent;return e}},{key:"getSiblings",value:function(){var e=this.parent,t=this.tree,n=[];return e?Array.isArray(e.children)&&(n=e.children):t&&(n=t.children),n}},{key:"getChildren",value:function(e){var t=!1,n=this.children;if(Array.isArray(n))if(n.length>0)if(e){var r=this.walk();r.shift(),t=r.map((function(e){return e.getModel()}))}else t=n.map((function(e){return e.getModel()}));else t=!1;else Mo(n)&&(t=n);return t}},{key:"getRoot",value:function(){var e=this.getParents();return e[e.length-1]||null}},{key:"getIndex",value:function(){return this.getSiblings().indexOf(this)}},{key:"getPath",value:function(){var e=this.getParents();return e.unshift(this),e.reverse()}},{key:"getLevel",value:function(){return this.getParents().length}},{key:"isRest",value:function(){var e=this.tree,t=e.config,n=e.filterMap,r=!1;if(e.hasFilter){var o=this.getModel();r=t.filter(o)}return r?n.set(this.value,!0):n.get(this.value)&&n.delete(this.value),r}},{key:"isVisible",value:function(){var e=this.tree,t=e.nodeMap,n=e.hasFilter,r=e.config.allowFoldNodeOnFilter;if(!t.get(this.value))return!1;if(n&&!r)return this.vmIsLocked||this.vmIsRest;var o=!0,a=this.getParents();return a.length>0&&(o=a.every((function(e){return e.expanded}))),n?o&&(this.vmIsRest||this.vmIsLocked):o}},{key:"isDisabledState",value:function(){var e=this.tree,t=this.parent,n=e.config,r=n.disabled,o=n.disableCheck,a=n.checkStrictly,l=r||!1;return this.disabled&&(l=!0),!a&&null!=t&&t.isDisabledState()&&(l=!0),"boolean"==typeof o?o&&(l=!0):"function"==typeof o&&o(this.getModel())&&(l=!0),l}},{key:"isDisabled",value:function(){var e=this.tree,t=e.hasFilter,n=e.config.allowFoldNodeOnFilter;return!(!t||n||!this.vmIsLocked||this.vmIsRest)||this.isDisabledState()}},{key:"isDraggable",value:function(){var e=!!St(this,"tree.config.draggable");return"boolean"==typeof this.draggable&&(e=this.draggable),e}},{key:"isExpandMutex",value:function(){var e=!!St(this,"tree.config.expandMutex");return"boolean"==typeof this.expandMutex&&(e=this.expandMutex),e}},{key:"isActivable",value:function(){var e=!!St(this,"tree.config.activable");return"boolean"==typeof this.activable&&(e=this.activable),e}},{key:"isCheckable",value:function(){var e=!!St(this,"tree.config.checkable");return"boolean"==typeof this.checkable&&(e=this.checkable),e}},{key:"isActived",value:function(e){var t=this.tree,n=this.value,r=e||t.activedMap;return!(!t.nodeMap.get(n)||!r.get(n))}},{key:"isExpanded",value:function(e){var t=this.tree,n=this.value,r=this.vmIsLocked,o=t.hasFilter,a=t.config.allowFoldNodeOnFilter;if(o&&!a&&r)return!0;var l=e||t.expandedMap;return!(!t.nodeMap.get(n)||!l.get(n))}},{key:"isChecked",value:function(e){var t=this.children,n=this.tree,r=this.value,o=n.config,a=o.checkStrictly,l=o.valueMode;if(!n.nodeMap.get(r))return!1;if(!this.isCheckable())return!1;var i=e||n.checkedMap;if(a)return!!i.get(r);var u=!1;if(i.get(r)&&("onlyLeaf"!==l||this.isLeaf()))return!0;Array.isArray(t)&&t.length>0?u=t.every((function(e){return e.isChecked(i)})):u=this.getParents().some((function(e){return i.get(e.value)}));return u}},{key:"isIndeterminate",value:function(){var e=this.children,t=this.tree,n=this.value,r=t.config.checkStrictly;if(!t.nodeMap.get(n))return!1;if(!this.isCheckable())return!1;if(r)return!1;if(!Array.isArray(e))return!1;var o=null;return e.some((function(e){return!!e.isIndeterminate()||(Ko(o)&&(o=e.isChecked()),o!==e.isChecked())}))}},{key:"isFirst",value:function(){return this.getSiblings()[0]===this}},{key:"isLast",value:function(){var e=this.getSiblings();return e[e.length-1]===this}},{key:"isLeaf",value:function(){var e=!1;return e=Array.isArray(this.children)?this.children.length<=0:!this.children,e}},{key:"lock",value:function(e){this.vmIsLocked=e,this.expanded=this.isExpanded(),this.visible=this.isVisible()}},{key:"afterExpanded",value:function(){this.update(),this.expanded&&!0===this.children&&this.loadChildren(),this.updateChildren()}},{key:"toggleExpanded",value:function(e){return this.setExpanded(!this.isExpanded(),e)}},{key:"setExpanded",value:function(e,t){var n=this.tree,r=n.config,o=nC({directly:!1},t),a=n.expandedMap;if(o.directly||(a=new Map(n.expandedMap)),e){var l=[];l.push(this),r.expandParent&&this.getParents().forEach((function(e){l.push(e)})),l.forEach((function(e){var t,r=!1;e.parent?r=e.parent.isExpandMutex():r=null==n||null===(t=n.config)||void 0===t?void 0:t.expandMutex;r&&e.getSiblings().forEach((function(e){a.delete(e.value),e.update(),e.updateChildren()}));a.set(e.value,!0),e.update(),e.updateChildren()}))}else a.delete(this.value);return o.directly&&this.afterExpanded(),n.getExpanded(a)}},{key:"toggleActived",value:function(e){return this.setActived(!this.isActived(),e)}},{key:"setActived",value:function(e,t){var n=this.tree,r=nC({isAction:!0,directly:!1},t),o=n.config||{},a=n.activedMap;if(r.directly||(a=new Map(n.activedMap)),r.isAction&&this.isDisabledState())return n.getActived(a);if(this.isActivable())if(e){var l=Array.from(a.keys());o.activeMultiple||a.clear(),l.forEach((function(e){var t=n.getNode(e);null==t||t.update()})),a.set(this.value,!0)}else a.delete(this.value);return this.update(),n.getActived(a)}},{key:"hasEnableUnCheckedChild",value:function(){var e=this.children;if(!Array.isArray(e)||e.length<=0)return!1;var t=!1;return e.some((function(e){return!e.isDisabledState()&&(!e.isChecked()&&(e.isIndeterminate()?!!e.hasEnableUnCheckedChild()&&(t=!0,!0):(t=!0,!0)))})),t}},{key:"toggleChecked",value:function(e){if(this.isIndeterminate()){var t=this.hasEnableUnCheckedChild();return this.setChecked(t,e)}return this.setChecked(!this.isChecked(),e)}},{key:"setChecked",value:function(e,t){var n=this.tree,r=n.config||{},o=nC({isAction:!0,directly:!1},t),a=n.checkedMap;if(o.directly||(a=new Map(n.checkedMap)),!this.isCheckable())return n.getChecked(a);if(o.isAction&&this.isDisabledState())return n.getChecked(a);if(e===this.isChecked()&&!(this.isIndeterminate()&&!this.hasEnableUnCheckedChild()))return n.getChecked(a);(e?a.set(this.value,!0):a.delete(this.value),r.checkStrictly)?o.directly&&this.updateChecked():(this.spreadChildrenChecked(e,a,o),this.spreadParentChecked(e,a,o),o.directly&&n.getRelatedNodes([this.value],{reverse:!0}).forEach((function(e){e.updateChecked()})));return n.getChecked(a)}},{key:"spreadParentChecked",value:function(e,t,n){var r=nC({isAction:!0,directly:!1},n);if(this.isCheckable()){var o=this.children;Array.isArray(o)&&o.length>0&&t.delete(this.value);var a=this.parent;a&&a.spreadParentChecked(e,t,r)}}},{key:"spreadChildrenChecked",value:function(e,t,n){var r=nC({isAction:!0,directly:!1},n);if(this.isCheckable()&&(!r.isAction||!this.isDisabledState())){var o=this.children;Array.isArray(o)&&(o.length<=0||(t.delete(this.value),o.forEach((function(n){r.isAction&&n.isDisabledState()||(e?t.set(n.value,!0):t.delete(n.value),n.spreadChildrenChecked(e,t,r))}))))}}},{key:"setDisabled",value:function(e){this.disabled=e,this.update(),this.updateChildren()}},{key:"update",value:function(){this.level=this.getLevel(),this.vmIsFirst=this.isFirst(),this.vmIsLast=this.isLast(),this.vmIsLeaf=this.isLeaf(),this.vmCheckable=this.isCheckable(),this.vmIsRest=this.isRest(),this.actived=this.isActived(),this.expanded=this.isExpanded(),this.visible=this.isVisible(),this.tree.updated(this)}},{key:"updateChecked",value:function(){var e=this.tree,t=this.value,n=e.checkedMap;this.checked=this.isChecked(),this.indeterminate=this.isIndeterminate(),this.checked&&n.set(t,!0),e.updated(this)}},{key:"updateChildren",value:function(){var e=this;this.spreadChildren((function(t){t!==e&&(t.update(),t.updateChecked())}))}},{key:"updateParents",value:function(){var e=this;this.spreadParents((function(t){t!==e&&(t.update(),t.updateChecked())}))}},{key:"updateRelated",value:function(){this.tree.getRelatedNodes([this.value]).forEach((function(e){e.update(),e.updateChecked()}))}},{key:"walk",value:function(){var e=[];return this.spreadChildren((function(t){e.push(t)})),e}},{key:"spreadChildren",value:function(e){e(this);var t=this.children;Array.isArray(t)&&t.length>0&&t.forEach((function(t){null==t||t.spreadChildren(e)}))}},{key:"spreadParents",value:function(e){e(this);var t=this.parent;t&&(null==t||t.spreadParents(e))}},{key:"getModel",value:function(){var e=this.model;return e||(e=new eC(this),this.model=e),e}}]);var t}();function cC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function sC(e){for(var t=1;t>>0,1):n.set(e,[]))},emit:function(e,t){var r=n.get(e);r&&r.slice().map((function(e){e(t)})),(r=n.get("*"))&&r.slice().map((function(n){n(e,t)}))}}}),[{key:"setConfig",value:function(e){var t=this.config,n=!1;Object.keys(e).forEach((function(r){var o=e[r];o!==t[r]&&(n=!0,t[r]=o)})),this.hasFilter=H(t.filter),n&&this.refreshState()}},{key:"getChildren",value:function(){return this.children}},{key:"getNode",value:function(e){var t=null;return Do(e)||Ho(e)?t=this.nodeMap.get(e):e instanceof uC&&(t=this.nodeMap.get(e.value)),t||(t=null),t}},{key:"getIndex",value:function(e){return this.nodes.indexOf(e)}},{key:"getParent",value:function(e){var t=null,n=this.getNode(e);return n&&(t=n.getParent()),t}},{key:"getParents",value:function(e){var t=this.getNode(e),n=[];return t&&(n=t.getParents()),n}},{key:"getNodeIndex",value:function(e){var t=this.getNode(e),n=-1;return t&&(n=t.getIndex()),n}},{key:"getNodes",value:function(e,t){var n=[],r="";if(Do(e)||Ho(e)?r=e:e instanceof uC&&(r=e.value),r||0===r){var o=this.getNode(r);o&&(n=o.walk())}else n=this.nodes.slice(0);if(t){var a=sC({filter:null,level:1/0},t);Ho(a.level)&&a.level!==1/0&&(n=n.filter((function(e){return e.level<=a.level}))),H(a.filter)&&(n=n.filter((function(e){var t=e.getModel();return a.filter(t)}))),Lt(a.props)&&(n=n.filter((function(e){var t=Object.keys(a.props).every((function(t){return e[t]===a.props[t]}));return t})))}return n}},{key:"append",value:function(e){var t=this;e.forEach((function(e){var n=new uC(t,e);t.children.push(n)})),this.reflow()}},{key:"reload",value:function(e){this.removeAll(),this.append(e)}},{key:"parseNodeData",value:function(e,t){var n="",r=null,o=null;return Do(e)||Ho(e)?(n=e,r=this.getNode(n),o=t):e instanceof uC&&t?(r=e,o=t):o=e,{node:r,data:o}}},{key:"appendNodes",value:function(e,t){var n=this.parseNodeData(e,t);n.data&&(n.node?(n.data instanceof uC?n.data.appendTo(this,n.node):j(n.data)?n.node.append(n.data):n.node.append([n.data]),n.node.updateRelated()):n.data instanceof uC?n.data.appendTo(this):Array.isArray(n.data)?this.append(n.data):this.append([n.data]))}},{key:"insertBefore",value:function(e,t){var n=this.getNode(e);n&&n.insertBefore(t)}},{key:"insertAfter",value:function(e,t){var n=this.getNode(e);n&&n.insertAfter(t)}},{key:"refreshNodes",value:function(){var e=this.children,t=this.nodes;t.length=0,e.forEach((function(e){var n=e.walk();Array.prototype.push.apply(t,n)}))}},{key:"reflow",value:function(e){this.shouldReflow=!0,this.updated(e)}},{key:"updated",value:function(e){var t,n,r=this,o=this.updatedMap;(e?o.set(e[iC],"changed"):this.getNodes().forEach((function(e){o.set(e[iC],"changed")})),this.updateTick)||(this.updateTick=(t=function(){r.updateTick=null,r.shouldReflow&&(r.refreshNodes(),r.emit("reflow")),r.lockFilterPathNodes();var e="t".concat((new Date).getTime()),t=Array.from(o.keys()).map((function(t){return o.set(t,e),r.privateMap.get(t)}));r.emit("update",{nodes:t,map:o}),r.shouldReflow=!1,o.clear()},(n=Promise.resolve()).then(t),n))}},{key:"getActived",value:function(e){var t=e||this.activedMap;return Array.from(t.keys())}},{key:"getActivedNodes",value:function(e){var t=this.getNodes(e);return t=t.filter((function(e){return e.isActived()}))}},{key:"replaceActived",value:function(e){this.resetActived(),this.setActived(e)}},{key:"setActived",value:function(e){var t=this,n=this.config.activeMultiple,r=e.slice(0);n||(r.length=1),r.forEach((function(e){t.activedMap.set(e,!0);var n=t.getNode(e);n&&n.update()}))}},{key:"resetActived",value:function(){var e=this.getActived();this.activedMap.clear(),this.getRelatedNodes(e).forEach((function(e){e.update()}))}},{key:"getExpanded",value:function(e){var t=e||this.expandedMap;return Array.from(t.keys())}},{key:"replaceExpanded",value:function(e){var t=this.getExpanded(),n=Po(e,t),r=Po(t,e);this.setExpandedDirectly(r,!1),this.updateExpanded(r),this.setExpanded(n)}},{key:"setExpanded",value:function(e){this.setExpandedDirectly(e),this.updateExpanded(e)}},{key:"setExpandedDirectly",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.forEach((function(e){n?t.expandedMap.set(e,!0):t.expandedMap.delete(e);var r=t.getNode(e);r&&r.afterExpanded()}))}},{key:"resetExpanded",value:function(){var e=this.getExpanded();this.expandedMap.clear(),this.updateExpanded(e)}},{key:"updateExpanded",value:function(e){this.getRelatedNodes(e,{withParents:!1}).forEach((function(e){e.update()}))}},{key:"getChecked",value:function(e){var t=this.nodeMap,n=this.config,r=n.valueMode,o=n.checkStrictly,a=[],l=e||this.checkedMap;return t.forEach((function(e){e.isChecked(l)&&("parentFirst"!==r||o?("onlyLeaf"!==r||o||e.isLeaf())&&a.push(e.value):e.parent&&e.parent.isChecked(l)||a.push(e.value))})),a}},{key:"getCheckedNodes",value:function(e){var t=this.getNodes(e);return t=t.filter((function(e){return e.isChecked()}))}},{key:"replaceChecked",value:function(e){this.resetChecked(),this.setChecked(e)}},{key:"setChecked",value:function(e){var t=this,n=this.config,r=n.checkStrictly;if(n.checkable&&(e.forEach((function(e){var n=t.getNode(e);n&&(r?(t.checkedMap.set(e,!0),n.updateChecked()):n.walk().forEach((function(e){t.checkedMap.set(e.value,!0)})))})),!r)){var o=this.getChecked();this.getRelatedNodes(o).forEach((function(e){e.updateChecked()}))}}},{key:"resetChecked",value:function(){var e=this.getChecked(),t=this.getRelatedNodes(e);this.checkedMap.clear(),t.forEach((function(e){e.updateChecked()}))}},{key:"refreshState",value:function(){this.nodeMap.forEach((function(e){e.update()}))}},{key:"updateAll",value:function(){this.nodeMap.forEach((function(e){e.update(),e.updateChecked()}))}},{key:"remove",value:function(e){var t=this.getNode(e);t&&t.remove()}},{key:"removeAll",value:function(){this.expandedMap.clear(),this.checkedMap.clear(),this.activedMap.clear(),this.filterMap.clear(),this.nodeMap.clear(),this.privateMap.clear(),this.updatedMap.clear(),this.nodes=[],this.children=[],this.reflow()}},{key:"getRelatedNodes",value:function(e,t){var n=this,r=sC({reverse:!1,withParents:!0},t),o=new Map;e.forEach((function(e){if(!o.get(e)){var t=n.getNode(e);if(t){var a=t.getParents().reverse(),l=t.walk();(r.withParents?a.concat(l):l).forEach((function(e){o.set(e.value,e)}))}}}));var a=Array.from(o.values());return r.reverse&&(a=a.reverse()),a}},{key:"emit",value:function(e,t){var n=this.config,r=this.emitter,o=n[Bn("on-".concat(e))];H(o)&&o(t),r.emit(e,t)}},{key:"lockFilterPathNodes",value:function(){var e=this.config,t=this.getNodes();this.prevFilter&&t.forEach((function(e){e.vmIsLocked&&e.lock(!1)}));var n=e.filter;n&&H(n)&&(this.prevFilter=e.filter,t.reverse().forEach((function(e){var t=e.getParent();t&&(e.vmIsRest||e.vmIsLocked)&&(t.vmIsLocked||t.lock(!0))})))}}])}();function vC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fC(e){for(var t=1;t-1})):t.getNodes().filter((function(e){return e.visible})))}}(t.inputVal,t.treeStore,t.setTreeNodes,e.filter)},y=function(){var e=p.value,t=e.value,n=e.treeStore;!function(e,t,n){var r=YO(t);if(e){if(j(r)&&0===n.length){var o=new Map,a=Ha(r,1)[0];if(!$O(a)){o.set(a,!0);var l=e.getNode(a);if(!l)return void e.refreshNodes();l.getParents().forEach((function(e){o.set(e.value,!0)}));var i=Array.from(o.keys());e.replaceExpanded(i)}}e.getExpanded()&&n.length&&e.replaceExpanded(n),e.refreshNodes()}}(n,t,m.expend),n.replaceChecked(YO(t))};t.watch((function(){return e.options}),(function(){var n=e.options,r=e.keys,o=void 0===r?{}:r,a=e.checkStrictly,l=e.lazy,i=e.load,u=e.valueMode,c=m.treeStore;if(n.length||c){if(c)c.reload(n),c.refreshNodes();else{var s=new dC({keys:fC(fC({},o),{},{children:Do(o.children)?o.children:"children"}),checkable:!0,expandMutex:!0,expandParent:!0,lazy:l,load:i,valueMode:u,checkStrictly:a,onLoad:function(){t.nextTick((function(){s.refreshNodes(),g()}))}});s.append(n),m.treeStore=s}y(),g()}}),{immediate:!0,deep:!0}),t.watch((function(){var t=e.checkStrictly,n=e.lazy,r=e.load,o=e.valueMode;return JSON.stringify({valueMode:o,checkStrictly:t,lazy:n,load:r})}),(function(){var t=m.treeStore;if(t){var r=e.checkStrictly,o=e.lazy,a=e.load,l=e.valueMode,i={checkStrictly:r,disabled:n,load:a,lazy:o,valueMode:l};t.setConfig(i)}}),{immediate:!0}),t.watch(u,(function(){var e=p.value,t=e.setValue,n=e.multiple,r=e.valueType;!function(e,t){var n=t.multiple,r=t.showAllLevels,o=t.valueType;return n&&!j(e)||!n&&j(e)&&"single"===o&&!r}(u.value,p.value)?m.scopeVal=n?[]:"":t(n?[]:"","invalid-value"),$O(u)||(m.scopeVal=function(e,t,n){if("single"===t)return e;var r=e;return n?r.map((function(e){return e.at(-1)})):r.at(-1)}(u.value,r,n)),m.treeStore&&(y(),g())}),{immediate:!0}),t.watch((function(){return d.value&&h.value}),(function(e){var t=p.value.setInputVal;e&&t("")})),t.watch((function(){return m.inputVal}),(function(){g()}));return{cascaderContext:p,isFilterable:h,innerValue:u,getCascaderItems:function(e){var t=[];return e.forEach((function(e){var n,r=null===(n=m.treeStore)||void 0===n?void 0:n.getNodes(e);r&&r[0]&&t.push(r[0].data)})),t}}};function mC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function hC(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"").replace(/\W?Y{2,4}|\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g,"").trim()}function kC(e,t,n,r){if(""===e||null===e)return Ya();var o=e;if(/[w|W]/g.test(t)){Do(o)||(o=Ya(o).locale(r||"zh-cn").format(t));var a=o.split(/[-/.\s]/)[0],l=o.split(/[-/.\s]/)[1],i=t.split(/[-/.\s]/)[1],u=Ya(a,"YYYY").locale(r||"zh-cn").startOf("year");(u.day()>4||0===u.day())&&(u=u.add(1,"week"));for(var c=Ya(a,"YYYY").locale(r||"zh-cn").isoWeeksInYear(),s=0;s<=c;s+=1){var d=u.add(s,"week");if("start"===n&&(d=d.subtract(5,"day")),d.format(i)===l)return d}}if(/Q/g.test(t)){Do(o)||(o=Ya(o).locale(r||"zh-cn").format(t));for(var v=o.split(/[-/.\s]/)[0],f=o.split(/[-/.\s]/)[1],p=t.split(/[-/.\s]/)[1],m=Ya(v,"YYYY").startOf("year"),h=0;h<4;h+=1){var g=m.add(h,"quarter");if(g.format(p)===f)return g}}var y=Ya(o,t).isValid()?Ya(o,t):Ya(o);return y.isValid()?y:(Qm("DatePicker","Check whether the format\u3001value format is valid.\n value: '".concat(e,"', format: '").concat(t,"'")),Ya())}function NC(e,t){return Array.isArray(e)?e.every((function(e){return""===e||(Ya(e,t).isValid()||Ya(e).isValid())})):""===e||(Ya(e,t).isValid()||Ya(e).isValid())}function _C(e,t){var n,r=t.format,o=t.targetFormat,a=t.dayjsLocale,l=void 0===a?"zh-cn":a,i=t.autoSwap;return n=Array.isArray(e)?function(e){var t=e.newDate,n=e.format,r=e.dayjsLocale,o=e.targetFormat,a=e.autoSwap;if(!t||!Array.isArray(t))return[];var l=t.map((function(e){return e&&kC(e,n).locale(r)}));return a&&l[0]&&l[1]&&l[0].toDate().getTime()>l[1].toDate().getTime()&&(l=[l[1],l[0]]),l.some((function(e){return e&&!e.isValid()}))?(Qm("DatePicker","Check whether the value\u3001format\u3001valueType format is valid.\nformat: '".concat(n,"' value: '").concat(t,"' valueType: '").concat(o,"'")),[]):"time-stamp"===o?l.map((function(e){return e&&e.toDate().getTime()})):"Date"===o?l.map((function(e){return e&&e.toDate()})):l.map((function(e){return e&&e.format(o||n)}))}({newDate:e,format:r,dayjsLocale:l,targetFormat:o,autoSwap:i}):function(e){var t=e.newDate,n=e.format,r=e.targetFormat,o=e.dayjsLocale;if(!t)return"";var a=kC(t,n).locale(o);return a.isValid()?"time-stamp"===r?a.toDate().getTime():"Date"===r?a.toDate():a.format(r||n):(Qm("DatePicker","Check whether the format\u3001value format is valid.\nformat: '".concat(n,"' value: '").concat(t,"'")),"")}({newDate:e,format:r,dayjsLocale:l,targetFormat:o}),n}function VC(e,t){if(e&&t){var n=e.split(":"),r=t.split(":");return n.slice(0,r.length).join(":")}return e}function DC(e,t,n,r){var o,a=Array.isArray(e)?e:[e];return r=Array.isArray(r)?r:[r,r],a=a.map((function(e,o){return e?Ya(e,"string"==typeof e?t:void 0).format(n):VC(r[o],n)})),a=a.length?a:r.map((function(e){return VC(e,n)})),Array.isArray(e)?a:null===(o=a)||void 0===o?void 0:o[0]}function EC(e){var t=e.mode,n=void 0===t?"date":t,r=e.format,o=e.valueType,a=e.enableTimePicker;return"year"===n?{format:r||"YYYY",valueType:o||r||"YYYY",timeFormat:jC}:"month"===n?{format:r||"YYYY-MM",valueType:o||r||"YYYY-MM",timeFormat:jC}:"quarter"===n?{format:r||"YYYY-[Q]Q",valueType:o||r||"YYYY-[Q]Q",timeFormat:jC}:"week"===n?{format:r||"gggg-wo",valueType:o||r||"gggg-wo",timeFormat:jC}:"date"===n?{format:r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),valueType:o||r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""),timeFormat:SC(r||"YYYY-MM-DD".concat(a?" HH:mm:ss":""))||jC}:(Qm("DatePicker","Invalid mode: ".concat(n)),{})}function FC(e){var t=e.value,n=e.mode,r=void 0===n?"date":n,o=e.format,a=e.timeFormat,l=void 0===a?"HH:mm:ss":a,i=e.enableTimePicker,u={year:[Ya().year(),Ya().year()],month:[Ya().month(),Ya().month()],time:[Ya().format(l),Ya().format(l)]};return"year"===r?u.year[1]+=10:"month"===r||"quarter"===r?u.year[1]+=1:"date"!==r&&"week"!==r||i||(11===u.month[0]?(u.year[1]+=1,u.month[1]=0):u.month[1]+=1),t&&Array.isArray(t)&&t.length?{year:t.map((function(e){return kC(e,o).year()})),month:t.map((function(e){return kC(e,o).month()})),time:t.map((function(e){return kC(e,o).format(l)}))}:u}function TC(e){var n,r,o,a,l=t.toRefs(e),i=Ha(qm(l.value,l.modelValue,e.defaultValue,e.onChange),2),u=i[0],c=i[1],s=t.computed((function(){return EC({mode:e.mode,format:e.format,enableTimePicker:!e.multiple&&e.enableTimePicker})}));e.enableTimePicker&&(SC(s.value.format)||console.error("format: ".concat(s.value.format," \u4e0d\u89c4\u8303\uff0c\u5305\u542b\u65f6\u95f4\u9009\u62e9\u5fc5\u987b\u8981\u6709\u65f6\u95f4\u683c\u5f0f\u5316 HH:mm:ss")));var d=t.ref(DC(e.multiple?null===(n=u.value)||void 0===n?void 0:n[0]:u.value,s.value.format,s.value.timeFormat,e.defaultTime)),v=t.ref(kC(e.multiple?null===(r=u.value)||void 0===r?void 0:r[0]:u.value,s.value.format).month()),f=t.ref(kC(e.multiple?null===(o=u.value)||void 0===o?void 0:o[0]:u.value,s.value.format).year()),p=t.ref(_C(e.multiple?null===(a=u.value)||void 0===a?void 0:a[0]:u.value,{format:s.value.format}));return t.watchEffect((function(){u.value?NC(u.value,s.value.format)&&(p.value=_C(u.value,{format:s.value.format}),d.value=DC(u.value,s.value.format,s.value.timeFormat,e.defaultTime)):p.value=""})),{year:f,month:v,value:u,time:d,cacheValue:p,onChange:c}}function IC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function MC(e){for(var t=1;t25){var a=o(this).startOf(n).add(1,n).date(r),l=o(this).endOf(t);if(a.isBefore(l))return 1}var i=o(this).startOf(n).date(r).startOf(t).subtract(1,"millisecond"),u=this.diff(i,t,!0);return u<0?o(this).startOf("week").week():Math.ceil(u)},a.weeks=function(e){return void 0===e&&(e=null),this.week(e)}})}(RC);var zC=RC.exports,HC={exports:{}};!function(e){e.exports=function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}(HC);var WC=HC.exports,KC={exports:{}};!function(e){e.exports=function(e,t,n){var r=t.prototype,o=function(e){return e&&(e.indexOf?e:e.s)},a=function(e,t,n,r,a){var l=e.name?e:e.$locale(),i=o(l[t]),u=o(l[n]),c=i||u.map((function(e){return e.slice(0,r)}));if(!a)return c;var s=l.weekStart;return c.map((function(e,t){return c[(t+(s||0))%7]}))},l=function(){return n.Ls[n.locale()]},i=function(e,t){return e.formats[t]||function(e){return e.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}(e.formats[t.toUpperCase()])},u=function(){var e=this;return{months:function(t){return t?t.format("MMMM"):a(e,"months")},monthsShort:function(t){return t?t.format("MMM"):a(e,"monthsShort","months",3)},firstDayOfWeek:function(){return e.$locale().weekStart||0},weekdays:function(t){return t?t.format("dddd"):a(e,"weekdays")},weekdaysMin:function(t){return t?t.format("dd"):a(e,"weekdaysMin","weekdays",2)},weekdaysShort:function(t){return t?t.format("ddd"):a(e,"weekdaysShort","weekdays",3)},longDateFormat:function(t){return i(e.$locale(),t)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return u.bind(this)()},n.localeData=function(){var e=l();return{firstDayOfWeek:function(){return e.weekStart||0},weekdays:function(){return n.weekdays()},weekdaysShort:function(){return n.weekdaysShort()},weekdaysMin:function(){return n.weekdaysMin()},months:function(){return n.months()},monthsShort:function(){return n.monthsShort()},longDateFormat:function(t){return i(e,t)},meridiem:e.meridiem,ordinal:e.ordinal}},n.months=function(){return a(l(),"months")},n.monthsShort=function(){return a(l(),"monthsShort","months",3)},n.weekdays=function(e){return a(l(),"weekdays",null,null,e)},n.weekdaysShort=function(e){return a(l(),"weekdaysShort","weekdays",3,e)},n.weekdaysMin=function(e){return a(l(),"weekdaysMin","weekdays",2,e)}}}(KC);var UC=KC.exports,YC={exports:{}};!function(e){var t,n;e.exports=(t="month",n="quarter",function(e,r){var o=r.prototype;o.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var a=o.add;o.add=function(e,r){return e=Number(e),this.$utils().p(r)===n?this.add(3*e,t):a.bind(this)(e,r)};var l=o.startOf;o.startOf=function(e,r){var o=this.$utils(),a=!!o.u(r)||r;if(o.p(e)===n){var i=this.quarter()-1;return a?this.month(3*i).startOf(t).startOf("day"):this.month(3*i+2).endOf(t).endOf("day")}return l.bind(this)(e,r)}})}(YC);var $C=YC.exports,ZC={exports:{}};!function(e){e.exports=function(e,t){var n=t.prototype,r=n.format;n.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return r.bind(this)(e);var o=this.$utils(),a=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return n.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return n.ordinal(t.week(),"W");case"w":case"ww":return o.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return o.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return o.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return"["+t.offsetName()+"]";case"zzz":return"["+t.offsetName("long")+"]";default:return e}}));return r.bind(this)(a)}}}(ZC);var qC=ZC.exports,XC={exports:{}};!function(e){e.exports=function(){var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d\d/,r=/\d\d?/,o=/\d*[^-_:/,()\s\d]+/,a={},l=function(e){return(e=+e)+(e>68?1900:2e3)},i=function(e){return function(t){this[e]=+t}},u=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],c=function(e){var t=a[e];return t&&(t.indexOf?t:t.s.concat(t.f))},s=function(e,t){var n,r=a.meridiem;if(r){for(var o=1;o<=24;o+=1)if(e.indexOf(r(o,0,t))>-1){n=o>12;break}}else n=e===(t?"pm":"PM");return n},d={A:[o,function(e){this.afternoon=s(e,!1)}],a:[o,function(e){this.afternoon=s(e,!0)}],S:[/\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[r,i("seconds")],ss:[r,i("seconds")],m:[r,i("minutes")],mm:[r,i("minutes")],H:[r,i("hours")],h:[r,i("hours")],HH:[r,i("hours")],hh:[r,i("hours")],D:[r,i("day")],DD:[n,i("day")],Do:[o,function(e){var t=a.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,"")===e&&(this.day=r)}],M:[r,i("month")],MM:[n,i("month")],MMM:[o,function(e){var t=c("months"),n=(c("monthsShort")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=c("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,i("year")],YY:[n,function(e){this.year=l(e)}],YYYY:[/\d{4}/,i("year")],Z:u,ZZ:u};function v(n){var r,o;r=n,o=a&&a.formats;for(var l=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var a=r&&r.toUpperCase();return n||o[r]||e[r]||o[a].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),i=l.length,u=0;u-1)return new Date(("X"===t?1e3:1)*e);var r=v(t)(e),o=r.year,a=r.month,l=r.day,i=r.hours,u=r.minutes,c=r.seconds,s=r.milliseconds,d=r.zone,f=new Date,p=l||(o||a?1:f.getDate()),m=o||f.getFullYear(),h=0;o&&!a||(h=a>0?a-1:f.getMonth());var g=i||0,y=u||0,b=c||0,w=s||0;return d?new Date(Date.UTC(m,h,p,g,y,b,w+60*d.offset*1e3)):n?new Date(Date.UTC(m,h,p,g,y,b,w)):new Date(m,h,p,g,y,b,w)}catch(e){return new Date("")}}(t,i,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),s&&t!=this.format(i)&&(this.$d=new Date("")),a={}}else if(i instanceof Array)for(var f=i.length,p=1;p<=f;p+=1){l[1]=i[p-1];var m=n.apply(this,l);if(m.isValid()){this.$d=m.$d,this.$L=m.$L,this.init();break}p===f&&(this.$d=new Date(""))}else o.call(this,e)}}}()}(XC);var GC=XC.exports;function JC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function QC(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:"zh-cn";return rx(e,t)&&Ya(e).locale(n).week()===Ya(t).locale(n).week()}function ax(e,t){return rx(e,t)&&e.getDate()===t.getDate()}function lx(e,t){var n=e.getTime(),r=t.getTime();return nr?1:0}function ix(e,t){var n,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"zh-cn";return{isSameYear:tx,isSameQuarter:nx,isSameMonth:rx,isSameWeek:ox,isSameDate:ax}["isSame".concat((n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"date",n?n[0].toUpperCase().concat(n.substring(1,n.length)):n))](e,t,r)}function ux(e,t,n){return t&&-1===lx(e,t)||n&&1===lx(e,n)}function cx(){var e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0)}function sx(e,t){return Ya(e).subtract(t,"month").toDate()}function dx(e,t){return Ya(e).add(t,"month").toDate()}function vx(e,t){for(var n=e.year,r=e.month,o=t.firstDayOfWeek,a=t.showWeekOfYear,l=void 0!==a&&a,i=t.disableDate,u=void 0===i?function(){return!1}:i,c=t.minDate,s=t.maxDate,d=t.dayjsLocale,v=void 0===d?"zh-cn":d,f=t.cancelRangeSelectLimit,p=void 0!==f&&f,m=function(e){var t=e.year,n=e.month;return new Date(t,n,1)}({year:n,month:r}),h=function(e){var t=e.year,n=e.month;return new Date(t,n,ex({year:t,month:n}))}({year:n,month:r}),g=ex({year:n,month:r}),y=[],b=1,w=cx();b<=g;b++){var O=new Date(n,r,b);y.push({text:b,active:!1,value:O,disabled:H(u)&&u(O)||!p&&ux(O,c,s),now:ix(w,O),firstDayOfMonth:1===b,lastDayOfMonth:b===g,type:"current-month",dayjsObj:Ya(O).locale(v)})}if(m.getDay()!==o)for(m.setDate(0);y.unshift({text:m.getDate().toString(),active:!1,value:new Date(m),disabled:H(u)&&u(m)||!p&&ux(m,c,s),additional:!0,type:"prev-month",dayjsObj:Ya(m).locale(v)}),m.setDate(m.getDate()-1),m.getDay()!==Math.abs(o+6)%7;);for(;y.length<42;)h.setDate(h.getDate()+1),y.push({text:h.getDate(),active:!1,value:new Date(h),disabled:H(u)&&u(h)||!p&&ux(h,c,s),additional:!0,type:"next-month",dayjsObj:Ya(h).locale(v)});var C=zn(y,7);return l&&C.forEach((function(e){e.unshift(QC(QC({},e[0]),{},{active:!1,value:e[0].value,text:Ya(e[0].value).locale(v).week(),dayjsObj:Ya(e[0].value).locale(v)}))})),C}function fx(e,t){var n=AC({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(t),t)),r=n.start,o=n.end,a=n.hoverStart,l=n.hoverEnd,i=n.type,u=void 0===i?"date":i,c=n.isRange,s=void 0!==c&&c,d=n.value,v=n.multiple,f=void 0!==v&&v;return"week"===u?e:s?e.map((function(e){return e.map((function(e){var t=e,n=e.value,i=r&&ix(r,n,u),c=a&&ix(a,n,u),s=o&&ix(o,n,u),d=l&&ix(l,n,u);return t.active=(i||s)&&!t.additional,r&&o&&(t.highlight=Ya(n).isBetween(r,o,u,"[]")&&!t.additional,t.startOfRange=i,t.endOfRange=s),a&&l&&(t.hoverHighlight=Ya(n).isBetween(a,l,u,"[]")&&!t.additional,t.hoverStartOfRange=c,t.hoverEndOfRange=d),t}))})):e.map((function(e){return e.map((function(e){var t,n=e;f?n.active=null==d||null===(t=d.some)||void 0===t?void 0:t.call(d,(function(e){return ix(Ya(e).toDate(),n.value,u)&&!n.additional})):n.active=r&&ix(e.value,r,u)&&!n.additional;return n}))}))}function px(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.match(/[ap]m/i)||[""],n=Ha((e.match(/\d{1,2}(:\d{1,2})?(:\d{1,2})?(:\d{1,3})?/)||["0:0:0:0"])[0].split(":"),4),r=n[0],o=void 0===r?0:r,a=n[1],l=void 0===a?0:a,i=n[2],u=void 0===i?0:i,c=n[3];return{hours:+o,minutes:+l,seconds:+u,milliseconds:+(void 0===c?0:c),meridiem:t[0]}}Ya.extend(zC),Ya.extend(WC),Ya.extend(UC),Ya.extend($C),Ya.extend(qC),Ya.extend(GC),Ya.extend(LC);var mx={allowInput:Boolean,borderless:Boolean,clearable:Boolean,defaultTime:{type:String,default:"00:00:00"},disableDate:{type:[Object,Array,Function]},disabled:{type:Boolean,default:void 0},enableTimePicker:Boolean,firstDayOfWeek:{type:Number,validator:function(e){return!e||[1,2,3,4,5,6,7].includes(e)}},format:{type:String,default:void 0},inputProps:{type:Object},label:{type:[String,Function]},mode:{type:String,default:"date",validator:function(e){return!e||["year","quarter","month","week","date"].includes(e)}},multiple:Boolean,needConfirm:{type:Boolean,default:!0},placeholder:{type:[String,Array],default:void 0},popupProps:{type:Object},prefixIcon:{type:Function},presets:{type:Object},presetsPlacement:{type:String,default:"bottom",validator:function(e){return!e||["left","top","right","bottom"].includes(e)}},selectInputProps:{type:Object},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},suffixIcon:{type:Function},timePickerProps:{type:Object},tips:{type:[String,Function]},value:{type:[String,Number,Array,Date],default:void 0},modelValue:{type:[String,Number,Array,Date],default:void 0},defaultValue:{type:[String,Number,Array,Date],default:""},valueDisplay:{type:[String,Function]},valueType:{type:String,default:""},onBlur:Function,onChange:Function,onConfirm:Function,onFocus:Function,onPick:Function,onPresetClick:Function},hx=t.defineComponent({name:"TDatePickerHeader",props:{mode:{type:String,default:"date"},year:Number,month:Number,onMonthChange:Function,onYearChange:Function,onJumperClick:Function},setup:function(e){var n=Ga("classPrefix").classPrefix,r=Qa("date-picker__header"),o=Ga("datePicker").globalConfig,a=t.ref(s(e.year)),l=t.computed((function(){return"date"===e.mode||"week"===e.mode})),u=t.computed((function(){var t;return(null===(t=a.value.find((function(t){return t.value-e.year<=9&&t.value-e.year>=0})))||void 0===t?void 0:t.value)||e.year})),c=t.computed((function(){return o.value.months.map((function(e,t){return{label:e,value:t}}))}));function s(t){var n=[];if("year"===e.mode)for(var r=t%10,o=t-r+100,a=t-r-100;a<=o;a+=10)n.push({label:"".concat(a," - ").concat(a+9),value:a+9});else{n.push({label:"".concat(t),value:t});for(var l=1;l<=10;l++)n.push({label:"".concat(t+l),value:t+l}),n.unshift({label:"".concat(t-l),value:t-l})}return n}function d(t,n){var r=[];if("year"===e.mode){var o=t%10;if("add"===n)for(var a=t-o+10;a<=t-o+50;a+=10)r.push({label:"".concat(a," - ").concat(a+9),value:a});else for(var l=t-o-1;l>t-o-50;l-=10)r.unshift({label:"".concat(l-9," - ").concat(l),value:l})}else if("add"===n)for(var i=t+1;i<=t+10;i++)r.push({label:"".concat(i),value:i});else for(var u=t-1;u>t-10;u--)r.unshift({label:"".concat(u),value:u});return r}var v=t.computed((function(){return{year:{prev:o.value.preDecade,current:o.value.now,next:o.value.nextDecade},month:{prev:o.value.preYear,current:o.value.now,next:o.value.nextYear},date:{prev:o.value.preMonth,current:o.value.now,next:o.value.nextMonth},quarter:{prev:o.value.preYear,current:o.value.now,next:o.value.nextYear},week:{prev:o.value.preMonth,current:o.value.now,next:o.value.nextMonth}}}));function f(e){var t=e.e;0===t.target.scrollTop?p(t):t.target.scrollTop===t.target.scrollHeight-t.target.clientHeight&&m(t)}function p(e){var t;null==e||null===(t=e.stopPropagation)||void 0===t||t.call(e);var n=d(a.value[0].value,"reduce");a.value=[].concat(i(n),i(a.value))}function m(e){var t;null==e||null===(t=e.stopPropagation)||void 0===t||t.call(e);var n=d(a.value.slice(-1)[0].value,"add");a.value=[].concat(i(a.value),i(n))}return t.watch((function(){return e.mode}),(function(){a.value=s(e.year)})),function(){return t.createVNode("div",{class:r.value},[t.createVNode("div",{class:"".concat(r.value,"-controller")},[l.value&&t.createVNode(Gw,{class:"".concat(r.value,"-controller-month"),value:e.month,options:c.value,onChange:function(t){var n;return null===(n=e.onMonthChange)||void 0===n?void 0:n.call(e,t)},popupProps:{attach:function(e){return e.parentNode},overlayClassName:"".concat(r.value,"-controller-month-popup")}},null),t.createVNode(Gw,{class:"".concat(r.value,"-controller-year"),value:"year"===e.mode?u.value:e.year,options:a.value,onChange:function(t){var n;return null===(n=e.onYearChange)||void 0===n?void 0:n.call(e,t)},popupProps:{onScroll:f,attach:function(e){return e.parentNode},overlayClassName:"".concat(r.value,"-controller-year-popup")},panelTopContent:function(){return t.createVNode("div",{class:"".concat(n.value,"-select-option"),onClick:p},[t.createTextVNode("...")])},panelBottomContent:function(){return t.createVNode("div",{class:"".concat(n.value,"-select-option"),onClick:m},[t.createTextVNode("...")])}},null)]),t.createVNode(cO,{tips:v.value[e.mode],size:"small",onChange:e.onJumperClick},null)])}}}),gx=t.defineComponent({name:"TDatePickerCell",props:{time:String,text:[String,Number],value:Date,active:Boolean,highlight:Boolean,disabled:Boolean,startOfRange:Boolean,endOfRange:Boolean,hoverHighlight:Boolean,hoverStartOfRange:Boolean,hoverEndOfRange:Boolean,additional:Boolean,now:Boolean,firstDayOfMonth:Boolean,lastDayOfMonth:Boolean,onClick:Function,onMouseEnter:Function,dayjsObj:Ua.exports.Dayjs},setup:function(e){var n=Qa("date-picker__cell"),r=t.computed((function(){var t;return[n.value,(t={},s(s(s(s(s(s(s(s(s(s(t,"".concat(n.value,"--now"),e.now),"".concat(n.value,"--active"),e.active),"".concat(n.value,"--disabled"),e.disabled),"".concat(n.value,"--highlight"),e.highlight),"".concat(n.value,"--hover-highlight"),e.hoverHighlight),"".concat(n.value,"--active-start"),e.startOfRange),"".concat(n.value,"--active-end"),e.endOfRange),"".concat(n.value,"--hover-start"),e.hoverStartOfRange),"".concat(n.value,"--hover-end"),e.hoverEndOfRange),"".concat(n.value,"--additional"),e.additional),s(s(t,"".concat(n.value,"--first-day-of-month"),e.firstDayOfMonth),"".concat(n.value,"--last-day-of-month"),e.lastDayOfMonth))]}));function o(t){var n;if(!e.disabled){if(e.time){var r=px(e.time),o=r.hours,a=r.minutes,l=r.seconds,i=r.milliseconds,u=r.meridiem,c=o;/am/i.test(u)&&12===c&&(c-=12),/pm/i.test(u)&&c<12&&(c+=12),e.value.setHours(c),e.value.setMinutes(a),e.value.setSeconds(l),e.value.setMilliseconds(i)}null===(n=e.onClick)||void 0===n||n.call(e,e.value,{e:t})}}function a(){var t;if(!e.disabled){if(e.time){var n=px(e.time),r=n.hours,o=n.minutes,a=n.seconds,l=n.milliseconds,i=n.meridiem,u=r;/am/i.test(i)&&12===u&&(u-=12),/pm/i.test(i)&&u<12&&(u+=12),e.value.setHours(u),e.value.setMinutes(o),e.value.setSeconds(a),e.value.setMilliseconds(l)}null===(t=e.onMouseEnter)||void 0===t||t.call(e,e.value)}}return function(){return t.createVNode("td",{class:r.value,onClick:o,onMouseenter:a},[t.createVNode("div",{class:"".concat(n.value,"-inner")},[e.text])])}}});function yx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bx(e){for(var t=1;t=f&&y<=m&&b>p&&b1})).length;return i.value?Ya(i.value,u.value):e?Ya().hour(0).minute(0).second(0):Ya()}));t.watch((function(){return h.value}),(function(){h.value&&i.value&&x(!0)})),t.watch((function(){return d.value}),(function(){d.value&&x(!0)})),t.onMounted((function(){v.value=function(e){var t=[],n=Sx.meridiem,r=Sx.hour,o=Sx.minute,a=Sx.second,l=Sx.milliSecond;return e.match(kx).forEach((function(e){switch(e){case"H":case"HH":case"h":case"hh":t.push(r);break;case"a":case"A":t.push(n);break;case"m":case"mm":t.push(o);break;case"s":case"ss":t.push(a);break;case"SSS":t.push(l)}})),t}(u.value)}));var g=function(){var e,t=null===(e=p.value)||void 0===e?void 0:e.querySelector("div");return t?{offsetHeight:parseFloat(getComputedStyle(t).height),margin:parseFloat(getComputedStyle(t).marginTop)}:{offsetHeight:0,margin:0}},y=function(t,n){var r=Ax.indexOf(t);if(-1!==r){var o,a=[h.value.hour(),h.value.minute(),h.value.second(),h.value.millisecond()];return a[r]=Number(n),!(null!==(o=e.disableTime)&&void 0!==o&&null!==(o=o.call.apply(o,[e].concat(a,[{partial:c.value||"start"}])))&&void 0!==o&&null!==(o=o[t])&&void 0!==o&&o.includes(Number(n)))}return!0},b=function(t){var n=0;if(Ax.includes(t)){var r=Ax.indexOf(t),o=l.value[r]||1;n=t===Sx.hour?Nx.test(u.value)?11:23:t===Sx.milliSecond?999:59;var a=Na(0,n+1,Number(o)).map((function(e){return Oa(String(e),2,"0")}))||[];return e.hideDisabledTime&&e.disableTime?a.filter((function(n){var o,a=[h.value.hour(),h.value.minute(),h.value.second(),h.value.millisecond()];return a[r]=Number(n),!(null!==(o=e.disableTime)&&void 0!==o&&null!==(o=o.call.apply(o,[e].concat(a,[{partial:c.value||"start"}])))&&void 0!==o&&null!==(o=o[t])&&void 0!==o&&o.includes(Number(n)))})):a}return xx},w=function(e,t){e===Sx.hour&&/[h]{1}/.test(u.value)&&(t%=12);var n=b(e).indexOf(Oa(String(t),2,"0")),r=g(),o=r.offsetHeight+r.margin;return Math.abs(Math.max(0,n)*o)},O=function(t,n,r){var o,a,c,s;if(e.isShowPanel){var d=((null===(o=m[n])||void 0===o?void 0:o.scrollTop)||0)+Bx,f=g(),p=f.offsetHeight+f.margin,O=Math.abs(Math.round(d/p+.5)),C=xx[Math.min(O-1,1)].toLowerCase();if(Number.isNaN(O)&&(O=1),Ax.includes(t)){var x=59;t===Sx.hour?x=/[h]{1}/.test(u.value)?11:23:t===Sx.milliSecond&&(x=999);var P=Ax.indexOf(t),j=Na(0,x+1,Number(l.value[P])||1);c=function(e,t,n){return n<=1?t:e.sort((function(e,n){return Math.abs(t+1-e)-Math.abs(t+1-n)}))[0]}(j,Number(b(t)[Math.min(O-1,x+1,j.length-1)]),Number(l.value[P])||1),Number.isNaN(c)&&(c=j[j.length-1]),t===Sx.hour&&v.value.includes(Sx.meridiem)&&h.value.hour()>=12&&(c=Number(c)+12)}else c=C;var S=w(t,c);if(Ya(h.value).isValid()&&(!i.value||Ya(i.value,u.value,!0).isValid())){if(Ax.includes(t)){var k,N;s=y(t,c)?null===(k=(N=h.value)[t])||void 0===k?void 0:k.call(N,c).format(u.value):h.value.format(u.value)}else{var _=h.value.hour();s=C===Ox&&_>=12?h.value.hour(_-12).format(u.value):C===Cx&&_<12?h.value.hour(_+12).format(u.value):h.value.format(u.value)}if(s!==i.value&&(null===(a=e.onChange)||void 0===a||a.call(e,s,r)),S!==d){var V,D=m[v.value.indexOf(t)];if(!D||D.scrollTop===S)return;null===(V=D.scrollTo)||void 0===V||V.call(D,{top:S,behavior:"smooth"})}}}},C=function(e,t,n){var r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"auto",a=w(e,t),l=m[n];l&&l.scrollTop!==a&&y(e,t)&&(null===(r=l.scrollTo)||void 0===r||r.call(l,{top:a,behavior:o}))},x=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=i.value&&!n?"smooth":"auto",o=!!l.value.filter((function(e){return Number(e)>1})).length;t.nextTick((function(){v.value.forEach((function(e,t){var n,a,l;!o||o&&i.value?C(e,Ax.includes(e)?null===(n=(a=h.value)[e])||void 0===n?void 0:n.call(a):h.value.format("a"),t,r):C(e,null===(l=b(e))||void 0===l?void 0:l[0],t,r)}))})),e.resetTriggerScroll()},P=function(e,t){var n,r,o;return e===Sx.meridiem?h.value.format("a")===t:(o=null===(n=(r=h.value)[e])||void 0===n?void 0:n.call(r),e===Sx.hour&&/[h]{1}/.test(u.value)&&(o%=12),o===Number(t))};return function(){var a,l,i,c;return t.createVNode("div",{class:"".concat(r.value,"-body"),ref:f},[t.createVNode("div",{class:"".concat(r.value,"-body-active-mask"),ref:p},[null===(a=(l=v.value).map)||void 0===a?void 0:a.call(l,(function(e,n){return t.createVNode("div",{key:"".concat(e,"_").concat(n)},null)}))]),null===(i=(c=v.value).map)||void 0===i?void 0:i.call(c,(function(a,l){return t.createVNode("ul",{key:"".concat(a,"_").concat(l),ref:function(e){return m[l]=e},class:"".concat(r.value,"-body-scroll"),onScroll:po((function(e){return O(a,l,e)}),50)},[b(a).map((function(i){return t.createVNode("li",{key:i,class:["".concat(r.value,"-body-scroll-item"),s(s({},o.value.disabled,!y(a,i)),o.value.current,P(a,i))],onClick:function(t){return function(t,n,r,o){if(y(t,n))if(Ax.includes(t))t===Sx.hour&&h.value.format("a")===Cx&&v.value.includes(Sx.meridiem)&&(n=Number(n)+12),C(t,n,r,"smooth");else{var a,l=h.value.hour();if(n===Ox&&l>=12)null===(a=e.onChange)||void 0===a||a.call(e,h.value.hour(l-12).format(u.value),o);else if(n===Cx&&l<12){var i;null===(i=e.onChange)||void 0===i||i.call(e,h.value.hour(l+12).format(u.value),o)}}}(a,i,l,t)}},[Ax.includes(a)?Nx.test(u.value)&&a===Sx.hour&&"00"===i?"12":i:n.value[i===Ox?"anteMeridiem":"postMeridiem"]])}))])}))])}}});function Rx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function zx(e){for(var t=1;t1})).length})),d=t.computed((function(){s.value;var t=Ya(e.value,e.format);return e.value&&t.isValid()?t.format(e.format):Ya().hour(0).minute(0).second(0).format(e.format)})),v=function(){t.nextTick((function(){u.value=!0}))},f=function(){u.value=!1},p=function(){return Uo(e.presets)?s.value?null:t.createVNode(Pi,{theme:"primary",variant:"text",size:"small",onClick:function(){var t;return null===(t=e.onChange)||void 0===t?void 0:t.call(e,Ya().format(e.format))}},{default:function(){return[n.value.now]}}):Object.keys(e.presets||[]).map((function(n){return t.createVNode(Pi,{key:n,theme:"primary",size:"small",variant:"text",onClick:function(){return t=e.presets[n],a="function"==typeof t?t():t,void("number"==typeof e.activeIndex?Array.isArray(a)?null===(r=e.onChange)||void 0===r||r.call(e,a[e.activeIndex]):Qm("TimePicker","preset: ".concat(e.presets," \u9884\u8bbe\u503c\u5fc5\u987b\u662f\u6570\u7ec4!")):null===(o=e.onChange)||void 0===o||o.call(e,a));var t,r,o,a}},"function"==typeof(r=n)||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}});var r}))};return t.onMounted((function(){v()})),t.watch((function(){return i.value}),(function(){v()})),function(){return t.createVNode("div",{class:r.value},[t.createVNode("div",{class:"".concat(r.value,"-section-body")},[t.createVNode(Lx,t.mergeProps(e,{ref:c,format:e.format||"HH:mm:ss",steps:e.steps||jx,value:Ya(e.value,e.format).isValid()?e.value:d.value,triggerScroll:u.value,onChange:e.onChange,resetTriggerScroll:f,isShowPanel:e.isShowPanel}),null)]),l.value?t.createVNode("div",{class:"".concat(r.value,"-section-footer")},[t.createVNode(Pi,{theme:"primary",variant:"base",disabled:!e.value,onClick:function(){var t;return null===(t=e.handleConfirmClick)||void 0===t?void 0:t.call(e,d.value)},size:"small"},{default:function(){return[n.value.confirm]}}),p()]):null])}}});function Wx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Kx(e){for(var t=1;t=o[1]&&(r?o[0]=o[1]-1:(o[0]=o[1],a[0]>=a[1]&&(a[0]=a[1]-1,-1===a[0]&&(a[0]=11,o=[o[0]-1,o[1]])))),{nextYear:o,nextMonth:a}}var xP=t.defineComponent({name:"TDateRangePicker",props:iP,setup:function(e,n){var r=n.slots,o=Qa("date-range-picker"),a=function(e){var n=Qa("date-range-picker"),r=Ga("datePicker").globalConfig,o=up({CalendarIcon:gu}).CalendarIcon,a=ei(),l=t.ref(!1),i=t.ref(),u=Xx(e),c=u.value,d=u.onChange,v=u.time,f=u.month,p=u.year,m=u.cacheValue,h=u.isFirstValueSelected,g=t.computed((function(){return EC({mode:e.mode,format:e.format,valueType:e.valueType,enableTimePicker:e.enableTimePicker})})),y=t.ref(!1),b=t.ref(!1),w=t.ref(0),O=t.ref(_C(e.value,{format:g.value.format})),C=ey(),x=t.computed((function(){return Jx(Jx({},e.rangeInputProps),{},{size:e.size,ref:i,borderless:e.borderless,clearable:e.clearable,prefixIcon:function(){return a("prefixIcon")},readonly:C.value||!e.allowInput,separator:e.separator||r.value.rangeSeparator,placeholder:e.placeholder||r.value.placeholder[e.mode],activeIndex:y.value?w.value:void 0,suffixIcon:function(){return a("suffixIcon")||t.createVNode(o,null,null)},class:s({},"".concat(n.value,"__input--placeholder"),b.value),onClick:function(e){var t=e.position;w.value="first"===t?0:1},onClear:function(e){e.e.stopPropagation(),y.value=!1,null==d||d([],{dayjsValue:[],trigger:"clear"})},onBlur:function(t,n){var r,o=n.e,a=n.position;null===(r=e.onBlur)||void 0===r||r.call(e,{value:t,partial:Qx[a],e:o})},onFocus:function(t,n){var r,o=n.e,a=n.position;null===(r=e.onFocus)||void 0===r||r.call(e,{value:t,partial:Qx[a],e:o}),w.value="first"===a?0:1},onChange:function(e,t){if(t.e,t.position,O.value=e,NC(e,g.value.format)){m.value=e;var n=[],r=[],o=[];e.forEach((function(e){n.push(kC(e,g.value.format).year()),r.push(kC(e,g.value.format).month()),o.push(kC(e,g.value.format).format(g.value.timeFormat))})),p.value=n,f.value=r,v.value=o}},onEnter:function(e){(NC(e,g.value.format)||NC(c.value,g.value.format))&&(y.value=!1,NC(e,g.value.format)?null==d||d(_C(e,{format:g.value.format,targetFormat:g.value.valueType,autoSwap:!0}),{dayjsValue:e.map((function(e){return kC(e,g.value.format)})),trigger:"enter"}):NC(c.value,g.value.format)?O.value=_C(c.value,{format:g.value.format}):O.value=[])}})})),P=t.computed((function(){var t,r,o;return Jx(Jx({expandAnimation:!0},ta(e.popupProps,"on-visible-change")),{},{overlayInnerStyle:null!==(t=null===(r=e.popupProps)||void 0===r?void 0:r.overlayInnerStyle)&&void 0!==t?t:{width:"auto"},overlayClassName:[null===(o=e.popupProps)||void 0===o?void 0:o.overlayClassName,"".concat(n.value,"__panel-container")],onVisibleChange:function(t,n){var r,o,a,l;if(!C.value){if(null===(r=e.popupProps)||void 0===r||null===(o=r.onVisibleChange)||void 0===o||o.call(r,t,n),null===(a=e.popupProps)||void 0===a||null===(l=a["on-visible-change"])||void 0===l||l.call(a,t,n),"trigger-element-click"===n.trigger)return i.value.focus({position:{0:"first",1:"second"}[w.value]}),void(y.value=!0);y.value=t}}})}));return t.watch(c,(function(e){e?NC(e,g.value.format)&&(O.value=_C(e,{format:g.value.valueType,targetFormat:g.value.format})):O.value=[]}),{immediate:!0}),t.watch(w,(function(e){var t,n;l.value?y.value&&(null===(t=i.value)||void 0===t||null===(n=t.focus)||void 0===n||n.call(t,{position:{0:"first",1:"second"}[e]})):l.value=!0}),{immediate:!0}),{year:p,month:f,value:c,time:v,inputValue:O,popupVisible:y,rangeInputProps:x,popupProps:P,isHoverCell:b,activeIndex:w,isFirstValueSelected:h,cacheValue:m,onChange:d}}(e),l=a.inputValue,u=a.popupVisible,c=a.rangeInputProps,d=a.popupProps,v=a.value,f=a.year,p=a.month,m=a.time,h=a.cacheValue,g=a.activeIndex,y=a.isHoverCell,b=a.isFirstValueSelected,w=a.onChange,O=Oi(),C=ey(),x=t.computed((function(){return EC({mode:e.mode,enableTimePicker:e.enableTimePicker,format:e.format,valueType:e.valueType})})),P=t.ref(!1);function S(e){y.value=!0;var t=i(l.value);t[g.value]=_C(e,{format:x.value.format}),l.value=t}function k(){y.value=!1,l.value=h.value}function N(t,n){var r,o=n.e;null===(r=e.onPick)||void 0===r||r.call(e,t,{e:o,partial:g.value?"end":"start"}),y.value=!1,P.value=!0;var a=i(l.value);if(a[g.value]=_C(t,{format:x.value.format}),h.value=a,l.value=a,!e.enableTimePicker){var c=a.findIndex((function(e){return!e||!NC(e,x.value.format)}));if(-1===c&&2===a.length&&(!b.value&&kC(a[0],x.value.format).isAfter(kC(a[1],x.value.format))?(a[g.value?0:1]="",h.value=a,l.value=a):null==w||w(_C(a,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:a.map((function(e){return kC(e,x.value.format)})),trigger:"pick"})),b.value&&g.value)u.value=!1;else{var s=c;-1===s&&(s=g.value?0:1),g.value=s,b.value=!!a[0]}}}function _(t){var n=t.trigger,r="start"===t.partial?0:1,o={date:1,week:1,month:12,quarter:12,year:120}[e.mode]||0,a=new Date(f.value[r],p.value[r]),l=null;"prev"===n?l=sx(a,o):"current"===n?l=new Date:"next"===n&&(l=dx(a,o));var u=i(f.value);u[r]=l.getFullYear();var c=i(p.value);c[r]=l.getMonth();var s=CP(r,u,c,["year","quarter","month"].includes(e.mode));u=s.nextYear,c=s.nextMonth,f.value=u,p.value=c}function V(e){var t=px(e),n=t.hours,r=t.minutes,o=t.seconds,a=t.milliseconds,u=t.meridiem,c=i(l.value),s=c[g.value],d=Ya(s,x.value.format).isValid()?Ya(s,x.value.format):Ya().year(f.value[g.value]).month(p.value[g.value]),v=n;/am/i.test(u)&&12===v&&(v-=12),/pm/i.test(u)&&v<12&&(v+=12);var y=d.hour(v).minute(r).second(o).millisecond(a).toDate();c[g.value]=y;var b=i(m.value);b[g.value]=e,m.value=b,P.value=!0,l.value=_C(c,{format:x.value.format}),h.value=_C(c,{format:x.value.format})}function D(t){var n,r=t.e,o=i(l.value),a=o.findIndex((function(e){return!e||!NC(e,x.value.format)}));-1===a&&2===o.length&&(!b.value&&kC(o[0],x.value.format).isAfter(kC(o[1],x.value.format))?(o[g.value?0:1]="",h.value=o,l.value=o):(null==e||null===(n=e.onConfirm)||void 0===n||n.call(e,{date:o.map((function(e){return Ya(e).toDate()})),e:r,partial:g.value?"end":"start"}),null==w||w(_C(o,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:o.map((function(e){return kC(e,x.value.format)})),trigger:"confirm"})));if(b.value&&g.value)2===o.length&&(u.value=!1);else{var c=a;-1===c&&(c=g.value?0:1),g.value=c,b.value=!!o[0]}}function E(t,n){var r,o=t;(H(t)&&(o=t()),j(o))?(null==w||w(_C(o,{format:x.value.format,targetFormat:x.value.valueType,autoSwap:!0}),{dayjsValue:o.map((function(e){return kC(e,x.value.format)})),trigger:"preset"}),u.value=!1,null===(r=e.onPresetClick)||void 0===r||r.call(e,n)):console.error("preset: ".concat(t," \u9884\u8bbe\u503c\u5fc5\u987b\u662f\u6570\u7ec4!"))}function F(t,n){var r="start"===n.partial?0:1;e.enableTimePicker&&(r=g.value);var o=i(f.value),a=i(p.value);o[r]=t;var l=["year","quarter","month"].includes(e.mode),u=CP(r,o,a,l);o=u.nextYear,a=u.nextMonth,f.value=o,l||(p.value=a)}function T(t,n){var r="start"===n.partial?0:1;e.enableTimePicker&&(r=g.value);var o=i(p.value);if(o[r]=t,f.value[0]===f.value[1]){var a,l,u,c;if(0===r)if(o[1]<=o[0])if(o[1]=o[0]+1,12===o[1])o[1]=0,f.value=[null===(a=f.value)||void 0===a?void 0:a[0],(null===(l=f.value)||void 0===l?void 0:l[1])+1];if(1===r)if(o[0]=Math.min(o[0],o[1]),o[0]>=o[1])if(o[0]-=1,-1===o[0])o[0]=11,f.value=[(null===(u=f.value)||void 0===u?void 0:u[0])-1,null===(c=f.value)||void 0===c?void 0:c[1]]}p.value=o}t.watch(u,(function(t){if(t)if(P.value=!1,h.value=_C(v.value||[],{format:x.value.valueType,targetFormat:x.value.format}),m.value=DC(v.value||[Ya().format(x.value.timeFormat),Ya().format(x.value.timeFormat)],x.value.format,x.value.timeFormat,e.defaultTime),v.value.length)if(2!==v.value.length||e.enableTimePicker)f.value=v.value.map((function(e){return kC(e,x.value.format).year()})),1===f.value.length&&(f.value=[f.value[0],f.value[0]]),p.value=v.value.map((function(e){return kC(e,x.value.format).month()})),1===p.value.length&&(p.value=[p.value[0],Math.min(p.value[0]+1,11)]);else{var n=v.value.map((function(e){return kC(e,x.value.format).month()}));f.value=v.value.map((function(e){return kC(e,x.value.valueType).year()})),f.value[0]===f.value[1]&&n[0]===n[1]&&(11===n[0]?n[0]-=1:n[1]+=1),p.value=n,"month"!==e.mode&&"quarter"!==e.mode||f.value[0]!==f.value[1]||(f.value=[f.value[0],f.value[0]+1])}else{var r=FC({value:v.value,mode:e.mode,format:x.value.format,enableTimePicker:e.enableTimePicker}),o=r.year,a=r.month;f.value=o,p.value=a}else g.value=0,y.value=!1,b.value=!1,l.value=_C(v.value,{format:x.value.valueType,targetFormat:x.value.format})}));var I=t.computed((function(){return{hoverValue:y.value?l.value:[],value:P.value?h.value:v.value,isFirstValueSelected:b.value,activeIndex:g.value,year:f.value,month:p.value,format:x.value.format,mode:e.mode,presets:e.presets,time:m.value,disableDate:e.disableDate,firstDayOfWeek:e.firstDayOfWeek,timePickerProps:e.timePickerProps,enableTimePicker:e.enableTimePicker,presetsPlacement:e.presetsPlacement,popupVisible:u.value,panelPreselection:e.panelPreselection,cancelRangeSelectLimit:e.cancelRangeSelectLimit,onCellClick:N,onCellMouseEnter:S,onCellMouseLeave:k,onJumperClick:_,onConfirmClick:D,onPresetClick:E,onYearChange:F,onMonthChange:T,onTimePickerChange:V}}));return function(){return t.createVNode("div",{class:o.value},[t.createVNode(yP,{readonly:C.value,disabled:O.value,label:e.label,status:e.status,tips:e.tips||r.tips,inputValue:l.value,popupProps:d.value,rangeInputProps:c.value,popupVisible:u.value,panel:function(){return t.createVNode(OP,I.value,null)}},null)])}}}),PP={defaultTime:{type:Array,default:function(){return["00:00:00","23:59:59"]}},onCellClick:Function,onChange:Function,onConfirm:Function,onMonthChange:Function,onPanelClick:Function,onPresetClick:Function,onTimeChange:Function,onYearChange:Function};function jP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var SP=t.defineComponent({name:"TDateRangePickerPanel",props:function(e){for(var t=1;t=s[1])if(s[0]-=1,-1===s[0])s[0]=11,o.value=[(null===(f=o.value)||void 0===f?void 0:f[0])-1,null===(p=o.value)||void 0===p?void 0:p[1]]}a.value=s,null===(l=e.onMonthChange)||void 0===l||l.call(e,{partial:u,month:s[c],date:r.value.map((function(e){return Ya(e).toDate()})),trigger:"month-select"})}t.onMounted((function(){if(2===r.value.length&&!e.enableTimePicker){var t=r.value.map((function(e){return kC(e,d.value.format).month()}));o.value=r.value.map((function(e){return kC(e,d.value.valueType).year()})),o.value[0]===o.value[1]&&t[0]===t[1]&&(11===t[0]?t[0]-=1:t[1]+=1),a.value=t,["month","quarter"].includes(e.mode)&&o.value[0]===o.value[1]&&(o.value=[o.value[0],o.value[0]+1])}}));var S=t.computed((function(){return{hoverValue:f.value?p.value:[],value:v.value?u.value:r.value,activeIndex:m.value,year:o.value,month:a.value,mode:e.mode,format:d.value.format,presets:e.presets,time:l.value,disableDate:e.disableDate,firstDayOfWeek:e.firstDayOfWeek,timePickerProps:e.timePickerProps,enableTimePicker:e.enableTimePicker,presetsPlacement:e.presetsPlacement,panelPreselection:e.panelPreselection,popupVisible:!0,panelClick:e.onPanelClick,onCellClick:y,onCellMouseEnter:h,onCellMouseLeave:g,onJumperClick:b,onConfirmClick:O,onPresetClick:C,onYearChange:x,onMonthChange:P,onTimePickerChange:w}}));return function(){return t.createVNode(OP,S.value,null)}}}),kP=pi(rP),NP=pi(lP),_P=pi(xP),VP=pi(SP),DP={exports:{}},EP={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;for(var n in t)void 0===e[n]&&(e[n]=t[n]);return e},e.exports=t.default,e.exports.default=t.default}(EP,EP.exports),function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){t="string"==typeof t?(0,r.default)({format:t},l):(0,r.default)(t,l);if("string"==typeof e&&function(e){return/(^(y{4}|y{2})[.\/-](m{1,2})[.\/-](d{1,2})$)|(^(m{1,2})[.\/-](d{1,2})[.\/-]((y{4}|y{2})$))|(^(d{1,2})[.\/-](m{1,2})[.\/-]((y{4}|y{2})$))/gi.test(e)}(t.format)){if(t.strictMode&&e.length!==t.format.length)return!1;var n,a=t.delimiters.find((function(e){return-1!==t.format.indexOf(e)})),i=t.strictMode?a:t.delimiters.find((function(t){return-1!==e.indexOf(t)})),u=function(e,t){for(var n=[],r=Math.max(e.length,t.length),o=0;o=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,i=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){u=!0,l=e},f:function(){try{i||null==n.return||n.return()}finally{if(u)throw l}}}}(u);try{for(s.s();!(n=s.n()).done;){var d=(y=n.value,b=2,function(e){if(Array.isArray(e))return e}(y)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,l,i=[],u=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw o}}return i}}(y,b)||o(y,b)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),v=d[0],f=d[1];if(!v||!f||v.length!==f.length)return!1;c[f.charAt(0)]=v}}catch(e){s.e(e)}finally{s.f()}var p=c.y;if(p.startsWith("-"))return!1;if(2===c.y.length){var m=parseInt(c.y,10);if(isNaN(m))return!1;p=m<(new Date).getFullYear()%100?"20".concat(c.y):"19".concat(c.y)}var h=c.m;1===c.m.length&&(h="0".concat(c.m));var g=c.d;return 1===c.d.length&&(g="0".concat(c.d)),new Date("".concat(p,"-").concat(h,"-").concat(g,"T00:00:00.000Z")).getUTCDate()===+c.d}var y,b;if(!t.strictMode)return"[object Date]"===Object.prototype.toString.call(e)&&isFinite(e);return!1};var n,r=(n=EP.exports)&&n.__esModule?n:{default:n};function o(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=n&&(void 0===a||l<=a)};var n,r=(n=IP.exports)&&n.__esModule?n:{default:n};function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}e.exports=t.default,e.exports.default=t.default}(AP,AP.exports);var BP={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,n.default)(e),(t=(0,r.default)(t,a)).allow_trailing_dot&&"."===e[e.length-1]&&(e=e.substring(0,e.length-1));!0===t.allow_wildcard&&0===e.indexOf("*.")&&(e=e.substring(2));var o=e.split("."),l=o[o.length-1];if(t.require_tld){if(o.length<2)return!1;if(!t.allow_numeric_tld&&!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(l))return!1;if(/\s/.test(l))return!1}if(!t.allow_numeric_tld&&/^\d+$/.test(l))return!1;return o.every((function(e){return!(e.length>63&&!t.ignore_max_length)&&(!!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(e)&&(!/[\uff01-\uff5e]/.test(e)&&(!/^-|-$/.test(e)&&!(!t.allow_underscores&&/_/.test(e)))))}))};var n=o(IP.exports),r=o(EP.exports);function o(e){return e&&e.__esModule?e:{default:e}}var a={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_numeric_tld:!1,allow_wildcard:!1,ignore_max_length:!1};e.exports=t.default,e.exports.default=t.default}(BP,BP.exports);var LP={exports:{}};!function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if((0,r.default)(t),n=String(n),!n)return e(t,4)||e(t,6);if("4"===n)return l.test(t);if("6"===n)return u.test(t);return!1};var n,r=(n=IP.exports)&&n.__esModule?n:{default:n};var o="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",a="(".concat(o,"[.]){3}").concat(o),l=new RegExp("^".concat(a,"$")),i="(?:[0-9a-fA-F]{1,4})",u=new RegExp("^("+"(?:".concat(i,":){7}(?:").concat(i,"|:)|")+"(?:".concat(i,":){6}(?:").concat(a,"|:").concat(i,"|:)|")+"(?:".concat(i,":){5}(?::").concat(a,"|(:").concat(i,"){1,2}|:)|")+"(?:".concat(i,":){4}(?:(:").concat(i,"){0,1}:").concat(a,"|(:").concat(i,"){1,3}|:)|")+"(?:".concat(i,":){3}(?:(:").concat(i,"){0,2}:").concat(a,"|(:").concat(i,"){1,4}|:)|")+"(?:".concat(i,":){2}(?:(:").concat(i,"){0,3}:").concat(a,"|(:").concat(i,"){1,5}|:)|")+"(?:".concat(i,":){1}(?:(:").concat(i,"){0,4}:").concat(a,"|(:").concat(i,"){1,6}|:)|")+"(?::((?::".concat(i,"){0,5}:").concat(a,"|(?::").concat(i,"){1,7}|:))")+")(%[0-9a-zA-Z-.:]{1,})?$");e.exports=t.default,e.exports.default=t.default}(LP,LP.exports),function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,n.default)(e),(t=(0,i.default)(t,c)).require_display_name||t.allow_display_name){var u=e.match(s);if(u){var g=u[1];if(e=e.replace(g,"").replace(/(^<|>$)/g,""),g.endsWith(" ")&&(g=g.slice(0,-1)),!function(e){var t=e.replace(/^"(.+)"$/,"$1");if(!t.trim())return!1;if(/[\.";<>]/.test(t)){if(t===e)return!1;if(!(t.split('"').length===t.split('\\"').length))return!1}return!0}(g))return!1}else if(t.require_display_name)return!1}if(!t.ignore_max_length&&e.length>h)return!1;var y=e.split("@"),b=y.pop(),w=b.toLowerCase();if(t.host_blacklist.length>0&&(0,r.default)(w,t.host_blacklist))return!1;if(t.host_whitelist.length>0&&!(0,r.default)(w,t.host_whitelist))return!1;var O=y.join("@");if(t.domain_specific_validation&&("gmail.com"===w||"googlemail.com"===w)){var C=(O=O.toLowerCase()).split("+")[0];if(!(0,o.default)(C.replace(/\./g,""),{min:6,max:30}))return!1;for(var x=C.split("."),P=0;P]/.test(e))return!1;if(0===e.indexOf("mailto:"))return!1;if((t=(0,l.default)(t,c)).validate_length&&e.length>t.max_allowed_length)return!1;if(!t.allow_fragments&&e.includes("#"))return!1;if(!t.allow_query_components&&(e.includes("?")||e.includes("&")))return!1;var i,d,v,f,p,m,h,g;if(h=e.split("#"),e=h.shift(),h=e.split("?"),e=h.shift(),(h=e.split("://")).length>1){if(i=h.shift().toLowerCase(),t.require_valid_protocol&&-1===t.protocols.indexOf(i))return!1}else{if(t.require_protocol)return!1;if("//"===e.slice(0,2)){if(!t.allow_protocol_relative_urls)return!1;h[0]=e.slice(2)}}if(""===(e=h.join("://")))return!1;if(h=e.split("/"),""===(e=h.shift())&&!t.require_host)return!0;if((h=e.split("@")).length>1){if(t.disallow_auth)return!1;if(""===h[0])return!1;if((d=h.shift()).indexOf(":")>=0&&d.split(":").length>2)return!1;var y=d.split(":"),b=(x=2,function(e){if(Array.isArray(e))return e}(C=y)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,l,i=[],u=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw o}}return i}}(C,x)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(C,x)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=b[0],O=b[1];if(""===w&&""===O)return!1}var C,x;f=h.join("@"),m=null,g=null;var P=f.match(s);P?(v="",g=P[1],m=P[2]||null):(v=(h=f.split(":")).shift(),h.length&&(m=h.join(":")));if(null!==m&&m.length>0){if(p=parseInt(m,10),!/^[0-9]+$/.test(m)||p<=0||p>65535)return!1}else if(t.require_port)return!1;if(t.host_whitelist)return(0,r.default)(v,t.host_whitelist);if(""===v&&!t.require_host)return!0;if(!((0,a.default)(v)||(0,o.default)(v,t)||g&&(0,a.default)(g,6)))return!1;if(v=v||g,t.host_blacklist&&(0,r.default)(v,t.host_blacklist))return!1;return!0};var n=i(IP.exports),r=i(MP.exports),o=i(BP.exports),a=i(LP.exports),l=i(EP.exports);function i(e){return e&&e.__esModule?e:{default:e}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=t:il(e)>=t},len:function(e,t){return il(String(e))===t},number:function(e){return Ho(e)},enum:function(e,t){return t.includes(e)},idcard:function(e){return/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/i.test(e)},telnumber:function(e){return/^1[3-9]\d{9}$/.test(e)},pattern:function(e,t){return t.test(e)},validator:function(e,t){return t(e)}};function YP(e,t){return $P.apply(this,arguments)}function $P(){return $P=Bf(Hf.mark((function e(t,n){var r,o,a,l,i,u,c;return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r={result:!0},o=Object.keys(n),i=0;case 3:if(!(i0;return null!=r?r:o})),h=t.computed((function(){return r.label||e.label})),g=t.computed((function(){return!(null==v||!v.colon||!h.value)})),y=Qa("form__label"),b=t.computed((function(){return Wo(e.labelAlign)?null==v?void 0:v.labelAlign:e.labelAlign})),w=t.computed((function(){return Wo(e.labelWidth)?null==v?void 0:v.labelWidth:e.labelWidth})),O=t.computed((function(){return[a.value.label,s(s(s(s({},"".concat(y.value,"--required"),m.value),"".concat(y.value,"--top"),h.value&&("top"===b.value||!w.value)),"".concat(y.value,"--left"),"left"===b.value&&w.value),"".concat(y.value,"--right"),"right"===b.value&&w.value)]})),C=t.computed((function(){return"".concat(f.value,"-is-").concat(e.status||"default"," ").concat("success"===e.status?a.value.successBorder:"")})),x=function(){if(0!==Number(w.value)){var n={};return w.value&&"top"!==b.value&&(n=Ho(w.value)?{width:"".concat(w.value,"px")}:{width:w.value}),t.createVNode("div",{class:O.value,style:n},[t.createVNode("label",{for:e.for||null},[o("label")]),g.value&&l.value.colonText])}},P=function(){var e=function(e){return t.createVNode("span",{class:a.value.status},[t.createVNode(e,null,null)])},n=V.value;if(E.value===ny.SUCCESS)return e(u);if(null!=n&&n[0]){var r=n[0].type||"error";return e({error:c,warning:d}[r]||u)}return null},S=function(){if(!1!==e.statusIcon){var n=o("statusIcon",{defaultNode:P()});if(n)return t.createVNode("span",{class:a.value.status},[n]);if(!1!==n)return(n=null==v?void 0:v.renderContent("statusIcon",{defaultNode:P(),params:e}))||void 0}},k=t.computed((function(){if(!$.value)return"";if(E.value===ny.SUCCESS)return e.successBorder?[a.value.success,a.value.successBorder].join(" "):a.value.success;if(V.value.length){var t=V.value[0].type||"error";return e.status?C.value:"error"===t?a.value.error:a.value.warning}})),N=t.computed((function(){return[a.value.controls,k.value]})),_=t.computed((function(){var e={};return w.value&&"top"!==b.value&&(e=Ho(w.value)?{marginLeft:"".concat(w.value,"px")}:{marginLeft:w.value}),e})),V=t.ref([]),D=t.ref([]),E=t.ref(ny.TO_BE_VALIDATED),F=t.ref(!1),T=t.ref(!1),I=function(){T.value=!1,V.value=[],D.value=[],E.value=ny.TO_BE_VALIDATED},M=function(){var n=Bf(Hf.mark((function n(){var r,o=arguments;return Hf.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=o.length>0&&void 0!==o[0]?o[0]:null==v?void 0:v.resetType,e.name){n.next=3;break}return n.abrupt("return");case 3:return"empty"===r?Va(null==v?void 0:v.data,e.name,(a=void 0,l=void 0,"[object String]"===(l=Object.prototype.toString.call(St(null==v?void 0:v.data,e.name)))&&(a=""),"[object Array]"===l&&(a=[]),"[object Object]"===l&&(a={}),a)):"initial"===r&&Va(null==v?void 0:v.data,e.name,W.value),n.next=6,t.nextTick();case 6:F.value?T.value=!0:I();case 7:case"end":return n.stop()}var a,l}),n)})));return function(){return n.apply(this,arguments)}}(),A=t.computed((function(){var e;return null!==(e=null==v?void 0:v.errorMessage)&&void 0!==e?e:l.value.errorMessage})),B=t.computed((function(){var t;if(null!==(t=e.rules)&&void 0!==t&&t.length)return e.rules;if(!e.name)return[];var n="".concat(e.name).lastIndexOf(".")||-1,r="".concat(e.name).slice(n+1);return St(null==v?void 0:v.rules,e.name)||St(null==v?void 0:v.rules,r)||[]})),L=function(){var t=Bf(Hf.mark((function t(n){var r,o;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((o={successList:[],errorList:[],rules:[],resultList:[],allowSetValue:!1}).rules="all"===n?B.value:B.value.filter((function(e){return(e.trigger||"change")===n})),!B.value.length||null!==(r=o.rules)&&void 0!==r&&r.length){t.next=4;break}return t.abrupt("return",o);case 4:return o.allowSetValue=!0,t.next=7,ZP(H.value,o.rules);case 7:return o.resultList=t.sent,o.errorList=o.resultList.filter((function(e){return!0!==e.result})).map((function(t){return Object.keys(t).forEach((function(n){if(!t.message&&A.value[n]){var r=Do(e.label)?e.label:e.name;t.message=(o=A.value[n],a={name:r,validate:t[n]},o.replace(/\${(.*?)}/g,(function(e,t){return a[t.trim()]||""})))}var o,a})),t})),o.successList=o.resultList.filter((function(e){return!0===e.result&&e.message&&"success"===e.type})),t.abrupt("return",o);case 11:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),R=function(){var t=Bf(Hf.mark((function t(n,r){var o,a,l,i,u;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return F.value=!0,Y.value=r,t.next=4,L(n);case 4:return o=t.sent,a=o.successList,l=o.errorList,i=o.rules,u=o.resultList,o.allowSetValue&&(D.value=a,V.value=l),i.length&&(E.value=l.length?ny.FAIL:ny.SUCCESS),T.value&&I(),F.value=!1,t.abrupt("return",s({},e.name,0===l.length||u));case 15:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),z=function(){var t=Bf(Hf.mark((function t(n){var r,o,a;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,L(n);case 2:return r=t.sent,o=r.errorList,a=r.resultList,t.abrupt("return",s({},e.name,0===o.length||a));case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),H=t.computed((function(){return(null==v?void 0:v.data)&&St(null==v?void 0:v.data,e.name)})),W=t.ref(void 0),K=t.toRefs(e).name,U=t.reactive({name:K,resetHandler:I,resetField:M,validate:R,validateOnly:z,setValidateMessage:function(e){(e||j(e))&&(0===e.length&&(V.value=[],E.value=ny.SUCCESS),V.value=e.map((function(e){return JP(JP({},e),{},{result:!1})})),E.value=ny.FAIL)}});t.onMounted((function(){W.value=Mr(H.value),null==v||v.children.push(U)})),t.onBeforeUnmount((function(){v&&(v.children=null==v?void 0:v.children.filter((function(e){return e!==U})))})),t.watch(H,Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R("change");case 2:case"end":return e.stop()}}),e)}))),{deep:!0}),t.watch((function(){return[e.name,JSON.stringify(e.rules)].join(",")}),(function(){R("change")}));var Y=t.ref(void 0),$=t.computed((function(){return Mo(Y.value)?Y.value:Mo(e.showErrorMessage)?e.showErrorMessage:null==v?void 0:v.showErrorMessage})),Z=t.computed((function(){return[a.value.formItem,QP(p.value,e.name),s(s({},a.value.formItemWithHelp,q.value),a.value.formItemWithExtra,X.value)]})),q=t.computed((function(){var e=o("help");return e?t.createVNode("div",{class:a.value.help},[e]):null})),X=t.computed((function(){var e,n=function(e){return t.createVNode("div",{class:a.value.extra,title:e},[e])},r=V.value;return $.value&&null!=r&&null!==(e=r[0])&&void 0!==e&&e.message?n(r[0].message):D.value.length?n(D.value[0].message):null})),G=t.computed((function(){var e=o("tips");if(!e)return null;var n=["".concat(p.value,"-tips"),"".concat(f.value,"-tips"),C.value];return t.createVNode("div",{class:n},[e])})),J=function(){var e=Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R("blur");case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return t.provide(oy,{handleBlur:J}),function(){return t.createVNode("div",{class:Z.value},[x(),t.createVNode("div",{class:N.value,style:_.value},[t.createVNode("div",{class:a.value.controlsContent},[o("default"),S()]),q.value,G.value,X.value])])}}}),tj={colon:Boolean,data:{type:Object,default:function(){return{}}},disabled:{type:Boolean,default:void 0},errorMessage:{type:Object},formControlledComponents:{type:Array},id:{type:String,default:void 0},labelAlign:{type:String,default:"right",validator:function(e){return!e||["left","right","top"].includes(e)}},labelWidth:{type:[String,Number],default:"100px"},layout:{type:String,default:"vertical",validator:function(e){return!e||["vertical","inline"].includes(e)}},preventSubmitDefault:{type:Boolean,default:!0},readonly:{type:Boolean,default:void 0},requiredMark:{type:Boolean,default:void 0},resetType:{type:String,default:"empty",validator:function(e){return!e||["empty","initial"].includes(e)}},rules:{type:Object},scrollToFirstError:{type:String,validator:function(e){return!e||["","smooth","auto"].includes(e)}},showErrorMessage:{type:Boolean,default:!0},statusIcon:{type:[Boolean,Function],default:void 0},submitWithWarningMessage:Boolean,onReset:Function,onSubmit:Function,onValidate:Function},nj=t.defineComponent({name:"TForm",props:tj,setup:function(e,n){var r=n.expose,o=ei(),a=t.toRefs(e),l=a.disabled,i=a.readonly;t.provide("formDisabled",{disabled:l}),t.provide("formReadonly",{readonly:i});var u=t.ref(null),c=t.ref([]),d=t.toRefs(e),v=d.showErrorMessage,f=d.labelWidth,p=d.labelAlign,m=d.data,h=d.colon,g=d.requiredMark,y=d.rules,b=d.errorMessage,w=d.resetType;t.provide(ry,t.reactive({showErrorMessage:v,labelWidth:f,labelAlign:p,data:m,colon:h,requiredMark:g,rules:y,errorMessage:b,resetType:w,children:c,renderContent:o}));var O=Qa("form"),C=ty(),x=t.computed((function(){return[C.value.form,s({},"".concat(O.value,"-inline"),"inline"===e.layout)]})),P=Qa("form-item"),S=function(t){if(Mo(t))return"";var n=Ha(Object.keys(t),1)[0];if(e.scrollToFirstError){var r=QP(P.value,n);k(r)}var o=t[n];return j(o)?o.filter((function(e){return!e.result}))[0].message:""},k=function(t){var n=Ha(u.value.getElementsByClassName(t),1)[0],r=e.scrollToFirstError;r&&n&&n.scrollIntoView({behavior:r})},N=function(e,t){return!t||!j(t)||-1!==t.indexOf("".concat(e))},_=function(e){var t=e.reduce((function(e,t){return Object.assign(e||{},t)}),{});return Object.keys(t).forEach((function(e){!0===t[e]&&delete t[e]})),!!Ro(t)||t},V=function(){var t=Bf(Hf.mark((function t(n){var r,o,a,l,i,u,s,d,v,f;return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=(o=n||{}).fields,l=o.trigger,i=void 0===l?"all":l,u=o.showErrorMessage,s=c.value.filter((function(e){return H(e.validate)&&N(String(e.name),a)})).map((function(e){return e.validate(i,u)})),t.next=4,Promise.all(s);case 4:return d=t.sent,v=_(d),f=S(v),null===(r=e.onValidate)||void 0===r||r.call(e,{validateResult:v,firstError:f}),t.abrupt("return",v);case 9:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),D=function(){var e=Bf(Hf.mark((function e(t){var n,r,o,a,l,i;return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=(n=t||{}).fields,o=n.trigger,a=void 0===o?"all":o,l=c.value.filter((function(e){return H(e.validateOnly)&&N(String(e.name),r)})).map((function(e){return e.validateOnly(a)})),e.next=4,Promise.all(l);case 4:return i=e.sent,e.abrupt("return",_(i));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),E=t.ref(),F=function(){var e=Bf(Hf.mark((function e(t){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:E.value=t,Ll(u.value);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),T=t.ref();return r({validate:V,submit:F,reset:function(e){T.value=e,u.value.reset()},clearValidate:function(e){c.value.forEach((function(t){H(t.resetHandler)&&N(String(t.name),e)&&t.resetHandler()}))},setValidateMessage:function(e){var t=Object.keys(e);if(t.length){var n=c.value.filter((function(e){return H(e.setValidateMessage)&&t.includes("".concat(e.name))})).map((function(t){return t.setValidateMessage(e[t.name])}));Promise.all(n)}},validateOnly:D}),function(){return t.createVNode("form",{ref:u,class:x.value,onSubmit:function(t){return function(t){e.preventSubmitDefault&&t&&(t.preventDefault(),t.stopPropagation()),V(E.value).then((function(n){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,{validateResult:n,firstError:S(n),e:t})})),E.value=void 0}(t)},onReset:function(t){return function(t){var n;e.preventSubmitDefault&&t&&(t.preventDefault(),t.stopPropagation()),c.value.filter((function(e){var t;return H(e.resetField)&&N(String(e.name),null===(t=T.value)||void 0===t?void 0:t.fields)})).forEach((function(e){var t;return e.resetField(null===(t=T.value)||void 0===t?void 0:t.type)})),T.value=void 0,null===(n=e.onReset)||void 0===n||n.call(e,{e:t})}(t)}},[o("default")])}}}),rj=pi(nj),oj=pi(ej),aj={allowUncheck:Boolean,checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},label:{type:[String,Function]},name:{type:String,default:""},readonly:{type:Boolean,default:void 0},value:{type:[String,Number,Boolean],default:void 0},onChange:Function,onClick:Function},lj=Symbol("RadioGroupProvide"),ij=Symbol("RadioButtonProvide"),uj=t.defineComponent({name:"TRadio",inheritAttrs:!1,props:aj,setup:function(e,n){var r=n.attrs,o=t.ref(),a=t.toRefs(e),l=Ha(qm(a.checked,a.modelValue,e.defaultChecked,e.onChange,"checked"),2),u=l[0],c=l[1],d=t.computed((function(){return v?e.value===v.value:u.value})),v=t.inject(lj,void 0),f=t.computed((function(){return Boolean(e.allowUncheck||(null==v?void 0:v.allowUncheck))})),p=function(e){e.stopPropagation()},m=function(t){var n;if(!w.value&&!O.value&&(null===(n=e.onClick)||void 0===n||n.call(e,{e:t}),!d.value||f.value))if(v){var r=d.value&&f.value?void 0:e.value;v.setValue(r,{e:t,name:v.name})}else{var o=!f.value||!d.value;c(o,{e:t})}},h=t.computed((function(){return ol({focus:r.onFocus,blur:r.onBlur,keydown:r.onKeydown,keyup:r.onKeyup,keypresss:r.onKeypresss})})),g=t.computed((function(){var e=[].concat(i(Object.keys(h.value)),["input","change"]).map((function(e){return"on".concat(e[0].toUpperCase()).concat(e.slice(1))}));return ta(r,e)})),y=t.computed((function(){return null==v?void 0:v.disabled})),b=t.computed((function(){return null==v?void 0:v.readonly})),w=Oi({afterDisabled:y}),O=ey({afterReadonly:b}),C=t.computed((function(){return{name:v?v.name:e.name,checked:d.value,disabled:w.value,readonly:O.value,value:e.value}})),x=el().STATUS,P=t.inject(ij,void 0),j=Qa("radio-button"),S=Qa("radio"),k=t.computed((function(){return P?j.value:S.value})),N=t.computed((function(){return["".concat(k.value),s(s({},x.value.checked,C.value.checked),x.value.disabled,C.value.disabled)]})),_=ni();return function(){return t.createVNode("label",t.mergeProps({ref:o,class:N.value},g.value,{tabindex:w.value?void 0:"0",onClick:m}),[t.createVNode("input",t.mergeProps({type:"radio",class:"".concat(k.value,"__former")},h.value,C.value,{onClick:p,tabindex:"-1","data-value":Do(e.value)?"'".concat(e.value,"'"):e.value,"data-allow-uncheck":f.value||void 0}),null),t.createVNode("span",{class:"".concat(k.value,"__input")},null),t.createVNode("span",{class:"".concat(k.value,"__label")},[_("default","label")])])}}}),cj={allowUncheck:Boolean,disabled:{type:Boolean,default:void 0},name:{type:String,default:""},options:{type:Array},readonly:{type:Boolean,default:void 0},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},theme:{type:String,default:"radio",validator:function(e){return!e||["radio","button"].includes(e)}},value:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},defaultValue:{type:[String,Number,Boolean]},variant:{type:String,default:"outline",validator:function(e){return!e||["outline","primary-filled","default-filled"].includes(e)}},onChange:Function};function sj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function dj(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},l=a.window,i=void 0===l?pj:l,u=nl(a,fj),c=i&&"MutationObserver"in i,s=function(){r&&(r.disconnect(),r=void 0)},d=t.watch((function(){return n=e,o=t.unref(n),null!==(r=null==o?void 0:o.$el)&&void 0!==r?r:o;var n,r,o}),(function(e){s(),c&&i&&e&&(r=new MutationObserver(n)).observe(e,u)}),{immediate:!0}),v=function(){s(),d()};return o=v,t.getCurrentScope()&&t.onScopeDispose(o),{isSupported:c,stop:v}}function hj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function gj(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if("outline"!==e.variant){var n=l.value.querySelector(f.value),r=t?"none":"all";if(n){var o=n.offsetWidth,a=n.offsetHeight,i=n.offsetLeft,u=n.offsetTop;o?p.value={"transition-property":r,width:"".concat(o,"px"),height:"".concat(a,"px"),left:"".concat(i,"px"),top:"".concat(u,"px")}:function(){var e=document.createElement("div");e.setAttribute("style","position: absolute; visibility: hidden;"),e.appendChild(l.value.cloneNode(!0)),document.body.appendChild(e);var t=e.querySelector(f.value),n=t.offsetWidth,r=t.offsetHeight,o=t.offsetLeft,a=t.offsetTop;p.value=gj(gj({},p.value),{},{width:"".concat(n,"px"),height:"".concat(r,"px"),left:"".concat(o,"px"),top:"".concat(a,"px")}),document.body.removeChild(e)}()}else p.value={"transition-property":r,width:"0px",height:"9px",left:"0px",top:"0px"}}};t.watch(o,Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.nextTick();case 2:m();case 3:case"end":return e.stop()}}),e)})))),t.onMounted((function(){m(!0),mh(l,Ea(Bf(Hf.mark((function e(){return Hf.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.nextTick();case 2:m();case 3:case"end":return e.stop()}}),e)}))),300));var e=l.value.querySelector("".concat(f.value," .").concat(i.value,"__label"));e&&(v=mj(e,(function(e){e.forEach((function(e){"characterData"===e.type&&m()}))}),{attributes:!0,childList:!0,characterData:!0,subtree:!0}))})),t.onUnmounted((function(){var e;null===(e=v)||void 0===e||e.stop()}));var h=t.toRefs(e),g=h.name,y=h.disabled,b=h.readonly;t.provide(lj,t.reactive({name:g,disabled:y,readonly:b,value:o,allowUncheck:e.allowUncheck,setValue:a}));var w=Qa("radio-group"),O=ti(),C=function(){if(e.variant.includes("filled")&&!Wo(o.value))return t.createVNode("div",{style:p.value,class:"".concat(w.value,"__bg-block")},null)},x=t.computed((function(){return["".concat(w.value),d.value[e.size],s(s(s({},"".concat(w.value,"__outline"),"outline"===e.variant),"".concat(w.value,"--filled"),e.variant.includes("filled")),"".concat(w.value,"--primary-filled"),"primary-filled"===e.variant)]}));return function(){return t.createVNode("div",{ref:l,class:x.value},[O("default")||(null===(n=e.options)||void 0===n?void 0:n.map((function(n){var r=n;(Ho(n)||Do(n))&&(r={value:n,label:n.toString()});var a="button"===e.theme?vj:uj;return t.createVNode(a,{key:"radio-group-options-".concat(r.value,"-").concat(Math.random()),name:e.name,checked:o.value===r.value,disabled:"disabled"in r?r.disabled:e.disabled,value:r.value},{default:function(){return[H(r.label)?r.label(t.h):r.label]}})}))),C()]);var n}}}),bj=pi(uj),wj=pi(yj),Oj=pi(vj),Cj={disabled:{type:Boolean,default:void 0},inputNumberProps:{type:[Boolean,Object],default:!1},label:{type:[String,Boolean,Function],default:!0},layout:{type:String,default:"horizontal",validator:function(e){return!e||["vertical","horizontal"].includes(e)}},marks:{type:[Object,Array]},max:{type:Number,default:100},min:{type:Number,default:0},range:Boolean,showStep:Boolean,step:{type:Number,default:1},tooltipProps:{type:Object},value:{type:[Number,Array],default:void 0},modelValue:{type:[Number,Array],default:void 0},defaultValue:{type:[Number,Array],default:0},onChange:Function,onChangeEnd:Function},xj=function(e,t){return t?{top:"calc(".concat(100-e,"% - 1px)")}:{left:"".concat(e,"%")}},Pj=function(e,t){return"first"===t?e instanceof Array?e[0]:e:e instanceof Array?e[1]:0};function jj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Sj(e){for(var t=1;t100?r=100:r<0&&(r=0);var o=100*g.value/m.value,a=Math.round(r/o)*o*m.value*.01;a+=d.min,a=Number(parseFloat("".concat(a)).toFixed(d.precision)),n.emit("input",a),t.nextTick((function(){var e,t;l.value&&(null===(e=(t=l.value).updatePopper)||void 0===e||e.call(t))}))}},w=function(){v.value.focus(),u(!0)},O=function(){p.dragging||u(!1)},C=function(t){var n=t;if(p.dragging){f.value=!0,p.isClick=!1,null!=d&&d.resetSize&&H(null==d?void 0:d.resetSize)&&d.resetSize();var r=0,o=d.sliderSize,a=n.type,l=n.clientY,i=n.clientX;if("touchmove"===a){var u=n.touches,c=[u[0].clientY,u[0].clientX];l=c[0],i=c[1]}r=(r=e.vertical?p.startY-l:i-p.startX)/o*100,p.newPos=p.startPos+r,b(p.newPos)}},x=function(){p.dragging&&(setTimeout((function(){p.dragging=!1,u(!1),p.isClick||b(p.newPos),f.value&&n.emit("mouseup"),f.value=!1}),0),window.removeEventListener("mousemove",C),window.removeEventListener("touchmove",C),window.removeEventListener("mouseup",x),window.removeEventListener("touchend",x),window.removeEventListener("contextmenu",x))};function P(t){d.disabled||(t.preventDefault(),function(t){p.dragging=!0,p.isClick=!0;var n=t.type,r=t.clientY,o=t.clientX;if("touchstart"===n){var a=t.touches,l=[a[0].clientY,a[0].clientX];r=l[0],o=l[1]}e.vertical?p.startY=r:p.startX=o,p.startPos=parseFloat(h.value),p.newPos=p.startPos}(t),window.addEventListener("mousemove",C),window.addEventListener("mouseup",x),window.addEventListener("touchmove",C),window.addEventListener("touchend",x),window.addEventListener("contextmenu",x))}var j=function(e){if(!d.disabled){var t=g.value/m.value*100;"sub"===e&&(t=-t),p.newPos=parseFloat(h.value)+t,b(p.newPos)}},S=function(e){var t=e.code;e.preventDefault(),"ArrowDown"!==t&&"ArrowLeft"!==t||j("sub"),"ArrowUp"!==t&&"ArrowRight"!==t||j("add")};return n.expose({setPosition:b}),function(){return t.createVNode("div",{ref:v,class:"".concat(r.value,"-wrapper"),style:y.value,tabindex:"0","show-tooltip":c.value,onMouseenter:w,onMouseleave:O,onMousedown:P,onTouchstart:P,onFocus:w,onBlur:O,onKeydown:S},[t.createVNode(Lh,t.mergeProps({ref:l,hideEmptyPopup:!0,disabled:!c.value},i.value),{default:function(){return[t.createVNode("div",{class:[r.value,s({},"".concat(r.value,"--dragging"),p.dragging)]},null)]}})])}}}),Dj=t.defineComponent({name:"TSliderMark",props:{mark:{type:[Object,Array,String,Number]},point:{type:Number},onClickMarkPoint:{type:Function,default:function(){}}},setup:function(e){var n=Qa("slider__mark"),r=function(t){var n;t.stopPropagation(),null==e||null===(n=e.onClickMarkPoint)||void 0===n||n.call(e,e.point)};return function(){return t.createVNode("div",{class:"".concat(n.value,"-text"),onClick:r},[e.mark])}}});function Ej(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Fj(e){for(var t=1;te.max)return[];if(0===e.step)return console.warn("[Element Warn][Slider]step should not be 0."),[];for(var t=S.value/e.step,n=100*e.step/S.value,r=[],o=1;o100*(N.value-e.max)/S.value})):r.filter((function(t){return t>100*(m.value-e.min)/S.value}))})),V=t.computed((function(){var t=[e.min,e.max,e.step].map((function(e){var t="".concat(e).split(".");return t[1]?t[1].length:0}));return Math.max.apply(null,t)})),D=function(t){var n=[e.min,e.max],r=n[0],o=n[1];if(!(r>o)){if(e.range&&j(t)){var a=[Math.min.apply(Math,i(t)),Math.max.apply(Math,i(t))],l=a[0],u=a[1];l>o&&(l=m.value),lo&&(u=o);var c=[l,u];return m.value=c[0],h.value=c[1],[l,u]}var s=t;return so&&(s=o),s}console.warn("[Slider] max should be greater than min.")},E=function(t){var n=t;void 0===n&&(n=e.range?[m.value,h.value]:m.value);var r=D(n);c(r)},F=function(){v.value&&(y.value=v.value["client".concat(b.value?"Height":"Width")])},T=t.ref(!1),I=function(){var t;e.range?(j(u.value)?(m.value=Math.max(e.min||0,u.value[0]),h.value=Math.min(e.max||100,u.value[1])):(m.value=e.min||0,h.value=e.max||100),t="".concat(m.value,"-").concat(h.value)):(Ho(u.value)?m.value=Math.min(e.max,Math.max(e.min,u.value)):m.value=e.min,t=String(m.value)),d.value&&d.value.setAttribute("aria-valuetext",t),F(),window.addEventListener("resize",F)},M=function(t){var n,r=t*S.value/100;(r=e.min+r,e.range||!f.value)?("button1"===(n=Math.abs(k.value-r)h.value?"button1":"button2")&&f.value&&f.value.setPosition(t),"button2"===n&&p.value&&p.value.setPosition(t)):f.value.setPosition(t)},A=function(){var t=e.range?[m.value,h.value]:m.value;return D(t)},B=function(t){var r;if(!n.value&&!g.value&&v.value){F();var o=0;if(b.value){o=(v.value.getBoundingClientRect().bottom-t.clientY)/y.value*100,M(o)}else{var a=v.value.getBoundingClientRect().left;o=(t.clientX-a)/y.value*100,M(o)}var l=A();null===(r=e.onChangeEnd)||void 0===r||r.call(e,l)}},L=function(t){var r;if(!n.value&&!g.value){F();var o=Number(t/S.value*100);M(o),E(t);var a=A();null===(r=e.onChangeEnd)||void 0===r||r.call(e,a)}};t.watch((function(){return u.value}),(function(t){if(!0!==g.value)if(j(t)&&e.range){var n=Ha(t,2);m.value=n[0],h.value=n[1]}else m.value=t})),t.watch([m,h,g],(function(t,n){t[0]!==n[0]&&(e.range?E([k.value,N.value]):E(m.value)),t[1]!==n[1]&&e.range&&E([k.value,N.value]),t[2]!==n[2]&&!1===t[2]&&I()})),t.onMounted((function(){I(),T.value=!0})),t.onBeforeUnmount((function(){window.removeEventListener("resize",F)}));var R,z,H,W=t.computed((function(){return{max:e.max,min:e.min,marks:e.marks,vertical:b.value,prefixName:r.value}})),K=(z=(R=W).value.prefixName,H=t.computed((function(){var e=R.value;if(!e.marks)return[];var t=[];if(j(e.marks)){var n=Mr(e.marks).sort((function(e,t){return e-t})),r=Math.max.apply(Math,i(n).concat([e.max])),o=Math.min.apply(Math,i(n).concat([e.min]));o= props min"),r>e.max&&eh("TSlider","marks max value should <= props max"),n.forEach((function(e){t.push({point:e,position:(e-o)/(r-o)*100,mark:e})}))}else Object.keys(e.marks).map(parseFloat).sort((function(e,t){return e-t})).filter((function(t){return t<=e.max&&t>=e.min})).forEach((function(n){var r={point:n,position:100*(n-e.min)/(e.max-e.min),mark:e.marks[n]};t.push(r)}));return t})),function(e){return H.value.length?t.createVNode("div",null,[t.createVNode("div",{class:"".concat(z,"__stops")},[H.value.map((function(e,n){return 0===e.position||100===e.position?null:t.createVNode("div",{class:"".concat(z,"__stop ").concat(z,"__mark-stop"),style:xj(e.position,R.value.vertical),key:n},null)}))]),t.createVNode("div",{class:"".concat(z,"__mark")},[H.value.map((function(n,r){return t.createVNode(Dj,{mark:n.mark,point:n.point,key:r,style:xj(n.position,R.value.vertical),onClickMarkPoint:e},null)}))])]):null}),U=function(e){var n=e.value.prefixName,r=t.computed((function(){var t,n={format:void 0,placeholder:"",theme:"column",decimalPlaces:(null===(t=e.value.step.toString().split(".")[1])||void 0===t?void 0:t.length)||0},r=e.value;if(!Mo(r.inputNumberProps)){var o,a=null===(o=r.inputNumberProps)||void 0===o?void 0:o.theme;n=Fj(Fj({},n),ta(r.inputNumberProps,"onChange")),["column","row","normal"].includes(a)&&(n.theme=a)}return n})),o=t.computed((function(){return["".concat(n,"__input"),{"is-vertical":e.value.vertical}]}));return function(n,a){return t.createVNode(Hy,t.mergeProps(r.value,{class:o.value,value:n,step:e.value.step,onChange:function(t,n){var r,o;void 0===t||isNaN(t)||a(t),null===(r=e.value)||void 0===r||null===(r=r.inputNumberProps)||void 0===r||null===(o=r.onChange)||void 0===o||o.call(r,t,n)},disabled:e.value.disabled,min:e.value.min,max:e.value.max}),null)}}(t.computed((function(){return{max:e.max,min:e.min,inputNumberProps:e.inputNumberProps,step:e.step,prefixName:r.value,vertical:b.value,disabled:n.value}}))),Y=t.toRefs(e),$=Y.min,Z=Y.max,q=Y.step;return t.provide(_j,t.reactive({min:$,max:Z,step:q,dragging:g,toggleDragging:function(e){g.value=e},precision:V,disabled:n,resetSize:F,sliderSize:y})),function(){return t.createVNode("div",{class:w.value,ref:d},[t.createVNode("div",{class:O.value,role:"slider","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-orientation":e.layout,"aria-disabled":n.value,"tooltip-props":e.tooltipProps},[t.createVNode("div",{class:C.value,style:x.value,onClick:B,ref:v},[t.createVNode("div",{class:"".concat(r.value,"__track"),style:P.value},null),t.createVNode(Vj,{vertical:b.value,value:m.value,ref:f,disabled:n.value,range:e.range,position:"start","tooltip-props":e.tooltipProps,label:e.label,onInput:function(e){m.value=e},onMouseup:function(){var t,n=A();null===(t=e.onChangeEnd)||void 0===t||t.call(e,n)}},null),e.range&&t.createVNode(Vj,{vertical:b.value,value:h.value,ref:p,disabled:n.value,label:e.label,range:e.range,position:"end","tooltip-props":e.tooltipProps,onInput:function(e){h.value=e},onMouseup:function(){var t,n=A();null===(t=e.onChangeEnd)||void 0===t||t.call(e,n)}},null),e.showStep&&t.createVNode("div",{class:"".concat(r.value,"__stops")},[_.value.map((function(e,n){return 0===e.position||100===e.position?null:t.createVNode("div",{class:"".concat(r.value,"__stop"),key:n,style:xj(e,b.value)},null)}))]),K(L)])]),T.value&&e.inputNumberProps&&(o=D(m.value),a=D(h.value),t.createVNode("div",{class:["".concat(r.value,"__input-container"),{"is-vertical":b.value}]},[U(o,(function(e){m.value=D(e)})),e.range&&t.createVNode("div",{class:"".concat(r.value,"__center-line")},null),e.range&&U(a,(function(e){h.value=D(e)}))]))]);var o,a}}}),Mj=pi(Ij),Aj=pi(Vj),Bj={beforeChange:{type:Function},customValue:{type:Array},disabled:{type:Boolean,default:void 0},label:{type:[Array,Function],default:function(){return[]}},loading:Boolean,size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},value:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},defaultValue:{type:[String,Number,Boolean]},onChange:Function},Lj=t.defineComponent({name:"TSwitch",props:Bj,setup:function(e,n){var r=n.slots,o=Oi(),a=Qa("switch"),l=el(),i=l.STATUS,u=l.SIZE,c=t.toRefs(e),d=Ha(qm(c.value,c.modelValue,e.defaultValue,e.onChange),2),v=d[0],f=d[1],p=t.computed((function(){return!(e.customValue&&e.customValue.length>0)||e.customValue[0]})),m=t.computed((function(){return!!(e.customValue&&e.customValue.length>1)&&e.customValue[1]}));function h(e){var t=v.value===p.value?m.value:p.value;f(t,{e:e})}function g(t){o.value||e.loading||(e.beforeChange?Promise.resolve(e.beforeChange()).then((function(e){e&&h(t)})).catch((function(e){throw new Error("Switch: some error occurred: ".concat(e))})):h(t))}var y=t.computed((function(){return["".concat(a.value),u.value[e.size],s(s(s({},i.value.disabled,o.value),i.value.loading,e.loading),i.value.checked,v.value===p.value||e.modelValue===p.value)]})),b=t.computed((function(){return["".concat(a.value,"__handle"),s(s({},i.value.disabled,o.value),i.value.loading,e.loading)]})),w=t.computed((function(){return["".concat(a.value,"__content"),u.value[e.size],s({},i.value.disabled,o.value)]}));t.watch(v,(function(t){if(e.customValue&&e.customValue.length&&!e.customValue.includes(t))throw new Error("value is not in ".concat(JSON.stringify(e.customValue)))}),{immediate:!0});var O=t.computed((function(){if(H(e.label))return e.label(t.h,{value:v.value});if(Do(e.label))return e.label;if(j(e.label)&&e.label.length){var n=v.value===p.value?e.label[0]:e.label[1];if(!n)return;if(Do(n))return n;if(H(n))return n(t.h)}return r.label?r.label({value:v.value}):null}));return function(){var n,r;return e.loading?r=t.createVNode(mi,{size:"small"},null):O.value&&(n=O.value),t.createVNode("div",{class:y.value,onClick:g},[t.createVNode("span",{class:b.value},[r]),t.createVNode("div",{class:w.value},[n])])}}}),Rj=pi(Lj),zj=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function Hj(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;Tj||(Tj=document.createElement("textarea"),document.body.appendChild(Tj));var r=function(e){if("undefined"!=typeof window&&e){var t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing")||t.getPropertyValue("-moz-box-sizing")||t.getPropertyValue("-webkit-box-sizing"),r=parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),o=parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width"));return{sizingStyle:zj.map((function(e){return"".concat(e,":").concat(t.getPropertyValue(e))})).join(";"),paddingSize:r,borderSize:o,boxSizing:n}}}(e),o=r.paddingSize,a=r.borderSize,l=r.boxSizing,i=r.sizingStyle;Tj.setAttribute("style","".concat(i,";").concat("\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow-y:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n")),Tj.value=e.value||e.placeholder||"";var u=Tj.scrollHeight,c={};"border-box"===l?u+=a:"content-box"===l&&(u-=o),Tj.value="";var s=Tj.scrollHeight-o;if(null!==t){var d=s*t;"border-box"===l&&(d=d+o+a),u=Math.max(d,u),c.minHeight="".concat(d,"px")}if(null!==n){var v=s*n;"border-box"===l&&(v=v+o+a),u=Math.min(v,u)}return c.height="".concat(u,"px"),Tj.parentNode&&Tj.parentNode.removeChild(Tj),Tj=null,c}var Wj={allowInputOverMax:Boolean,autofocus:Boolean,autosize:{type:[Boolean,Object],default:!1},disabled:{type:Boolean,default:void 0},maxcharacter:{type:Number},maxlength:{type:[String,Number]},name:{type:String,default:""},placeholder:{type:String,default:void 0},readonly:{type:Boolean,default:void 0},status:{type:String,default:"default",validator:function(e){return!e||["default","success","warning","error"].includes(e)}},tips:{type:[String,Function]},value:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number]},onBlur:Function,onChange:Function,onFocus:Function,onKeydown:Function,onKeypress:Function,onKeyup:Function,onValidate:Function},Kj=t.defineComponent({name:"TTextarea",inheritAttrs:!1,props:Wj,setup:function(e,n){var r=n.attrs,o=n.expose,a=Qa(),l=Qa("textarea"),i=t.computed((function(){return"".concat(l.value,"__tips")})),c=t.computed((function(){return"".concat(l.value,"__limit")})),d=t.toRefs(e),v=Ha(qm(d.value,d.modelValue,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=Oi(),h=ey(),g=t.ref({}),y=t.ref(),b=t.ref(!1),w=t.ref(!1),O=function(){var t;if(!0===e.autosize)g.value=Hj(y.value);else if(e.autosize&&"object"===u(e.autosize)){var n=e.autosize,o=n.minRows,a=n.maxRows;g.value=Hj(y.value,o,a)}else r.rows?g.value={height:"auto",minHeight:"auto"}:r.style&&null!==(t=y.value)&&void 0!==t&&null!==(t=t.style)&&void 0!==t&&t.height&&(g.value={height:y.value.style.height})},C=function(n){var r=n.target.value;if(e.maxcharacter&&e.maxcharacter>=0){var o=il(r,e.maxcharacter);r="object"===u(o)&&o.characters}!w.value&&p(r,{e:n}),t.nextTick((function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=y.value,n=String(e);t&&t.value!==n&&(t.value=n,f.value=n)}(r)})),O()},x=function(e){C(e)},P=function(){w.value=!0},j=function(e){w.value=!1,C(e)},S=function(t,n){var r;if(!m.value){var o="on".concat(t[0].toUpperCase()).concat(t.slice(1));null===(r=e[o])||void 0===r||r.call(e,f.value,{e:n})}},k=function(e){S("keydown",e)},N=function(e){S("keyup",e)},_=function(e){S("keypress",e)},V=function(t){var n;O(),m.value||(b.value=!0,null===(n=e.onFocus)||void 0===n||n.call(e,f.value,{e:t}))},D=t.inject(oy,void 0),F=function(t){var n;t.target&&(O(),b.value=!1,null===(n=e.onBlur)||void 0===n||n.call(e,f.value,{e:t}),null==D||D.handleBlur())},T=t.computed((function(){return[l.value,s(s({},"".concat(a.value,"-is-disabled"),m.value),"".concat(a.value,"-is-readonly"),h.value)]})),I=t.computed((function(){return ol({autofocus:e.autofocus,disabled:m.value,readonly:h.value,placeholder:e.placeholder,maxlength:!e.allowInputOverMax&&e.maxlength||void 0,name:e.name||void 0})})),M=t.computed((function(){var e=il(String(f.value||""));return"object"===u(e)?e.length:e})),A=ay(t.computed((function(){return{value:[void 0,null].includes(f.value)?void 0:String(f.value),status:e.status,maxlength:Number(e.maxlength),maxcharacter:e.maxcharacter,allowInputOverMax:e.allowInputOverMax,onValidate:e.onValidate}}))).tStatus;t.watch((function(){return f.value}),(function(){return O()})),t.watch(y,(function(e){e&&O()})),t.watch((function(){return e.autofocus}),(function(e){e&&y.value.focus()})),t.watch(g,(function(e){var t=r.style;E(t)?tl(y.value,Go(t,e)):tl(y.value,e)})),t.watch(f,(function(){t.nextTick((function(){return O()}))})),t.watch((function(){return e.autosize}),O,{deep:!0}),o({focus:function(){var e;return null===(e=y.value)||void 0===e?void 0:e.focus()},blur:function(){var e;return null===(e=y.value)||void 0===e?void 0:e.blur()}}),t.onMounted((function(){O()}));var B=ei();return function(){var n,o=ol({onFocus:V,onBlur:F,onKeydown:k,onKeyup:N,onKeypress:_}),d=el().STATUS,v=t.computed((function(){return["".concat(l.value,"__inner"),s(s(s(s({},"".concat(a.value,"-is-").concat(A.value),A.value),d.value.disabled,m.value),d.value.focused,b.value),"".concat(a.value,"-resize-none"),"object"===u(e.autosize)),"narrow-scrollbar"]})),p=B("tips"),h=p&&t.createVNode("div",{class:"".concat(i.value," ").concat(l.value,"__tips--").concat(e.status||"normal")},[p]),g=e.maxcharacter&&t.createVNode("span",{class:c.value},["".concat(M.value,"/").concat(e.maxcharacter)])||!e.maxcharacter&&e.maxlength&&t.createVNode("span",{class:c.value},["".concat(f.value?null===(n=String(f.value))||void 0===n?void 0:n.length:0,"/").concat(e.maxlength)]);return t.createVNode("div",t.mergeProps({class:T.value},ta(r,["style"])),[t.createVNode("textarea",t.mergeProps({onInput:x,onCompositionstart:P,onCompositionend:j,ref:y,value:f.value,class:v.value},o,I.value),null),h||g?t.createVNode("div",{class:["".concat(l.value,"__info_wrapper"),s({},"".concat(l.value,"__info_wrapper_align"),!h)]},[h,g]):null])}}}),Uj=pi(Kj);function Yj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var $j="source",Zj="target";function qj(e){return j(e)?{source:e[0],target:e[1]}:{source:e,target:e}}function Xj(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.isTreeMode,o=void 0!==r&&r,a=n.include,l=void 0===a||a,i=n.remainValue,u=void 0===i?[]:i;if(o){var c=[];if(e)for(var s=0;s0){var f=Xj(d.children,t,{isTreeMode:o,include:l});c=c.concat(f)}else(l&&v||!l&&!v)&&c.push(d.value)}return c}return e.filter((function(e){if(!e)return!1;var n=t.includes(e.value);return(l&&n||!l&&!n)&&(!e.disabled||u.includes(e.value))})).map((function(e){return e.value}))}function Gj(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=e.map((function(e,r){var o,a=(null==t?void 0:t.label)||"label",l=(null==t?void 0:t.value)||"value",i=(null==t?void 0:t.disabled)||"disabled";if(Uo(e[a]))throw new Error("".concat(a," is not in DataOption ").concat(JSON.stringify(e)));if(Uo(e[l]))throw new Error("".concat(l," is not in DataOption ").concat(JSON.stringify(e)));var u={label:e[a],value:e[l],key:"key__value_".concat(e[l],"_index_").concat(r),disabled:null!==(o=e[i])&&void 0!==o&&o,data:e};return n&&e.children&&(u.children=Gj(e.children,t,!0)),u}));return r}function Jj(e,t,n){var r;return e?t.includes(e.value)?n:null!==(r=e.children)&&void 0!==r&&r.length?e.children.some((function(e){return Jj(e,t,n)})):!n:!n}function Qj(e,t,n,r){e.forEach((function(e){var o;!function(e,t,n){return!!t.includes(e.value)&&n}(e,n,r)?Jj(e,n,r)&&(o=function(e){for(var t=1;t2&&void 0!==arguments[2])||arguments[2];if(!(arguments.length>3&&void 0!==arguments[3]&&arguments[3]))return n?t.map((function(t){return e.find((function(e){return e.value===t}))})).filter((function(e){return!!e})):e.filter((function(e){return!t.includes(e.value)}));var r=[];return Qj(e,r,t,n),r}function tS(e){var t=0;return e.forEach((function(e){e.children&&e.children.length>0?t+=tS(e.children):t+=1})),t}var nS=t.defineComponent({name:"TTransferSearch",props:{value:{type:String,default:""},search:{type:[Boolean,Object],default:!1},placeholder:{type:String,default:""},onChange:Function},setup:function(e){var n=Qa(),r=up({SearchIcon:Ud}).SearchIcon,o=function(t,n){var r,o=n.e,a=n.trigger;null===(r=e.onChange)||void 0===r||r.call(e,{value:t,e:o,trigger:a})},a="object"===u(e.search)?e.search:{clearable:!0};return function(){return t.createVNode("div",{class:"".concat(n.value,"-transfer__search-wrapper")},[t.createVNode(my,t.mergeProps(a,{defaultValue:e.value,onChange:o,placeholder:e.placeholder}),{default:function(){return[t.createVNode(r,{slot:"suffix-icon"},null)]}})])}}});function rS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function oS(e){for(var t=1;t-1}))})),m=t.computed((function(){return p.value&&p.value.length||0})),h=t.computed((function(){var t=p.value;if(!e.pagination)return t;if(0===f.value)return t;var n=(v.value-1)*f.value,r=v.value*f.value;return t=t.slice(n,r)})),g=t.computed((function(){return"object"===u(e.pagination)?oS(oS(oS({},{totalContent:!1,pageSizeOptions:[]}),e.pagination),{},{size:"small",theme:"simple",current:v.value,total:m.value,pageSize:f.value}):{}})),y=function(e,n,r){var o=t.ref(null),a=t.ref(null),l=t.ref(null);return{onDragStart:function(e){var t=Number(e.target.dataset.index);o.value=t},onDragEnd:function(){o.value=null,a.value=null,l.value=""},onDrop:function(t){t.preventDefault();var u=o.value,c=a.value;if(o.value=null,a.value=null,l.value="",u!==c){var s=i(e.value),d=n.value[u].value,v=n.value[c].value,f=s.indexOf(d),p=s.indexOf(v);s.splice(f,1),"bottom"===l.value&&(p+=1),s.splice(p,0,d),null==r||r(s,[d,v])}},onDragOver:function(e){if(e.preventDefault(),e.currentTarget){var t=e.currentTarget,n=Number(t.dataset.index),r=t.offsetHeight,i=e.clientY-t.getBoundingClientRect().top,u=.3*r;if(a.value=n,a.value===o.value)return void(l.value="");l.value=ir-u?"bottom":"center"}},onDragLeave:function(){l.value="",a.value=null}}}(r,h,e.onDataChange),b=y.onDragStart,w=y.onDragEnd,O=y.onDrop,C=y.onDragOver,x=y.onDragLeave,P=t.computed((function(){var t=Xj(e.dataSource,[],{isTreeMode:e.isTreeMode,include:!1});return e.checkedValue.length>0&&(e.isTreeMode?t.every((function(t){return e.checkedValue.includes(t)})):(e.search?p.value:e.dataSource).every((function(t){return t.disabled||e.checkedValue.includes(t.value)})))})),S=t.computed((function(){return!P.value&&e.checkedValue.length>0})),k=t.computed((function(){return tS(e.dataSource)}));t.watch(k,(function(e){if(e<=(v.value-1)*f.value){var t=Math.ceil(e/f.value);s.value=t}}));var N=function(e,t){var n,r;return n=Mr(e),r=function(e){return!!e.label.toLowerCase().includes(t.toLowerCase())||!!(e.children&&e.children.length>0&&(e.children=N(e.children,t),e.children.length>0))},(j(n)?Zn:_o)(n,ao(r))},_=function(t){var n;null===(n=e.onPageChange)||void 0===n||n.call(e,t),s.value=t.current,d.value=t.pageSize},V=function(t){var n;null===(n=e.onCheckedChange)||void 0===n||n.call(e,t)},D=function(t){if(t){var n=Xj(e.search?p.value:e.dataSource,[],{isTreeMode:e.isTreeMode,include:!1});V(n)}else V([])},E=function(t){var n;null===(n=e.onScroll)||void 0===n||n.call(e,t)},F=function(t){var n,r={query:t.value,type:e.listType,e:t.e,trigger:t.trigger};c.value=t.value,null===(n=e.onSearch)||void 0===n||n.call(e,r)},T=ti(),I=function(){var r,o,a=e.draggable&&e.listType===Zj,l=null;a?l=t.createVNode(kw,{value:e.checkedValue,onChange:V},aS(r=h.value.map((function(r,o){var l;return t.createVNode("div",{draggable:a,onDragend:w,onDragstart:b,onDragover:C,onDragleave:x,onDrop:O,"data-index":o},[t.createVNode(Sw,t.mergeProps({disabled:e.disabled||r.disabled,value:r.value,needRipple:!0,class:["".concat(n.value,"-transfer__list-item"),e.checkedValue.includes(r.value)?"".concat(n.value,"-is-checked"):""],key:r.key},e.checkboxProps),aS(l=T("transferItem",{defaultNode:t.createVNode("span",null,[r.label]),params:{data:r.data,index:o,type:e.listType}}))?l:{default:function(){return[l]}})])})))?r:{default:function(){return[r]}}):l=t.createVNode(kw,{value:e.checkedValue,onChange:V},aS(o=h.value.map((function(r,o){var a;return t.createVNode(Sw,t.mergeProps({disabled:e.disabled||r.disabled,value:r.value,needRipple:!0,class:["".concat(n.value,"-transfer__list-item"),e.checkedValue.includes(r.value)?"".concat(n.value,"-is-checked"):""],key:r.key},e.checkboxProps),aS(a=T("transferItem",{defaultNode:t.createVNode("span",null,[r.label]),params:{data:r.data,index:o,type:e.listType}}))?a:{default:function(){return[a]}})})))?o:{default:function(){return[o]}});return t.createVNode("div",{class:["".concat(n.value,"-transfer__list-content"),"narrow-scrollbar"],onScroll:E},[T("tree",{defaultNode:l,params:{data:h.value,value:e.checkedValue,onChange:V}})])},M=function(){var r=e.empty||a(l.value.empty),o=Do(r)?t.createVNode("span",null,[r]):null;return t.createVNode("div",{class:"".concat(n.value,"-transfer__empty")},[T("empty",{defaultNode:o,params:{type:e.listType}})])},A=function(){var r=Do(e.footer)?t.createVNode("div",{class:"".concat(n.value,"-transfer__footer")},[e.footer]):null;return T("footer",{defaultNode:r,params:{type:e.listType}})};return function(){return t.createVNode("div",{class:["".concat(n.value,"-transfer__list"),"".concat(n.value,"-transfer__list-").concat(e.listType)]},[t.createVNode("div",{class:"".concat(n.value,"-transfer__list-header")},[t.createVNode("div",null,[e.checkAll&&t.createVNode(Sw,{disabled:e.disabled||!e.dataSource.length,checked:P.value,indeterminate:S.value,onChange:D},null),t.createVNode("span",null,[a(l.value.title,{checked:e.checkedValue.length,total:k.value})])]),(r=e.title&&Do(e.title)?t.createVNode("template",null,[e.title]):null,o=T("title",{defaultNode:r,params:{type:e.listType}}),t.createVNode("span",null,[o]))]),t.createVNode("div",{class:["".concat(n.value,"-transfer__list-body"),e.search?"".concat(n.value,"-transfer__list--with-search"):""]},[e.search&&t.createVNode(nS,{searchValue:c.value,placeholder:a(l.value.placeholder),onChange:F,disabled:e.disabled,search:e.search},null),h.value.length>0?I():M()]),e.pagination&&f.value>0&&m.value>0&&t.createVNode("div",{class:"".concat(n.value,"-transfer__list-pagination")},[t.createVNode(uO,t.mergeProps(g.value,{onChange:_}),null)]),A()]);var r,o}}}),uS={checkboxProps:{type:Object},checked:{type:Array,default:void 0},defaultChecked:{type:Array,default:function(){return[]}},data:{type:Array,default:function(){return[]}},direction:{type:String,default:"both",validator:function(e){return!e||["left","right","both"].includes(e)}},disabled:{type:[Boolean,Array],default:void 0},empty:{type:[String,Array,Function],default:""},footer:{type:[Array,Function]},keys:{type:Object},operation:{type:[Array,Function]},pagination:{type:[Object,Array]},search:{type:[Boolean,Object,Array],default:!1},showCheckAll:{type:[Boolean,Array],default:!0},targetDraggable:Boolean,targetSort:{type:String,default:"original",validator:function(e){return!e||["original","push","unshift"].includes(e)}},title:{type:[Array,Function],default:function(){return[]}},transferItem:{type:Function},value:{type:Array,default:void 0},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:function(){return[]}},onChange:Function,onCheckedChange:Function,onPageChange:Function,onScroll:Function,onSearch:Function},cS=t.defineComponent({name:"TTransferOperations",props:{leftDisabled:{type:Boolean,required:!0},rightDisabled:{type:Boolean,required:!0},operation:uS.operation},emits:["moveToRight","moveToLeft"],setup:function(e,n){var r=n.slots,o=n.emit,a=Qa(),l=up({ChevronRightIcon:uc,ChevronLeftIcon:$u}),i=l.ChevronRightIcon,u=l.ChevronLeftIcon,c=function(){o("moveToRight")},s=function(){o("moveToLeft")},d=function(){return t.createVNode(i,null,null)},v=function(){return t.createVNode(u,null,null)},f=function(t){return H(e.operation)||"right"===t&&e.operation&&H(e.operation[0])||"left"===t&&e.operation&&H(e.operation[1])||r.operation?null:"left"===t?v:d},p=function(t,n){if(H(r.operation))return r.operation({direction:n});var o;if(H(e.operation))return(0,e.operation)(t,{direction:n});if(j(e.operation)){var a=Ha(e.operation,2),l=a[0],i=a[1];o="right"===n?i:l}else o="";return o};return function(){return t.createVNode("div",{class:"".concat(a.value,"-transfer__operations")},[t.createVNode(ji,{variant:"outline",size:"small",shape:j(e.operation)&&Do(e.operation[1])?"rectangle":"square",key:e.rightDisabled?"right-outline":"right-base",disabled:e.rightDisabled,onClick:c,icon:f("right")},{default:function(){return[r.operation||j(e.operation)&&e.operation[1]?p(t.h,"right"):null]}}),t.createVNode(ji,{variant:"outline",size:"small",shape:j(e.operation)&&Do(e.operation[0])?"rectangle":"square",key:e.rightDisabled?"left-outline":"left-base",disabled:e.leftDisabled,onClick:s,icon:f("left")},{default:function(){return[r.operation||j(e.operation)&&e.operation[0]?p(t.h,"left"):null]}})])}}});var sS=t.defineComponent({name:"TTransfer",props:uS,setup:function(e,n){var r=n.slots,o=Oi(),a=Qa(),l=t.toRefs(e),u=l.value,c=l.modelValue,d=l.checked,v=Ha(qm(u,c,e.defaultValue,e.onChange),2),f=v[0],p=v[1],m=Ha(Um(d,e.defaultChecked,e.onCheckedChange,"checked"),1)[0],h=t.computed((function(){return f.value})),g=t.computed((function(){return H(r.tree)})),y=t.computed((function(){return"right"===e.direction})),b=t.computed((function(){return"left"===e.direction})),w=t.computed((function(){return Gj(e.data,e.keys,g.value)})),O=t.computed((function(){return eS(w.value,h.value,!1,g.value)})),C=t.computed((function(){return eS(w.value,h.value,!0,g.value)})),x=t.computed((function(){return s(s({},$j,Xj(O.value,m.value,{isTreeMode:g.value})),Zj,Xj(C.value,m.value,{isTreeMode:g.value}))})),P=t.computed((function(){return!!r.footer||!!e.footer})),j=t.computed((function(){return!!e.pagination&&!r.content})),S=t.computed((function(){return!!e.search})),k=t.computed((function(){return qj(e.footer||"")})),N=t.computed((function(){return qj(e.empty)})),_=t.computed((function(){return qj(e.search)})),V=t.computed((function(){return qj(e.showCheckAll)})),D=t.computed((function(){return qj(o.value)})),E=t.computed((function(){return qj(e.title)})),F=t.computed((function(){return qj(e.pagination)})),T=function(t,n){var r,o=n===$j?t:x.value[$j],a=n===Zj?t:x.value[Zj],l=[].concat(i(o),i(a)),u={checked:l,sourceChecked:o,targetChecked:a,type:n};m.value=l,null===(r=e.onCheckedChange)||void 0===r||r.call(e,u)},I=function(t){var n,r=JSON.parse(JSON.stringify(h.value)),o=t===Zj?x.value[$j]:x.value[Zj];if(t===$j)n=r.filter((function(e){return!o.includes(e)}));else if("original"===e.targetSort){var a=w.value.reduce((function(e,t){return r.includes(t.value)&&t.disabled?e.concat(t.value):e}),[]);n=Xj(w.value,r.concat(o),{isTreeMode:g.value,remainValue:a})}else n="unshift"===e.targetSort?o.concat(r):r.concat(o);T([],t===$j?Zj:$j),p(n,{type:t,movedValue:o})},M=function(){I(Zj)},A=function(){I($j)},B=function(t){var n;null===(n=e.onSearch)||void 0===n||n.call(e,t)},L=function(e,t){p(e,{type:Zj,movedValue:t})},R=function(n){var o,a=xa(r,["title","empty","footer","operation","transferItem","default","tree"]);return t.createVNode(iS,{checkboxProps:e.checkboxProps,transferItem:e.transferItem,"list-type":n,title:E.value[n],"data-source":n===$j?O.value:C.value,"checked-value":x.value[n],disabled:D.value[n],search:_.value[n],pagination:F.value[n],"check-all":V.value[n],footer:k.value[n],empty:N.value[n],onCheckedChange:function(e){return T(e,n)},onScroll:function(t){return function(t,n){var r,o=t.target,a={e:t,bottomDistance:o.scrollHeight-o.scrollTop-o.clientHeight,type:n};null===(r=e.onScroll)||void 0===r||r.call(e,a)}(t,n)},onSearch:B,onPageChange:function(t){return function(t,n){var r;null===(r=e.onPageChange)||void 0===r||r.call(e,t,{type:n})}(t,n)},isTreeMode:g.value,onDataChange:L,currentValue:h.value,draggable:e.targetDraggable&&n===Zj},"function"==typeof(o=a)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?a:{default:function(){return[a]}})};return function(){return t.createVNode("div",{class:["".concat(a.value,"-transfer"),S.value?"".concat(a.value,"-transfer__search"):"",P.value?"".concat(a.value,"-transfer__footer"):"",j.value?"".concat(a.value,"-transfer__pagination"):"",g.value?"".concat(a.value,"-transfer--with-tree"):""]},[R($j),t.createVNode(cS,{leftDisabled:D.value[Zj]||y.value||0===x.value[Zj].length,rightDisabled:D.value[$j]||b.value||0===x.value[$j].length,operation:e.operation,onMoveToRight:M,onMoveToLeft:A},{operation:r.operation}),R(Zj)])}}}),dS=pi(sS);function vS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fS(e){for(var t=1;to&&-1===u&&(u=p)-f.value.bufferSize>0&&(i=v-g-Da(l)),-1===u&&(l.push(g),l.length>f.value.bufferSize&&l.shift()),-1===d&&(v>s.value+o||p===n.value.data.length-1)&&(d=p),-1!==u&&-1!==d)break}var y,b=(y=[u-f.value.bufferSize,0])&&y.length?qo(y,z,Vo):void 0,w=function(e){return e&&e.length?qo(e,z,Zo):void 0}([d+f.value.bufferSize,n.value.data.length]);return{startIndex:b,endIndex:w,translateY:i-Da(c.slice(0,Math.min(b,a)))}}var h=Ea((function(){var e=m(),t=e.startIndex,r=e.endIndex,o=e.translateY,i=Ha(f.value.fixedRows,2),u=i[0],c=i[1],s=u?n.value.data.slice(0,u):[];u&&t0&&(d=d.slice(p)),v.value.join()!==[t,r].join()&&t>=0&&(l.value=o,a.value=s.concat(n.value.data.slice(t,r),d),v.value=[t,r])}),100),g=function(t){var n=t.index,r=t.top,o=void 0===r?0:r,a=t.behavior,l=Da(c.slice(0,n+1))-o;e.value.scrollTo({top:l,behavior:a||"auto"})};return mh(t.computed((function(){return p.value?e.value:void 0})),(function(t){var r=Ha(t,1)[0].contentRect;if(!n.value.preventResizeRefresh){Math.abs(r.width-d.value)>16&&e.value&&(e.value.scrollTop=0,l.value=0),d.value=r.width,s.value=r.height}})),t.watch((function(){return[i(n.value.data),f.value,p.value,e.value]}),(function(){if(p.value&&e.value){if(function(e){e.forEach((function(e,t){e.VIRTUAL_SCROLL_INDEX=t}))}(n.value.data),s.value=e.value.getBoundingClientRect().height,c.length!==n.value.data.length){var t=Array.from(c);t.length=n.value.data.length,t.fill(f.value.rowHeight||47),c=t}u.value=Da(c),v.value=[0,0],h()}}),{immediate:!0}),t.watch((function(){return s.value}),(function(){h()})),{visibleData:a,translateY:l,scrollHeight:u,isVirtualScroll:p,handleScroll:function(){p.value&&h()},handleRowMounted:function(t){var n;if(p.value&&t&&!f.value.isFixedRowHeight&&e.value){var r=(null===(n=t.ref.value)||void 0===n?void 0:n.getBoundingClientRect().height)||f.value.rowHeight,o=t.data.VIRTUAL_SCROLL_INDEX;if(c[o]!==r){var a=r-c[o];c[o]=r,u.value=u.value+a}}},scrollToElement:function(e){if(g(e),!f.value.isFixedRowHeight)var t,n=null!==(t=e.time)&&void 0!==t?t:60,r=setTimeout((function(){g(e),clearTimeout(r)}),n)}}},xS={name:"TTreeNode",inject:{onDrag:{default:void 0}}};function PS(e){return r.h}function jS(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"value",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"defaultValue",o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"onChange",a=t.modelValue;return"value"===n?qm(t[n],a,e[r],e[o],n):Um(t[n],e[r],e[o],n)}var SS=function(e){return e[e.Before=-1]="Before",e[e.Inside=0]="Inside",e[e.After=1]="After",e}(SS||{});function kS(e){var n=e.treeItemRef,r=t.reactive({isDragOver:!1,isDragging:!1,dropPosition:0}),o=function(t,n){var o,l,i,u,c,s=e.node,d=e.treeScope.drag;if(d)switch(t){case"dragStart":r.isDragging=!0,r.dropPosition=0,null===(o=d.handleDragStart)||void 0===o||o.call(d,{node:s,dragEvent:n});break;case"dragEnd":r.isDragging=!1,r.isDragOver=!1,r.dropPosition=0,a.cancel(),null===(l=d.handleDragEnd)||void 0===l||l.call(d,{node:s,dragEvent:n});break;case"dragOver":r.isDragOver=!0,a(n),null===(i=d.handleDragOver)||void 0===i||i.call(d,{node:s,dragEvent:n});break;case"dragLeave":r.isDragOver=!1,r.dropPosition=0,a.cancel(),null===(u=d.handleDragLeave)||void 0===u||u.call(d,{node:s,dragEvent:n});break;case"drop":null===(c=d.handleDrop)||void 0===c||c.call(d,{node:s,dropPosition:r.dropPosition,dragEvent:n}),r.isDragOver=!1,a.cancel()}},a=Ea((function(e){!function(e){var t,o=n.value;if(o){var a=null==o||null===(t=o.getBoundingClientRect)||void 0===t?void 0:t.call(o),l=window.scrollY+a.top,i=e.pageY,u=a.height/4,c=i-l;c3?o-3:0),l=3;l0,n=Mo(l.children)&&l.children;return f&&(t||n)}));if(l.vmCheckable){var b=!1;l.vmIsLocked&&!l.vmIsRest&&(b=!0),l.isDisabled()&&(b=!0);var w=BS(BS({},p),{},{disabled:b}),O=m;m=t.createVNode(Sw,{class:g,checked:l.checked,indeterminate:l.indeterminate,disabled:b,name:String(l.value),onChange:o,stopLabelTrigger:y.value,ignore:d.expandOnClickNode?"active":"expand,active",props:w},"function"==typeof(h=m)||"[object Object]"===Object.prototype.toString.call(h)&&!t.isVNode(h)?m:{default:function(){return[O]}})}else{var C=t.createVNode("span",{style:"position: relative"},[m]);m=l.isActivable()?t.createVNode("span",{key:"1",ref:"label",class:g,title:l.label},[C]):t.createVNode("span",{key:"2",class:g,title:l.label},[C])}return m}}}function RS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function zS(e){var n=e.treeScope,r=e.treeItemRef,o=n.virtualConfig,a=n.treeContentRef,l=n.scrollProps,i=Qa().value,u=Qa("tree").value,c=IS(e).handleClick,d=MS(e).renderIcon,v=LS(e).renderLabel,f=function(e){var n=Qa("tree").value;return{renderLine:function(r){var o=e.node,a=e.treeScope,l=a.scopedSlots,i=(null==a?void 0:a.treeProps)||{},u=i.line,c=!!i.icon,s=null;if(!0===u){if(null!=l&&l.line)s=l.line({node:null==o?void 0:o.getModel()});else if(o.parent&&o.tree){var d=o.vmIsLeaf,v=o.vmIsFirst,f=o.level,p=[];p.push("".concat(n,"__line")),!d&&c||p.push("".concat(n,"__line--leaf")),v&&c&&p.push("".concat(n,"__line--first"));var m=[],h=o.getParents();h.pop(),h.forEach((function(e,t){e.vmIsLast||m.push("calc(-".concat(t+1," * var(--space)) 0 var(--color)"))}));var g={"--level":f?String(f):void 0,"box-shadow":m.join(",")};s=t.createVNode("span",{class:p,style:g},null)}}else s=ES(u,{createElement:r,node:o});return s}}}(e),p=f.renderLine,m=function(e){var n=Qa("tree").value;return{renderOperations:function(r){var o=e.node,a=e.treeScope,l=a.scopedSlots,i=((null==a?void 0:a.treeProps)||{}).operations,u=null;return(u=null!=l&&l.operations?l.operations({node:null==o?void 0:o.getModel()}):ES(i,{createElement:r,node:o}))&&(u=t.createVNode("span",{class:"".concat(n,"__operations"),ignore:"active,expand"},[u])),u}}}(e),h=m.renderOperations,g=kS(e),y=g.dragStates,b=g.handleDragStart,w=g.handleDragEnd,O=g.handleDragOver,C=g.handleDragLeave,x=g.handleDrop,P=function(e,n,r){var o=t.computed((function(){return Math.max(r.rowHeight||48,48)})),a=t.ref(!1),l=t.computed((function(){return"lazy"===(null==r?void 0:r.type)&&!a.value})),i=!kl&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},u=function(){a.value||i((function(){a.value=!0}))};return t.onMounted((function(){"lazy"===(null==r?void 0:r.type)&&t.nextTick((function(){var t=Math.max(10,r.bufferSize||10),a=o.value*t;ww(n.value,e.value,u,a)}))})),{hasLazyLoadHolder:l,tRowHeight:o}}(a,r,t.reactive(function(e){for(var t=1;t0),"".concat(u,"__item--tip-highlight"),!r&&n&&0===o)),a}();return e.stateId=o.stateId,t.createVNode("div",{ref:"treeItemRef",class:v,"data-value":l,"data-level":a,style:d,onClick:function(e){return c(e)},draggable:r.isDraggable(),onDragstart:function(e){return b(e)},onDragend:function(e){return w(e)},onDragover:function(e){return O(e)},onDragleave:function(e){return C(e)},onDrop:function(e){return x(e)}},[j.value?[t.createVNode("div",null,null)]:N(n)])}}}function HS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function WS(e){for(var t=1;t=0&&("trigger"===e?c=!0:"ignore"===e&&(c=!1)),n.indexOf("active")>=0&&"ignore"===e&&(s=!1)})),c&&a(u),s&&l(u);var d={node:u.getModel(),e:o};_S(n,r,"click",d),t.mouseEvent=null}}}}(e),u=i.handleClick,c=i.handleChange,s=t.ref(!1),d=new Map,v=function(){o.value=n.getNodes()},f=function(){if(!(null==l?void 0:l.isVirtualScroll.value)){var e=[],t=!1;o.value.forEach((function(n){n.visible&&(t=!0,d.set(n.value,n.value)),d.has(n.value)&&e.push(n)})),d.forEach((function(e){n.getNode(e)||d.delete(e)})),a.value=e,s.value=!t}},p=function(){if(null==l?void 0:l.isVirtualScroll.value){var e=l.visibleData.value;a.value=e,s.value=e.length<=0}};return t.watch(o,f),t.watch(l.visibleData,p),v(),f(),p(),n.emitter.on("update",v),{nodesEmpty:s,renderTreeNodes:function(e){var n="render-".concat((new Date).getTime()),o=a.value.map((function(e,o){return function(e,n,o,a){var l=n.VIRTUAL_SCROLL_INDEX||o,i=n[iC];return t.createVNode(US,{key:i,rowIndex:l,stateId:a,itemKey:i,treeScope:r,onClick:u,onChange:c},null)}(0,e,o,n)}));return o}}}function $S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ZS(e){for(var t=1;t0&&c.replaceChecked(s.value),Array.isArray(v.value)&&v.value.length>0&&c.replaceExpanded(v.value),Array.isArray(d.value)&&d.value.length>0&&c.replaceActived(d.value),null!=n&&n.onLoad&&(null==n||n.onLoad(t)),r.emit("load",t)};return c.setConfig({keys:u}),f(),c.append(n.data||[]),c.refreshNodes(),Array.isArray(s.value)&&c.setChecked(s.value),p(),Array.isArray(d.value)&&c.setActived(d.value),c.emitter.on("load",b),c.emitter.on("update",g),e.setStore(c),t.watch((function(){return i(s.value||[])}),(function(e){c.replaceChecked(e)})),t.watch((function(){return i(v.value||[])}),(function(e){c.replaceExpanded(e)})),t.watch((function(){return i(d.value||[])}),(function(e){c.replaceActived(e)})),t.watch(o.filter,(function(e,t){y(e,t)})),t.watch(o.keys,(function(e){c.setConfig({keys:e})})),t.watch(o.expandAll,(function(e){if(e){var t=c.getNodes().filter((function(e){return Array.isArray(e.children)&&e.children.length})).map((function(e){return e.value}));c.setExpanded(t)}else c.replaceExpanded(h),h=null})),{store:c,rebuild:function(e){c.reload(e||[]),c.refreshNodes(),Array.isArray(s.value)&&c.setChecked(s.value),p(),Array.isArray(d.value)&&c.setActived(d.value),c.refreshState()},checkFilterExpand:y,updateStoreConfig:f,updateExpanded:p,expandFilterPath:g}}(s),p=f.store,m=f.updateStoreConfig,h=f.rebuild;!function(e){var t=e.props,n=e.context,r=e.scope,o=e.store,a=null,l={handleDragStart:function(e){var r=e.dragEvent,o=e.node;a=o;var l={node:o.getModel(),e:r};_S(t,n,"drag-start",l)},handleDragEnd:function(e){var r=e.dragEvent,o=e.node;a=o;var l={node:o.getModel(),e:r};_S(t,n,"drag-end",l)},handleDragOver:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};_S(t,n,"drag-over",o)},handleDragLeave:function(e){var r=e.dragEvent,o={node:e.node.getModel(),e:r};_S(t,n,"drag-leave",o)},handleDrop:function(e){var r,l=e.dragEvent,i=e.node,u=e.dropPosition;if(i.value!==a.value&&!i.getParents().some((function(e){return e.value===a.value}))){var c={dropNode:i.getModel(),dragNode:a.getModel(),dropPosition:u,e:l};!1!==(null===(r=t.allowDrop)||void 0===r?void 0:r.call(t,c))&&(o.getNodes().some((function(e){return e.value===i.value&&(u===SS.Inside?a.appendTo(o,e):u===SS.Before?i.insertBefore(a):i.insertAfter(a),!0)})),_S(t,n,"drop",c))}}};r.drag=l}(s);var g=TS(s),y=g.setActived,b=g.setExpanded,w=g.setChecked,O=qS(s),C=O.onInnerVirtualScroll,x=O.virtualConfig,P=O.scrollToElement,j=YS(s),S=j.renderTreeNodes,k=j.nodesEmpty,N=function(e){var n=e.props,r=Qa("tree").value,o=Qa().value,a=e.virtualConfig,l=e.isScrolling,i=e.refProps,u=i.height,c=i.maxHeight;return{treeClasses:t.computed((function(){var e=[r],t=n.disabled,i=n.hover,u=n.transition,c=n.checkable,s=n.draggable,d=n.expandOnClickNode,v=n.scroll;return t&&e.push("".concat(o,"-is-disabled")),i&&e.push("".concat(r,"--hoverable")),c&&e.push("".concat(r,"--checkable")),s&&e.push("".concat(r,"--draggable")),u&&e.push("".concat(r,"--transition")),d&&e.push("".concat(r,"--block-node")),(null==a?void 0:a.isVirtualScroll.value)?(e.push("".concat(r,"__vscroll")),l.value&&e.push("".concat(r,"--scrolling"))):v&&"lazy"===v.type&&e.push("".concat(r,"__lazyload")),e})),treeContentStyles:t.computed((function(){return{height:XS(u.value),maxHeight:XS(c.value),overflowY:XS(u.value)||XS(c.value)?"auto":void 0}})),scrollStyles:t.computed((function(){var e=(null==a?void 0:a.isVirtualScroll.value)?null==a?void 0:a.translateY.value:0,t="translateY(".concat(e,"px)");return{transform:t,"-ms-transform":t,"-moz-transform":t,"-webkit-transform":t}})),cursorStyles:t.computed((function(){var e=(null==a?void 0:a.isVirtualScroll.value)?null==a?void 0:a.translateY.value:0,t="translate(0, ".concat(e,"px)");return{transform:t,"-ms-transform":t,"-moz-transform":t,"-webkit-transform":t}}))}}(s);return{t:o,global:a,classPrefix:l,componentName:u,state:s,store:p,treeClasses:N.treeClasses,treeContentRef:d,rebuild:h,updateStoreConfig:m,setActived:y,setExpanded:b,setChecked:w,renderTreeNodes:S,nodesEmpty:k,isScrolling:v,onInnerVirtualScroll:C,treeContentStyles:N.treeContentStyles,scrollStyles:N.scrollStyles,cursorStyles:N.cursorStyles,virtualConfig:x,scrollToElement:P,scrollTo:P}},watch:{data:function(e){this.rebuild(e)}},methods:{refresh:function(){this.store.refreshState()},setItem:function(e,t){var n=this,r=this.store.getNode(e),o=t,a=Object.keys(o);r&&o&&(["expanded","actived","checked"].forEach((function(e){if(a.includes(e)){var t=o[e];delete o[e];var l="set".concat(on(e)),i=n[l];H(i)&&i.call(n,r,t)}})),r.set(o))},getItem:function(e){var t=this.store.getNode(e);return null==t?void 0:t.getModel()},getItems:function(e){return this.store.getNodes(e).map((function(e){return e.getModel()}))},appendTo:function(e,t){var n=this.store;(Array.isArray(t)?t:[t]).forEach((function(t){var r=(null==t?void 0:t.value)||"",o=FS(n,r);o?n.appendNodes(e,o):n.appendNodes(e,t)}))},insertBefore:function(e,t){var n=this.store,r=FS(n,(null==t?void 0:t.value)||"");r?n.insertBefore(e,r):n.insertBefore(e,t)},insertAfter:function(e,t){var n=this.store,r=FS(n,(null==t?void 0:t.value)||"");r?n.insertAfter(e,r):n.insertAfter(e,t)},remove:function(e){return this.store.remove(e)},getIndex:function(e){return this.store.getNodeIndex(e)},getParent:function(e){var t=this.store.getParent(e);return null==t?void 0:t.getModel()},getParents:function(e){return this.store.getParents(e).map((function(e){return e.getModel()}))},getPath:function(e){var t=this.store.getNode(e),n=[];return t&&(n=t.getPath().map((function(e){return e.getModel()}))),n},getTreeData:function(e){var t=[];if(e){if(!this.store.getNode(e))return[];t=this.store.getNodes(e)}else t=this.store.getNodes();var n={},r=[];return t.forEach((function(e){var t=e.value,o=QS(QS({},e.data),{},{value:t});!0!==o.children&&delete o.children,n[t]=o;var a=e.getParent();if(a){var l=n[a.value];l?(Array.isArray(l.children)||(l.children=[]),l.children.push(o)):r.push(o)}else r.push(o)})),r}},render:function(e){var n,r,o,a,l=this.state,i=this.treeClasses,u=this.updateStoreConfig,c=this.renderTreeNodes,s=this.nodesEmpty,d=this.isScrolling,v=this.virtualConfig,f=this.treeContentStyles,p=this.scrollStyles,m=this.cursorStyles,h=PS(),g=l.scope,y=l.allNodes,b=l.refProps;g.scopedSlots=this.$slots,u();var w=c(h),O=this.componentName,C=v.isVirtualScroll.value,x=null;if(s){var P=!this.empty&&!this.$slots.empty?this.t(this.global.empty):Gl(this,"empty");x=t.createVNode("div",{class:"".concat(O,"__empty")},[P])}else w.length<=0&&(x=t.createVNode("div",null,null));var j,S=null;S=!this.$props.transition||C&&d?t.createVNode("div",{class:"".concat(O,"__list"),style:p},[w]):t.createVNode(t.TransitionGroup,{tag:"div",class:"".concat(O,"__list"),"enter-active-class":"".concat(O,"__item--enter-active"),"leave-active-class":"".concat(O,"__item--leave-active"),style:p},"function"==typeof(j=w)||"[object Object]"===Object.prototype.toString.call(j)&&!t.isVNode(j)?w:{default:function(){return[w]}});var k=(null!==(n=null===(r=y.value)||void 0===r?void 0:r.filter((function(e){return e.visible})).length)&&void 0!==n?n:0)*(null!==(o=null===(a=b.scroll.value)||void 0===a?void 0:a.rowHeight)&&void 0!==o?o:34),N={width:"1px",height:"1px",opacity:0,pointerEvents:"none",position:"absolute",left:0,top:"".concat(k,"px")},_=t.createVNode("div",{style:N},null);return t.createVNode("div",{class:i,ref:"treeContentRef",onScroll:this.onInnerVirtualScroll,style:f},[C&&t.createVNode("div",{class:"".concat(O,"__vscroll-cursor"),style:m},null),x||S,C&&_])}}),tk=pi(ek),nk={autoWidth:Boolean,borderless:Boolean,clearable:Boolean,collapsedItems:{type:Function},data:{type:Array,default:function(){return[]}},disabled:{type:Boolean,default:void 0},empty:{type:[String,Function],default:""},filter:{type:Function},filterable:Boolean,inputProps:{type:Object},inputValue:{type:[String,Number],default:void 0},defaultInputValue:{type:[String,Number]},keys:{type:Object},loading:Boolean,loadingText:{type:[String,Function],default:""},max:{type:Number,default:0},minCollapsedNum:{type:Number,default:0},multiple:Boolean,panelBottomContent:{type:[String,Function]},panelTopContent:{type:[String,Function]},placeholder:{type:String,default:void 0},popupProps:{type:Object},popupVisible:{type:Boolean,default:void 0},prefixIcon:{type:Function},readonly:{type:Boolean,default:void 0},selectInputProps:{type:Object},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},suffix:{type:[String,Function]},suffixIcon:{type:Function},tagProps:{type:Object},treeProps:{type:Object},value:{type:[String,Number,Object,Array],default:void 0},modelValue:{type:[String,Number,Object,Array],default:void 0},defaultValue:{type:[String,Number,Object,Array]},valueDisplay:{type:Function},valueType:{type:String,default:"value",validator:function(e){return!e||["value","object"].includes(e)}},onBlur:Function,onChange:Function,onClear:Function,onFocus:Function,onInputChange:Function,onPopupVisibleChange:Function,onRemove:Function,onSearch:Function};function rk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ok(e){for(var t=1;t=0}})),M=t.computed((function(){return v.value||e.disabled})),A=t.computed((function(){var t;return _.value&&(null===(t=g.value)||void 0===t?void 0:t.label)||e.placeholder||d.value.placeholder})),B=t.computed((function(){return["".concat(c.value,"-select__dropdown"),"narrow-scrollbar"]})),L=t.computed((function(){return{small:"s",medium:"m",large:"l"}[e.size]})),R=t.computed((function(){return"object"===e.valueType})),z=t.computed((function(){return e.multiple?R.value?j(S.value)?S.value.map((function(e){return e.value})):[]:j(S.value)?S.value.map((function(e){return e})):[]:[]})),W=t.computed((function(){return e.multiple&&!!e.max&&j(S.value)&&e.max<=S.value.length})),K=t.computed((function(){var t;return Ro(e.treeProps)||Ro(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.label)||"label":e.treeProps.keys.label||"label"})),U=t.computed((function(){var t;return Ro(e.treeProps)||Ro(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.value)||"value":e.treeProps.keys.value||"value"})),Y=t.computed((function(){var t;return Ro(e.treeProps)||Ro(e.treeProps.keys)?(null===(t=e.keys)||void 0===t?void 0:t.children)||"children":e.treeProps.keys.children||"children"}));t.onMounted(Bf(Hf.mark((function t(){return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:T(),!S.value&&e.defaultValue&&$(e.defaultValue,null,"uncheck"),R.value?m.value=j(S.value)?S.value.map((function(e){return e.value})):[S.value.value]:m.value=j(S.value)?S.value:[S.value],ne();case 4:case"end":return t.stop()}}),t)}))));var $=function(e,t,n){k(e,{node:t,trigger:n}),ne()},Z=function(t){var n,r=e.multiple?[]:"";m.value=[],$(r,null,"clear"),null===(n=e.onClear)||void 0===n||n.call(e,{e:t.e})},q=function(e,t){var n=e;R.value&&(n=e.map(ae)),$(n,t.node,"check")},X=function(t,n){if(e.multiple||V(!1,n),!e.multiple&&S.value!==n.node.data[U.value]){var r=t;if(R.value){var o=Ro(t)?"":t[0];r=ae(o)}else r=Ro(t)?"":t[0];$(r,n.node,"check"),m.value=t}},G=function(e){h.value=e},J=function(){ne()},Q=function(t){var n,r;_.value?(F(t),null===(n=e.onSearch)||void 0===n||n.call(e,String(t))):null===(r=e.onSearch)||void 0===r||r.call(e,String(t))},ee=function(t,n){var r,o=n.trigger,a=n.index;["tag-remove","backspace"].includes(o)&&j(S.value)&&S.value.splice(a,1),null===(r=e.onRemove)||void 0===r||r.call(e,{value:t,data:null,e:n&&n.e}),$(S.value,null,o)},te=function(e,t){V(e,t),e&&"trigger-element-click"===t.trigger&&F("")},ne=function(){var t=Bf(Hf.mark((function t(){return Hf.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.multiple?e.multiple?j(S.value)?g.value=oe():g.value=[]:g.value=null:S.value||0===S.value?g.value=re():g.value="";case 1:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}(),re=function(){var e=R.value?S.value.value:S.value;return ae(e)},oe=function(){return S.value.map((function(e){var t=R.value?e.value:e;return ae(t)}))},ae=function(t){if(p.value){var n=p.value.getItem(t);if(n)return ok(ok({},n.data),{},{label:n.data[K.value],value:n.data[U.value]})}var r=le(e.data,t);return r||{label:t,value:t}},le=function(e,t){for(var n=0,r=e.length;n2&&r>=0&&r<=o-1){n.splice(r,1),n[r]||(r=n[r+1]?r+1:n[r-1]?r-1:0);var a=n[r];p(n,!0),f(null==a?void 0:a.id)}}},y=function(t){if(!e.disabled&&e.enableMultipleGradient){var n=t.clientX-a.left,r=(n=Math.max(0,Math.min(a.width,n)))/a.width*100,o=Bk(r,e.color.rgba);s.value.push(o),p(s.value,!0),f(o.id)}};return t.onMounted((function(){var e=o.value.getBoundingClientRect();a.left=e.left,a.width=e.width||176})),t.onBeforeUnmount((function(){window.removeEventListener("mousemove",m,!1),window.removeEventListener("mouseup",h,!1),window.removeEventListener("contextmenu",h,!1)})),function(){var d=e.color,p=d.linearGradient,b=d.gradientColors,w=Ak({points:b,degree:90});return t.createVNode("div",{class:"".concat(n.value,"__gradient")},[t.createVNode("div",{class:"".concat(n.value,"__gradient-slider")},[t.createVNode("div",{class:["".concat(n.value,"__slider"),"".concat(n.value,"--bg-alpha")],onKeyup:g,tabindex:0,ref:o},[t.createVNode("ul",{class:"gradient-thumbs",onClick:y,style:{background:w}},[s.value.map((function(u){var s="".concat(Math.round(100*u.left)/100,"%");return t.createVNode("li",{class:["".concat(n.value,"__thumb"),"gradient-thumbs__item",c.value===u.id?r.active:""],key:u.id,title:"".concat(u.color," ").concat(s),style:{color:u.color,left:s},onClick:function(e){return e.stopPropagation()},onMousedown:function(){return function(t){var n=o.value.getBoundingClientRect();a.left=n.left,a.width=n.width||176,l.value||e.disabled||(i.value=!1,l.value=!0,f(t),o.value.focus(),window.addEventListener("mousemove",m,!1),window.addEventListener("mouseup",h,!1),window.addEventListener("contextmenu",h,!1))}(u.id)}},[t.createVNode("span",{class:["gradient-thumbs__item-inner","".concat(n.value,"--bg-alpha")]},null)])}))])])]),t.createVNode("div",{class:"".concat(n.value,"__gradient-degree"),title:"".concat(u.value,"deg")},[t.createVNode(Hy,{size:"small",theme:"normal",min:0,max:360,step:1,format:function(e){return"".concat(e,"\xb0")},modelValue:u.value,"onUpdate:modelValue":function(e){return u.value=e},onBlur:v,onEnter:v,disabled:e.disabled},null)]),t.createVNode("div",{class:["".concat(n.value,"__gradient-preview"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"preview-inner",style:{background:p}},null)])])}}}),oN=t.defineComponent({name:"SaturationPanel",props:Qk,setup:function(e){var n=vk(),r=t.ref(null),o=t.ref(null),a=t.ref(null),l=t.reactive({width:230,height:168}),i=t.computed((function(){var t=e.color,n=t.saturation,r=t.value,o=l.width,a=l.height,i=Math.round((1-r)*a),u=Math.round(n*o);return{color:e.color.rgb,left:"".concat(u,"px"),top:"".concat(i,"px")}})),u=function(t,n){if(!e.disabled){var r=function(e){var t=l.width,n=l.height,r=e.x,o=e.y;return{saturation:Math.round(r/t*100),value:Math.round(100*(1-o/n))}}(t),o=r.saturation,a=r.value;e.onChange({saturation:o/100,value:a/100,addUsedColor:n})}},c=function(n){e.disabled||t.nextTick((function(){u(n,!0)}))},s=t.computed((function(){return"hsl(".concat(e.color.hue,", 100%, 50%)")}));return t.onMounted((function(){l.width=r.value.offsetWidth||230,l.height=r.value.offsetHeight||168,a.value=new Zk(r.value,{start:function(){l.width=r.value.offsetWidth,l.height=r.value.offsetHeight},drag:function(e){u(e)},end:c})})),t.onBeforeUnmount((function(){a.value.destroy()})),function(){return t.createVNode("div",{class:["".concat(n.value,"__saturation")],ref:r,style:{background:s.value}},[t.createVNode("span",{class:["".concat(n.value,"__thumb")],role:"slider",tabindex:0,ref:o,style:i.value},null)])}}});function aN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lN(e){for(var t=1;t0?t.createVNode("span",{role:"button",class:"".concat(n.value,"__icon"),onClick:function(){return s()}},[t.createVNode(o,null,null)]):null]):null]),t.createVNode("ul",{class:["".concat(r,"--items"),"narrow-scrollbar"]},[e.colors.map((function(o){return t.createVNode("li",{class:["".concat(r,"--item"),u(o)&&e.editable?l.active:""],title:o,key:o,onClick:function(){e.disabled||function(t){e.onSetColor(t)}(o)}},[t.createVNode("div",{class:["".concat(r,"--color"),"".concat(n.value,"--bg-alpha")]},[t.createVNode("span",{class:"".concat(r,"--inner"),style:{background:o}},null)])])}))])])}}});function wN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ON(e){for(var t=1;t-1&&e.splice(n,1),e.unshift(t),e.length>100&&(e.length=100),V(e)}},V=function(e){k(e)},D=function(e){y(N(),{color:zk(C.value),trigger:e||"palette-saturation-brightness"})};t.watch((function(){return[e.defaultValue,e.enableAlpha]}),x),t.watch((function(){return g.value}),(function(e){e!==N()&&(x(),w.value=C.value.isGradient?"linear-gradient":"monochrome")}));var E=function(e){w.value=e,"linear-gradient"===e?C.value.update(C.value.gradientColors.length>0?C.value.linearGradient:ck):C.value.update(C.value.rgba),D()},F=function(e){return P.value=e},T=function(e){var t=e.saturation,n=e.value,r=C.value,o=r.saturation,a=r.value,l="palette-saturation-brightness";if(n!==a&&t!==o)C.value.saturation=t,C.value.value=n,l="palette-saturation-brightness";else if(t!==o)C.value.saturation=t,l="palette-saturation";else{if(n===a)return;C.value.value=n,l="palette-brightness"}C.value.update(C.value.rgba),D(l)},I=function(t){var n;C.value.hue=t,D("palette-hue-bar"),null===(n=e.onPaletteBarChange)||void 0===n||n.call(e,{color:zk(C.value)})},M=function(e){C.value.alpha=e,D("palette-alpha-bar")},A=function(e,t){C.value.update(e),C.value.alpha=t,D("input")},B=function(e){var t=e.key,n=e.payload,r="palette-saturation-brightness";switch(t){case"degree":C.value.gradientDegree=n,r="input";break;case"selectedId":C.value.gradientSelectedId=n;break;case"colors":C.value.gradientColors=n}D(r)},L=function(t,n){Lk.isGradientColor(n)?e.colorModes.includes("linear-gradient")?(w.value="linear-gradient",C.value.update(n),C.value.updateCurrentGradientColor()):console.warn("\u8be5\u6a21\u5f0f\u4e0d\u652f\u6301\u6e10\u53d8\u8272"):"linear-gradient"===w.value?(C.value.updateStates(n),C.value.updateCurrentGradientColor()):C.value.update(n),D()};return function(){var n,r={color:C.value,disabled:e.disabled},o=null!==S.value&&!1!==S.value,l=e.swatchColors;void 0===l&&(l=i(sk));var u=(null===(n=l)||void 0===n?void 0:n.length)>0;return t.createVNode("div",{class:["".concat(a.value,"__panel"),!!e.disabled&&d.disabled]},[t.createVNode(xk,t.mergeProps(e,{mode:w.value,onModeChange:E}),null),t.createVNode("div",{class:["".concat(a.value,"__body")]},[O.value?t.createVNode(rN,t.mergeProps(r,{onChange:B,enableMultipleGradient:e.enableMultipleGradient}),null):null,t.createVNode(oN,t.mergeProps(r,{onChange:T}),null),t.createVNode("div",{class:["".concat(a.value,"__sliders-wrapper")]},[t.createVNode("div",{class:["".concat(a.value,"__sliders")]},[t.createVNode(uN,t.mergeProps(r,{onChange:I}),null),e.enableAlpha?t.createVNode(cN,t.mergeProps(r,{onChange:M}),null):null]),e.showPrimaryColorPreview?t.createVNode("div",{class:["".concat(a.value,"__sliders-preview"),"".concat(a.value,"--bg-alpha")]},[t.createVNode("span",{class:"".concat(a.value,"__sliders-preview-inner"),style:{background:O.value?C.value.linearGradient:C.value.rgba}},null)]):null]),t.createVNode(hN,t.mergeProps(e,{color:C.value,format:P.value,onModeChange:F,onInputChange:A}),null),u||o?t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"".concat(a.value,"__swatches-wrap")},[o?t.createVNode(bN,t.mergeProps(r,{title:c(s.value.recentColorTitle),editable:!0,colors:S.value,handleAddColor:_,onSetColor:function(e){return L(0,e)},onChange:V}),null):null,u?t.createVNode(bN,t.mergeProps(r,{title:c(s.value.swatchColorTitle),colors:l,onSetColor:function(e){return L(0,e)}}),null):null])]):null])])}}});function xN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function PN(e){for(var t=1;tn-2*d.value?"scale(".concat((n-2*d.value)/r,")"):"scale(1)")};return t.onMounted((function(){t.nextTick((function(){b()}))})),t.onUpdated((function(){t.nextTick((function(){b()}))})),t.watch((function(){return e.image}),(function(e){e&&(c.value=!0)})),function(){var l=r("default","content"),d=o("icon"),v=d&&!l,p=e.shape,b=e.image,w=e.alt,O=["".concat(n.value),a.value[f.value],s(s(s({},"".concat(n.value,"--circle"),"circle"===p),"".concat(n.value,"--round"),"round"===p),"".concat(n.value,"__icon"),!!v)];return l=t.createVNode("span",{ref:u,style:AN({},g.value)},[l]),d&&(l=[d,v?"":l]),b&&c.value&&(l=t.createVNode(IN,t.mergeProps({style:AN({},h.value),src:b,alt:w,onError:y},e.imageProps),null)),t.createVNode("div",{ref:i,class:O,style:AN({},m.value)},[l])}}}),LN={cascading:{type:String,default:"right-up",validator:function(e){return!e||["left-up","right-up"].includes(e)}},collapseAvatar:{type:[String,Function]},max:{type:Number},popupProps:{type:Object},size:{type:String,default:""}};var RN=t.defineComponent({name:"TAvatarGroup",props:LN,setup:function(e){t.provide("avatarGroup",e);var n=ei(),r=Qa("avatar"),o=Qa("avatar-group"),a=function(n){if((null==n?void 0:n.length)>e.max){var o=l(n),a=n.slice(0,e.max);return a.push(t.createVNode(BN,{class:"".concat(r.value,"__collapse"),size:e.size},"function"==typeof(i=o)||"[object Object]"===Object.prototype.toString.call(i)&&!t.isVNode(i)?o:{default:function(){return[o]}})),a}var i;return n},l=function(t){return n("collapseAvatar")||"+".concat(t.length-e.max)};return function(){var l=n("default"),i=e.cascading,u=e.max,c=["".concat(o.value),s(s({},"".concat(r.value,"--offset-right"),"right-up"===i),"".concat(r.value,"--offset-left"),"left-up"===i)],d=u&&u>=0?[a(Zl(l))]:[l];return t.createVNode("div",{class:c},[d])}}}),zN=pi(BN),HN=pi(RN),WN={color:{type:String,default:""},content:{type:[String,Function]},count:{type:[String,Number,Function],default:0},default:{type:[String,Function]},dot:Boolean,maxCount:{type:Number,default:99},offset:{type:Array},shape:{type:String,default:"circle",validator:function(e){return["circle","round"].includes(e)}},showZero:Boolean,size:{type:String,default:"medium",validator:function(e){return["small","medium"].includes(e)}}},KN=t.defineComponent({name:"TBadge",inheritAttrs:!1,props:WN,setup:function(e,n){var r=n.attrs,o=ni(),a=ei(),l=t.computed((function(){var t=a("count");return Number.isNaN(Number(t))?t:(t=Number(e.count))>e.maxCount?"".concat(e.maxCount,"+"):t})),i=Qa(),u=Qa("badge"),c=t.computed((function(){return!e.showZero&&(0===l.value||"0"===l.value)})),d=t.computed((function(){return[s(s(s(s({},"".concat(u.value,"--dot"),!!e.dot),"".concat(u.value,"--circle"),!e.dot&&"circle"===e.shape),"".concat(u.value,"--round"),!e.dot&&"round"===e.shape),"".concat(i.value,"-size-s"),"small"===e.size)]})),v=t.computed((function(){var t=function(){if(!e.offset)return{};var t=Ha(e.offset,2),n=t[0],r=t[1];return{xOffset:n=Number.isNaN(Number(n))?n:"".concat(n,"px"),yOffset:r=Number.isNaN(Number(r))?r:"".concat(r,"px")}}(),n=t.xOffset,r=t.yOffset;return{background:e.color,right:n,top:r}}));return function(){return t.createVNode("div",t.mergeProps({class:u.value},r),[o("default","content"),c.value?null:t.createVNode("sup",{class:d.value,style:v.value},[e.dot?null:l.value])])}}}),UN=pi(KN),YN={cell:{type:[String,Function]},cellAppend:{type:[String,Function]},controllerConfig:{type:[Boolean,Object],default:void 0},fillWithZero:{type:Boolean,default:void 0},firstDayOfWeek:{type:Number,validator:function(e){return!e||[1,2,3,4,5,6,7].includes(e)}},format:{type:String,default:"YYYY-MM-DD"},head:{type:[String,Function]},isShowWeekendDefault:{type:Boolean,default:!0},mode:{type:String,default:"month",validator:function(e){return!e||["month","year"].includes(e)}},month:{type:[String,Number]},multiple:Boolean,preventCellContextmenu:Boolean,range:{type:Array},theme:{type:String,default:"full",validator:function(e){return!e||["full","card"].includes(e)}},value:{type:[String,Array,Date]},week:{type:[Array,Function]},year:{type:[String,Number]},onCellClick:Function,onCellDoubleClick:Function,onCellRightClick:Function,onControllerChange:Function,onMonthChange:Function},$N="calendar",ZN=1970,qN={1:"\u4e00",2:"\u4e8c",3:"\u4e09",4:"\u56db",5:"\u4e94",6:"\u516d",7:"\u65e5"},XN=function(e){var t=Ya(e).day();return 0===t&&(t=7),t},GN=function(e,t){var n=new Date(e);return n.setDate(n.getDate()+t),n},JN=function(e,t){for(var n=t.curSelectedYear,r=t.curSelectedMonth,o=t.realFirstDayOfWeek,a=t.curDate,l=t.curDateList,i=e.format,u=e.multiple,c=[],s=Ya("".concat(n,"-").concat(r)).startOf("month").toDate(),d=Ya(Ya("".concat(n,"-").concat(r)).endOf("month").format("YYYY-MM-DD")).toDate(),v=d.getDate(),f=function(e,t){var n=XN(t);return n>=e?n-e:7-e+n}(o,s),p=[],m=1,h=function(e,t,n,r){return{mode:"month",belongTo:e,isCurrent:t,day:XN(n),weekOrder:r,date:n,formattedDate:Ya(n).format(i),filterDate:null,formattedFilterDate:null,isShowWeekend:!0}},g=function(e){return u?!!l.find((function(t){return t.isSame(Ya(e))})):a.isSame(Ya(e))},y=0;y0&&(r.curSelectedYear=n)}),{immediate:!0}),t.watch((function(){return e.month}),(function(e){var t,n;n=(t=e)?parseInt("".concat(t),10):parseInt(QN().format("M"),10),!isNaN(n)&&n>0&&n<=12&&(r.curSelectedMonth=n)}),{immediate:!0}),t.watch((function(){return e.isShowWeekendDefault}),(function(e){r.isShowWeekend=e}),{immediate:!0}),t.watch((function(){return e.mode}),(function(e){r.curSelectedMode=e}),{immediate:!0}),t.watch((function(){return e.theme}),(function(e){"card"===e&&(r.controlSize="small"),"full"===e&&(r.controlSize="medium")}),{immediate:!0}),{state:r,toToday:function(){var e=QN();r.curDate=e,r.curSelectedYear=e.year(),r.curSelectedMonth=parseInt(e.format("M"),10)},checkDayVisible:function(e){var t=!0;return r.isShowWeekend||(t=6!==e&&7!==e),t}}}function t_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n_(e){for(var t=1;t0&&void 0!==arguments[0])||arguments[0],disabled:!1,mode:{visible:!0,radioGroupProps:{}},year:{visible:!0,selectProps:{}},month:{visible:!0,selectProps:{}},weekend:{visible:!0,showWeekendButtonProps:{},hideWeekendButtonProps:{}},current:{visible:!0,currentDayButtonProps:{},currentMonthButtonProps:{}}}};function o_(e,n){var r=Ga($N),o=r.t,a=r.globalConfig,l=t.computed((function(){return e.week||o(a.value.week).split(",")}));function i(e){var t,n,r=l.value;return E(r)&&r[e-1]?r[e-1]:(t="",(n=e.toString())in qN&&(t=qN[n]),t)}var u=t.computed((function(){for(var e=[],t=n.realFirstDayOfWeek;t<=7;t++)e.push({num:t,display:i(t)});if(n.realFirstDayOfWeek>1)for(var r=1;rparseInt(Ya(m.value.to).format("M"),10)}}return n}t.watch((function(){return{year:"".concat(c.curSelectedYear),month:"".concat(c.curSelectedMonth)}}),(function(t){H(e.onMonthChange)&&e.onMonthChange(s_({},t)),p.emitControllerChange()}));var g={yearSelectOptionList:t.computed((function(){var e=[],t=c.curSelectedYear-10,n=c.curSelectedYear+10;m.value&&m.value.from&&m.value.to&&(t=Ya(m.value.from).year(),n=Ya(m.value.to).year()),t1)||e===Array.from(t.popupStack.dialog).pop()}))})));function N_(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.visible,o=n.runOnMounted,a=t.ref(0),l=function(){a.value=k_.add(e)},i=function(){k_.delete(a.value,e)};return t.watch((function(){return null==r?void 0:r.value}),(function(e){e?l():i()}),{immediate:!0}),o&&(t.onMounted((function(){l()})),t.onBeforeUnmount((function(){i()}))),{zIndex:t.readonly(a),open:l,close:i,isLastDialog:function(){return"dialog"===e&&k_.isLastDialog(a.value)}}}function __(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function V_(e){var n=t.ref(e);return{transform:n,mouseDownHandler:function(e){var t=e.pageX,r=e.pageY,o=n.value,a=o.translateX,l=o.translateY,i=function(e){var o=e.pageX,i=e.pageY;n.value={translateX:a+o-t,translateY:l+i-r}},u=function(){document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",u)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",u)},resetTransform:function(){n.value=function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:document.body;return e===document.body?window.innerWidth-document.documentElement.clientWidth:e.offsetWidth-e.clientWidth}function B_(e){return Number.isNaN(Number(e))?e:"".concat(Number(e),"px")}var L_={body:{type:[String,Function]},cancelBtn:{type:[String,Object,Function]},closeBtn:{type:[String,Boolean,Function],default:!0},confirmBtn:{type:[String,Object,Function]},confirmLoading:{type:Boolean,default:void 0},footer:{type:[Boolean,Function]},header:{type:[String,Boolean,Function],default:!0},theme:{type:String,default:"default",validator:function(e){return!e||["default","info","warning","danger","success"].includes(e)}},onCancel:Function,onCloseBtnClick:Function,onConfirm:Function};function R_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function z_(e){for(var t=1;tr||i>o||(document.addEventListener("mousemove",u),document.addEventListener("mouseup",c),document.addEventListener("dragend",c))})))}},props:z_(z_({},F_),L_),setup:function(e,n){var r=n.expose,o=t.ref(null),a=Qa("dialog"),l=Qa(),i=ei(),u=ni(),c=Ga("dialog").globalConfig,s=up({CloseIcon:xc,InfoCircleFilledIcon:ad,CheckCircleFilledIcon:ku,ErrorCircleFilledIcon:Qc}),d=s.CloseIcon,v=s.InfoCircleFilledIcon,f=s.CheckCircleFilledIcon,p=s.ErrorCircleFilledIcon,m=t.toRefs(e),h=m.cancelBtn,g=m.confirmBtn,y=m.confirmLoading,b=M_({confirmBtnAction:function(t){var n;return null===(n=e.onConfirm)||void 0===n?void 0:n.call(e,{e:t})},cancelBtnAction:function(t){var n;return null===(n=e.onCancel)||void 0===n?void 0:n.call(e,{e:t})}}),w=b.getConfirmBtn,O=b.getCancelBtn,C=t.computed((function(){return"modeless"===e.mode})),x=t.computed((function(){return"full-screen"===e.mode})),P=function(t){var n;return null==e||null===(n=e.onCloseBtnClick)||void 0===n?void 0:n.call(e,{e:t})},j=function(t){C.value&&null!=e&&e.draggable&&t.stopPropagation()};r({$el:o,resetPosition:function(){!o.value&&C.value&&e.draggable||(o.value.style.position="relative",o.value.style.left="unset",o.value.style.top="unset")}});var S=t.computed((function(){var t=["".concat(a.value),"".concat(a.value,"__modal-").concat(e.theme),C.value&&e.draggable&&"".concat(a.value,"--draggable"),e.dialogClassName];return x.value?t.push("".concat(a.value,"__fullscreen")):t.push.apply(t,["".concat(a.value,"--default"),"".concat(a.value,"--").concat(e.placement)]),t})),k=t.computed((function(){return x.value?z_({},e.dialogStyle):z_({width:B_(e.width)},e.dialogStyle)}));return function(){return t.withDirectives(t.createVNode("div",{key:"dialog",ref:o,class:S.value,style:k.value},[(V=t.computed((function(){var e;return(null===(e=g.value)||void 0===e?void 0:e.loading)||y.value})),D=t.createVNode("div",null,[O({cancelBtn:h.value,globalCancel:c.value.cancel,className:"".concat(a.value,"__cancel")}),w({theme:null==e?void 0:e.theme,confirmBtn:g.value,globalConfirm:c.value.confirm,globalConfirmBtnTheme:c.value.confirmBtnTheme,className:"".concat(a.value,"__confirm"),confirmLoading:V.value})]),E=i("footer",D),t.createVNode(t.Fragment,null,[(b=null!==(m=i("header",t.createVNode("h5",{class:"title"},null)))&&void 0!==m&&m,N=x.value?["".concat(a.value,"__header"),"".concat(a.value,"__header--fullscreen")]:"".concat(a.value,"__header"),_=x.value?["".concat(a.value,"__close"),"".concat(a.value,"__close--fullscreen")]:"".concat(a.value,"__close"),(b||(null==e?void 0:e.closeBtn))&&t.createVNode("div",{class:N,onMousedown:j},[t.createVNode("div",{class:"".concat(a.value,"__header-content")},[{info:t.createVNode(v,{class:"".concat(l.value,"-is-info")},null),warning:t.createVNode(p,{class:"".concat(l.value,"-is-warning")},null),danger:t.createVNode(p,{class:"".concat(l.value,"-is-error")},null),success:t.createVNode(f,{class:"".concat(l.value,"-is-success")},null)}[null==e?void 0:e.theme],b]),null!=e&&e.closeBtn?t.createVNode("span",{class:_,onClick:P},[i("closeBtn",t.createVNode(d,null,null))]):null])),(r=u("default","body"),s="default"===(null==e?void 0:e.theme)?["".concat(a.value,"__body")]:["".concat(a.value,"__body__icon")],x.value&&E?s.push("".concat(a.value,"__body--fullscreen")):x.value&&s.push("".concat(a.value,"__body--fullscreen--without-footer")),t.createVNode("div",{class:s,onMousedown:j},[r])),!!e.footer&&(n=x.value?["".concat(a.value,"__footer"),"".concat(a.value,"__footer--fullscreen")]:"".concat(a.value,"__footer"),E&&t.createVNode("div",{class:n,onMousedown:j},[E]))]))]),[[t.resolveDirective("draggable"),C.value&&e.draggable]]);var n,r,s,m,b,N,_,V,D,E}}}),K_=["theme","onConfirm","onCancel","onCloseBtnClick"];"undefined"!=typeof window&&window.document&&window.document.documentElement&&document.documentElement.addEventListener("click",(function(e){H_={x:e.clientX,y:e.clientY},setTimeout((function(){H_=null}),100)}),!0);var U_=1,Y_=t.defineComponent({name:"TDialog",inheritAttrs:!1,props:F_,emits:["update:visible"],setup:function(e,n){var r=Qa("dialog"),o=Qa(),a=t.ref(null),l=Ga("dialog").globalConfig,i=function(t){var n;null===(n=e.onConfirm)||void 0===n||n.call(e,t)},u=function(t){var n;null===(n=e.onCancel)||void 0===n||n.call(e,t),B({e:t.e,trigger:"cancel"})},c=ri((function(){return e.attach}));Ym();var d=t.ref(),v=t.ref(),f=t.computed((function(){return"modal"===e.mode})),p=t.computed((function(){return"modeless"===e.mode})),m=t.computed((function(){return"full-screen"===e.mode})),h=t.computed((function(){return e.visible})),g=t.computed((function(){return["".concat(r.value,"__mask"),!e.showOverlay&&"".concat(o.value,"-is-hidden")]})),y=t.computed((function(){return m.value?["".concat(r.value,"__position_fullscreen")]:f.value||p.value?["".concat(r.value,"__position"),!!e.top&&"".concat(r.value,"--top"),"".concat(e.placement&&!e.top?"".concat(r.value,"--").concat(e.placement):"")]:[]})),b=t.computed((function(){return m.value||f.value||p.value?["".concat(r.value,"__wrap")]:null})),w=t.computed((function(){if(m.value)return{};var t=e.top,n={};void 0!==t&&(n={paddingTop:B_(t)});return n})),O=N_("dialog",{visible:h}).isLastDialog;function C(){var e,t;null===(e=v.value.parentNode)||void 0===e||null===(t=e.removeChild)||void 0===t||t.call(e,v.value)}t.watch((function(){return e.visible}),(function(n){var r;n?((f.value&&!e.showInAttachedElement||m.value)&&(e.preventScrollThrough&&document.body.appendChild(v.value),t.nextTick((function(){var e;if(H_&&null!==(e=a.value)&&void 0!==e&&e.$el){var t=a.value.$el;t.style.transformOrigin="".concat(H_.x-t.offsetLeft,"px ").concat(H_.y-t.offsetTop,"px")}}))),null===(r=document.activeElement)||void 0===r||r.blur()):(clearTimeout(d.value),d.value=setTimeout((function(){C()}),150));S(n)}));var x,P,j,S=function(t){t?(document.addEventListener("keydown",N),e.confirmOnEnter&&document.addEventListener("keydown",k)):(document.removeEventListener("keydown",N),e.confirmOnEnter&&document.removeEventListener("keydown",k))},k=function(t){if("input"!==t.target.tagName.toLowerCase()){var n,r=t.code;if(("Enter"===r||"NumpadEnter"===r)&&O())null===(n=e.onConfirm)||void 0===n||n.call(e,{e:t})}},N=function(t){var n,r;"Escape"===t.code&&O()&&(null===(n=e.onEscKeydown)||void 0===n||n.call(e,{e:t}),(null!==(r=e.closeOnEscKeydown)&&void 0!==r?r:l.value.closeOnEscKeydown)&&B({e:t,trigger:"esc"}))},_=(x=function(t){var n,r;e.showOverlay&&(null!==(n=e.closeOnOverlayClick)&&void 0!==n?n:l.value.closeOnOverlayClick)&&(null===(r=e.onOverlayClick)||void 0===r||r.call(e,{e:t}),B({e:t,trigger:"overlay"}))},P=!1,j=!1,{onClick:function(e){P&&j&&x(e),P=!1,j=!1},onMousedown:function(e){P=e.target===e.currentTarget},onMouseup:function(e){j=e.target===e.currentTarget}}),V=_.onClick,D=_.onMousedown,E=_.onMouseup,F=function(t){var n;null===(n=e.onCloseBtnClick)||void 0===n||n.call(e,t),B({trigger:"close-btn",e:t.e})},T=function(){var t;null===(t=e.onBeforeOpen)||void 0===t||t.call(e)},I=function(){var t;null===(t=e.onOpened)||void 0===t||t.call(e)},M=function(){var t;null===(t=e.onBeforeClose)||void 0===t||t.call(e)},A=function(){var t,n,r;null===(t=a.value)||void 0===t||null===(n=t.resetPosition)||void 0===n||n.call(t),null===(r=e.onClosed)||void 0===r||r.call(e)},B=function(t){var r;null===(r=e.onClose)||void 0===r||r.call(e,t),n.emit("update:visible",!1)};return t.onMounted((function(){var e=document.documentElement.scrollHeight>document.documentElement.clientHeight?A_():0;v.value=document.createElement("style"),v.value.dataset.id="td_dialog_".concat(+new Date,"_").concat(U_+=1),v.value.innerHTML="\n html body {\n overflow-y: hidden;\n width: calc(100% - ".concat(e,"px);\n }\n ")})),t.onBeforeUnmount((function(){S(!1),C()})),function(){var o=[(f.value||m.value)&&t.createVNode("div",{key:"mask",class:g.value},null),function(){var r=e.theme;e.onConfirm,e.onCancel,e.onCloseBtnClick;var o=nl(e,K_);return t.createVNode("div",{class:b.value},[t.createVNode("div",{class:y.value,style:w.value,onClick:V,onMousedown:D,onMouseup:E},[t.createVNode(W_,t.mergeProps({ref:a,theme:r},o,{onConfirm:i,onCancel:u,onCloseBtnClick:F}),n.slots)])])}()],l={zIndex:e.zIndex},d=["".concat(r.value,"__ctx"),s(s(s({},"".concat(r.value,"__ctx--fixed"),f.value||m.value),"".concat(r.value,"__ctx--absolute"),f.value&&e.showInAttachedElement),"".concat(r.value,"__ctx--modeless"),p.value)];return t.createVNode(t.Teleport,{disabled:!e.attach||!c.value,to:c.value},{default:function(){return[t.createVNode(t.Transition,{duration:300,name:"".concat(r.value,"-zoom__vue"),onBeforeEnter:T,onAfterEnter:I,onBeforeLeave:M,onAfterLeave:A},{default:function(){return[(!e.destroyOnClose||e.visible)&&t.withDirectives(t.createVNode("div",t.mergeProps({class:d,style:l},n.attrs),[o]),[[t.vShow,e.visible]])]}})]}})}}});function $_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Z_(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{max:2,min:.5,step:.2},n=e.max,r=e.min,o=e.step,a=e.defaultScale,l=t.ref(null!=a?a:1),i=Ea((function(){var e=Fy(l.value,o);s(e)}),50),u=Ea((function(){var e=Ty(l.value,o);s(e)}),50),c=function(){l.value=null!=a?a:1},s=function(e){var t=e;en&&(t=n),l.value=t};return t.watch((function(){return e}),(function(){return c()})),{scale:l,onZoomIn:i,onZoomOut:u,resetScale:c}}(e.imageScale),E=D.scale,F=D.onZoomIn,T=D.onZoomOut,I=D.resetScale,M=function(){var e=t.ref(0);return{rotate:e,onRotate:function(){e.value+=90},resetRotate:function(){e.value=0}}}(),A=M.rotate,B=M.onRotate,L=M.resetRotate,R=function(){V(),I(),L()},z=t.computed((function(){return aV(e.images)})),H=t.computed((function(){var e;return null!==(e=z.value[m.value])&&void 0!==e?e:{mainImage:""}})),W=N_("dialog",{visible:y}).isLastDialog,K=function(){var e=m.value-1;R(),h(e<0?0:e,{trigger:"prev"})},U=function(){var e=m.value+1;R(),h(e>=z.value.length?m.value:e,{trigger:"next"})},Y=function(t){e.onDownload?e.onDownload(t):function(e){var t,n,r,o=new Image,a=(null==e||null===(t=e.split)||void 0===t||null===(t=t.call(e,"?"))||void 0===t||null===(t=t[0])||void 0===t||null===(n=t.split)||void 0===n||null===(n=n.call(t,"#"))||void 0===n||null===(n=n[0])||void 0===n||null===(r=n.split)||void 0===r?void 0:r.call(n,"/").pop())||Math.random().toString(32).slice(2);o.setAttribute("crossOrigin","anonymous"),o.onload=function(){var e=document.createElement("canvas");e.width=o.width,e.height=o.height,e.getContext("2d").drawImage(o,0,0,o.width,o.height),e.toBlob((function(e){var t=URL.createObjectURL(e),n=document.createElement("a");n.download=a,n.href=t,n.click(),n.remove(),URL.revokeObjectURL(t)}))},o.src=e}(t)},$=function(){b(!0)},Z=function(t){var n;b(!1),null===(n=e.onClose)||void 0===n||n.call(e,t)},q=function(e){Z({e:e,trigger:"close-btn"})},X=function(t){e.closeOnOverlay&&Z({e:t,trigger:"overlay"})},G=function(t){switch(t.stopPropagation(),t.code){case rV.left:K();break;case rV.right:U();break;case rV.up:F();break;case rV.down:T();break;case rV.esc:e.closeOnEscKeydown&&W()&&Z({e:t,trigger:"esc"})}},J=t.ref();t.watch((function(){return y.value}),(function(e){clearTimeout(O.value),e?(w.value=!1,t.nextTick().then((function(){var e,t;null===(e=J.value)||void 0===e||null===(t=e.focus)||void 0===t||t.call(e)})),R()):O.value=setTimeout((function(){w.value=!0}),200)}));var Q=function(e){e.preventDefault(),e.deltaY>0?T():F()},ee=t.computed((function(){return{transform:"translateX(calc(-".concat(m.value," * (40px / 9 * 16 + 4px)))")}})),te=function(){return t.createVNode("div",{class:P.value},[t.createVNode(E_,{icon:function(){return t.createVNode(Au,null,null)},class:"".concat(o.value,"__header-pre-bt"),onClick:S},null),t.createVNode("div",{class:"".concat(o.value,"__header-prev")},[t.createVNode("div",{class:"".concat(o.value,"__header-trans"),style:ee.value},[z.value.map((function(e,n){return t.createVNode("div",{key:n,class:["".concat(o.value,"__header-box"),s({},"".concat(r.value,"-is-active"),n===m.value)]},[t.createVNode(IN,{src:e.thumbnail||e.mainImage,error:"",class:"".concat(o.value,"__header-img"),onClick:function(){return function(e){h(e,{trigger:"current"})}(n)}},null)])}))])])])},ne=function(e){var n="prev"===e?0:180,r=a("navigationArrow",t.createVNode($u,{style:{transform:"rotate(".concat(n,"deg)")},size:"24px"},null));return t.createVNode(E_,{class:"".concat(o.value,"__modal-").concat(e,"-bt"),onClick:"prev"===e?K:U,icon:function(){return r}},null)},re=function(){if(!1!==e.closeBtn)return t.createVNode("div",{class:["".concat(o.value,"__modal-icon"),"".concat(o.value,"__modal-close-bt")],onClick:q},[a("closeBtn",t.createVNode(xc,{size:"24px"},null))])};return function(){return"modeless"===e.mode?t.createVNode(t.Fragment,null,[a("trigger",{params:{open:$}}),t.createVNode(nV,{zIndex:j.value,visible:y.value,index:m.value,images:z.value,scale:E.value,rotate:A.value,mirror:N.value,currentImage:H.value,onRotate:B,onZoomIn:F,onZoomOut:T,onMirror:_,onReset:R,onClose:Z,onDownload:Y,draggable:e.draggable,showOverlay:i.value,title:e.title,imageReferrerpolicy:f.value},null)]):t.createVNode(t.Fragment,null,[a("trigger",{params:{open:$}}),t.createVNode(t.Teleport,{disabled:!e.attach||!C.value,to:C.value},{default:function(){return[t.createVNode(t.Transition,null,{default:function(){return[(y.value||!w.value)&&t.withDirectives(t.createVNode("div",{ref:J,class:x.value,style:{zIndex:j.value},onWheel:Q,tabindex:-1,onKeydown:G},[!!i.value&&t.createVNode("div",{class:"".concat(o.value,"__modal-mask"),onClick:X},null),z.value.length>1&&t.createVNode(t.Fragment,null,[te(),t.createVNode("div",{class:"".concat(o.value,"__modal-index")},[e.title&&a("title"),"".concat(m.value+1,"/").concat(z.value.length)]),ne("prev"),ne("next")]),re(),t.createVNode(tV,{onZoomIn:F,onZoomOut:T,onMirror:_,onReset:R,onRotate:B,onDownload:Y,scale:E.value,currentImage:H.value},null),t.createVNode(D_,{scale:E.value,rotate:A.value,mirror:N.value,src:H.value.mainImage,placementSrc:H.value.thumbnail,isSvg:H.value.isSvg,imageReferrerpolicy:f.value},null)]),[[t.vShow,y.value]])]}})]}})])}}}),iV=pi(lV),uV={action:{type:[String,Function]},content:{type:[String,Function]},default:{type:[String,Function]}},cV=t.defineComponent({name:"TListItem",props:uV,setup:function(){var e=Qa("list-item"),n=ei();return function(){var r=n("content"),o=n("default"),a=n("action");return t.createVNode("li",{class:e.value},[t.createVNode("div",{class:"".concat(e.value,"-main")},[o||r,a&&t.createVNode("li",{class:"".concat(e.value,"__action")},[a])])])}}}),sV={asyncLoading:{type:[String,Function]},footer:{type:[String,Function]},header:{type:[String,Function]},layout:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},scroll:{type:Object},size:{type:String,default:"medium",validator:function(e){return!e||["small","medium","large"].includes(e)}},split:Boolean,stripe:Boolean,onLoadMore:Function,onScroll:Function},dV="load-more";function vV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fV(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function mV(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=r.value.length?Qm("List","".concat(o," does not exist in data, check `index` or `key` please.")):a.scrollToElement(gV(gV({},e),{},{index:o-1})):Qm("List","scrollTo: `index` or `key` must exist.")}}}(e.scroll,a,d),f=v.virtualConfig,p=v.cursorStyle,m=v.listStyle,h=v.isVirtualScroll,g=v.onInnerVirtualScroll,y=v.scrollToElement,b=t.computed((function(){return["".concat(i.value),u.value[e.size],s(s(s({},"".concat(i.value,"--split"),e.split),"".concat(i.value,"--stripe"),e.stripe),"".concat(i.value,"--vertical-action"),"vertical"===e.layout)]})),w=function(t){var n,r=t.target,o=r.scrollTop,a=r.scrollHeight,l=r.clientHeight;h.value&&g(t),null===(n=e.onScroll)||void 0===n||n.call(e,{e:t,scrollTop:o,scrollBottom:a-l-o})},O=t.computed((function(){return Do(e.asyncLoading)&&["loading","load-more"].includes(e.asyncLoading)?"".concat(i.value,"__load ").concat(i.value,"__load--").concat(e.asyncLoading):"".concat(i.value,"__load")})),C=function(){if(e.asyncLoading&&Do(e.asyncLoading)){if("loading"===e.asyncLoading)return t.createVNode("div",null,[t.createVNode(mi,null,null),t.createVNode("span",null,[l.value.loadingText])]);if(e.asyncLoading===dV)return t.createVNode("span",null,[l.value.loadingMoreText])}return c("asyncLoading")},x=function(t){var n;Do(e.asyncLoading)&&e.asyncLoading!==dV||null===(n=e.onLoadMore)||void 0===n||n.call(e,{e:t})};return o({scrollTo:y}),function(){var e,n,r,o=[(e=c("header"),n=c("footer"),r=f.isVirtualScroll.value,t.createVNode(t.Fragment,null,[e?t.createVNode("div",{class:"".concat(i.value,"__header")},[e]):null,r?t.createVNode(t.Fragment,null,[t.createVNode("div",{style:p.value},null),t.createVNode("ul",{class:"".concat(i.value,"__inner"),style:m.value},[f.visibleData.value.map((function(e){return t.createVNode(t.Fragment,null,[t.createVNode(cV,ta(e,"slots"),e.slots)])}))])]):t.createVNode("ul",{class:"".concat(i.value,"__inner")},[c("default")]),n?t.createVNode("div",{class:"".concat(i.value,"__footer")},[n]):null])),t.createVNode("div",{class:O.value,onClick:x},[C()])];return t.createVNode("div",{class:b.value,onScroll:w,ref:a,style:h.value?"position:relative":void 0},[o])}}}),bV={avatar:{type:[String,Function]},description:{type:[String,Function]},image:{type:[String,Function]},title:{type:[String,Function]}},wV=t.defineComponent({name:"TListItemMeta",props:bV,setup:function(e,n){var r=Qa("list-item__meta"),o=ni(),a=ei(),l=function(){(e.avatar||n.slots.avatar)&&console.warn("`avatar` is going to be deprecated, please use `image` instead");var a=o("avatar","image");if(a)return Do(a)?t.createVNode("div",{class:"".concat(r.value,"-avatar")},[t.createVNode("img",{src:a},null)]):t.createVNode("div",{class:"".concat(r.value,"-avatar")},[a])};return function(){var e=a("title"),n=a("description"),o=[l(),t.createVNode("div",{class:"".concat(r.value,"-content")},[e&&t.createVNode("h3",{class:"".concat(r.value,"-title")},[e]),n&&t.createVNode("p",{class:"".concat(r.value,"-description")},[n])])];return t.createVNode("div",{class:r.value},[o])}}}),OV=pi(yV),CV=pi(cV),xV=pi(wV),PV="line",jV="plump",SV="circle",kV="small",NV="medium",_V="large",VV=72,DV=112,EV=160,FV=14/VV,TV=20/DV,IV=36/EV,MV=["success","error","warning"],AV={color:{type:[String,Object,Array],default:""},label:{type:[String,Boolean,Function],default:!0},percentage:{type:Number,default:0},size:{type:[String,Number],default:"medium"},status:{type:String,validator:function(e){return!e||["success","error","warning","active"].includes(e)}},strokeWidth:{type:[String,Number]},theme:{type:String,default:"line",validator:function(e){return!e||["line","plump","circle"].includes(e)}},trackColor:{type:String,default:""}},BV=t.defineComponent({name:"TProgress",props:AV,setup:function(e){var n=ei(),r=Qa("progress"),o=up({CloseCircleFilledIcon:yc,CheckCircleFilledIcon:ku,ErrorCircleFilledIcon:Qc,CloseIcon:xc,CheckIcon:Eu,ErrorIcon:os}),a=o.CloseCircleFilledIcon,l=o.CheckCircleFilledIcon,i=o.ErrorCircleFilledIcon,u=o.CloseIcon,c=o.CheckIcon,d=o.ErrorIcon,v=t.computed((function(){return!e.status&&e.percentage>=100?"success":e.status||"default"})),f=t.computed((function(){var t={};if(e.strokeWidth){var n=Do(e.strokeWidth)?e.strokeWidth:"".concat(e.strokeWidth,"px");t.height=n,t.borderRadius=n}return e.trackColor&&(t.backgroundColor=e.trackColor),t})),p=t.computed((function(){return{width:"".concat(e.percentage,"%"),background:e.color&&al(e.color)}})),m=t.computed((function(){return{stroke:E(e.color)?"":e.color}})),h=t.computed((function(){return{stroke:E(e.trackColor)?"":e.trackColor}})),g=t.computed((function(){var t=DV;if(!e.size)return t;var n=kV,r=_V,o=NV;switch(e.size){case n:t=VV;break;case o:t=DV;break;case r:t=EV;break;default:t=Number(e.size)}return t})),y=t.computed((function(){return g.value/2})),b=t.computed((function(){return y.value-O.value/2})),w=t.computed((function(){if(e.theme!==SV)return{};var t=g.value*TV;return g.value<=VV?t=g.value*FV:g.value>=EV&&(t=g.value*IV),{width:"".concat(g.value,"px"),height:"".concat(g.value,"px"),fontSize:"".concat(t,"px")}})),O=t.computed((function(){var t=e.size===kV?4:6;return e.strokeWidth?Number(e.strokeWidth):t})),C=t.computed((function(){var t=(g.value-O.value)/2,n=2*Math.PI*t,r=e.percentage/100;return"".concat(n*r," ").concat(n*(1-r))})),x=function(){var n,o,s="".concat(e.percentage,"%"),v=e.status||"";if(MV.includes(v)&&e.theme!==jV){var f=(n={success:c,warning:d,error:u},o={success:l,warning:i,error:a},e.theme===SV?n:o)[v];f&&(s=t.createVNode(f,{class:["".concat(r.value,"__icon")]},null))}return s};return function(){var o=t.createVNode("div",{class:"".concat(r.value,"__info")},[n("label",x())]),a=e.percentage>10?"".concat(r.value,"--over-ten"):"".concat(r.value,"--under-ten");return t.createVNode("div",{class:r.value},[e.theme===PV&&t.createVNode("div",{class:"".concat(r.value,"--thin ").concat(r.value,"--status--").concat(v.value)},[t.createVNode("div",{class:"".concat(r.value,"__bar"),style:f.value},[t.createVNode("div",{class:"".concat(r.value,"__inner"),style:p.value},null)]),o]),e.theme===jV&&t.createVNode("div",{class:["".concat(r.value,"__bar ").concat(r.value,"--plump ").concat(a),s({},"".concat(r.value,"--status--").concat(v.value),v.value)],style:f.value},[t.createVNode("div",{class:"".concat(r.value,"__inner"),style:p.value},[e.percentage>10&&o]),e.percentage<=10&&o]),e.theme===SV&&t.createVNode("div",{class:"".concat(r.value,"--circle ").concat(r.value,"--status--").concat(v.value),style:w.value},[o,t.createVNode("svg",{width:g.value,height:g.value,viewBox:"0 0 ".concat(g.value," ").concat(g.value)},[t.createVNode("circle",{cx:y.value,cy:y.value,r:b.value,"stroke-width":O.value,fill:"none",class:["".concat(r.value,"__circle-outer")],style:h.value},null),e.percentage>0&&t.createVNode("circle",{cx:y.value,cy:y.value,r:b.value,"stroke-width":O.value,fill:"none","stroke-linecap":"round",class:["".concat(r.value,"__circle-inner")],transform:"matrix(0,-1,1,0,0,".concat(g.value,")"),"stroke-dasharray":C.value,style:m.value},null)])])])}}}),LV=pi(BV),RV={animation:{type:String,default:"none",validator:function(e){return!e||["gradient","flashed","none"].includes(e)}},delay:{type:Number,default:0},loading:{type:Boolean,default:!0},rowCol:{type:Array},theme:{type:String,validator:function(e){return!e||["text","avatar","paragraph","avatar-text","tab","article"].includes(e)}}},zV={text:[1],avatar:[{type:"circle",size:"56px"}],paragraph:[1,1,{width:"70%"}],"avatar-text":[[{type:"circle"},{type:"text",height:"32px"}]],tab:[{height:"30px"},{height:"200px"}],article:[{type:"rect",height:"30px",width:"100%"},{type:"rect",height:"200px",width:"100%"},[{type:"text",height:"30px"},{type:"text",height:"30px"},{type:"text",height:"30px"}],[{type:"text",height:"30px"},{type:"text",height:"30px"}],[{type:"text",height:"30px"},{type:"text",height:"30px"}],[{type:"text",height:"30px"},{type:"text",height:"30px"}]]},HV=function(e){var t=Object.create(null);return["width","height","marginRight","marginLeft","margin","size","background","backgroundColor"].forEach((function(n){if(n in e){var r=e[n],o=Ho(r)?"".concat(r,"px"):r;if("size"===n){var a=[o,o];t.width=a[0],t.height=a[1]}else t[n]=o}})),t},WV=t.defineComponent({name:"TSkeleton",props:RV,setup:function(e,n){var r=n.slots,o=t.ref(!1),a=Qa("skeleton"),l=ni(),i=function(t){return["".concat(a.value,"__col"),"".concat(a.value,"--type-").concat(t.type||"text"),s({},"".concat(a.value,"--animation-").concat(e.animation),e.animation)]},u=function(n){var r=n||e.rowCol;return r.map((function(e){return t.createVNode("div",{class:["".concat(a.value,"__row")]},[(n=e,(j(n)?n:Ho(n)?new Array(n).fill({type:"text"}):[n]).map((function(e){return t.createVNode("div",{class:i(e),style:HV(e)},[H(e.content)?e.content(t.h):e.content])})))]);var n}))},c=null;return t.watch((function(){return e.loading}),(function(t){if(!t)return clearTimeout(c),void(o.value=!1);e.delay>0?c=setTimeout((function(){clearTimeout(c),o.value=!0}),e.delay):o.value=!0}),{immediate:!0}),function(){var n=l("default","content");if(r.default&&!o.value)return t.createVNode("div",null,[n]);if(o.value){var i=[];return e.theme&&i.push(u(zV[e.theme])),e.rowCol&&i.push(u(e.rowCol)),e.theme||e.rowCol||i.push(u([1,1,1,{width:"70%"}])),t.createVNode("div",{class:a.value},[i])}}}}),KV=pi(WV),UV={animation:{type:Object},animationStart:Boolean,color:{type:String,validator:function(e){return!e||["black","blue","red","orange","green"].includes(e)}},decimalPlaces:{type:Number},extra:{type:[String,Function]},format:{type:Function},loading:Boolean,prefix:{type:[String,Function]},separator:{type:String,default:","},suffix:{type:[String,Function]},title:{type:[String,Function]},trend:{type:String,validator:function(e){return!e||["increase","decrease"].includes(e)}},trendPlacement:{type:String,default:"left",validator:function(e){return!e||["left","right"].includes(e)}},unit:{type:[String,Function]},value:{type:Number}},YV=function(e){return 1-Math.abs(Math.pow(e-1,4))},$V=function(){return dg((function e(t){var n=this,r=t.from,o=t.to,a=t.duration,l=void 0===a?200:a,i=t.onStart,u=t.onUpdate,c=void 0===u?function(){}:u,d=t.onFinish;cg(this,e),s(this,"from",void 0),s(this,"to",void 0),s(this,"duration",void 0),s(this,"onStart",void 0),s(this,"onUpdate",void 0),s(this,"onFinish",void 0),s(this,"startTime",void 0),s(this,"started",void 0),s(this,"finished",void 0),s(this,"timer",void 0),s(this,"keys",void 0),s(this,"time",0),s(this,"elapsed",0),this.from=r,this.to=o,this.duration=l,this.onStart=i,this.onUpdate=c,this.onFinish=d,this.startTime=Date.now(),this.started=!1,this.finished=!1,this.timer=null,this.keys={},Object.entries(r).forEach((function(e){var t=Ha(e,2),r=t[0],o=t[1];void 0===n.to[r]&&(n.to[r]=o)})),Object.entries(o).forEach((function(e){var t=Ha(e,2),r=t[0],o=t[1];void 0===n.from[r]&&(n.from[r]=o)}))}),[{key:"update",value:function(){var e=this;if(this.time=Date.now(),!(this.time=this.duration)return this.finished=!0,void(null===(t=this.onFinish)||void 0===t||t.call(this,this.keys));var n=Math.min(this.time-this.startTime,this.duration);this.elapsed=n;var r,o=YV(n/this.duration);if(Object.keys(this.to).forEach((function(t){var n=e.to[t]-e.from[t];e.keys[t]=e.from[t]+n*o})),!this.started)null===(r=this.onStart)||void 0===r||r.call(this,this.keys),this.started=!0;this.onUpdate(this.keys)}}},{key:"polyfillStart",value:function(){var e=this,t=Date.now()-this.startTime,n=YV(t/this.duration);this.timer=setInterval((function(){e.update(),e.finished&&clearInterval(e.timer)}),n)}},{key:"normalStart",value:function(){var e=this,t=function(){e.update(),e.timer=requestAnimationFrame(t),e.finished&&(cancelAnimationFrame(e.timer),e.timer=null)};t()}},{key:"start",value:function(){this.startTime=Date.now(),ll()<10?this.polyfillStart():this.normalStart()}},{key:"stop",value:function(){ll()<10?clearInterval(this.timer):cancelAnimationFrame(this.timer),this.timer=null}}])}(),ZV={black:"var(--td-text-color-primary)",blue:"var(--td-brand-color)",red:"var(--td-error-color)",orange:"var(--td-warning-color)",green:"var(--td-success-color)"};var qV=t.defineComponent({name:"TStatistic",props:UV,setup:function(e,n){var r,o,a=n.expose,l=Qa("statistic"),i=ei(),u=up({ArrowTriangleUpFilledIcon:Gi,ArrowTriangleDownFilledIcon:Yi}),c=u.ArrowTriangleUpFilledIcon,s=u.ArrowTriangleDownFilledIcon,d={increase:t.createVNode(c,null,null),decrease:t.createVNode(s,null,null)},v=t.computed((function(){return Ho(e.value)?e.value:0})),f=t.ref(null!==(r=null===(o=e.animation)||void 0===o?void 0:o.valueFrom)&&void 0!==r?r:e.value),p=t.computed((function(){var t,n,r;return null!==(t=null!==(n=e.decimalPlaces)&&void 0!==n?n:null===(r=v.value.toString().split(".")[1])||void 0===r?void 0:r.length)&&void 0!==t?t:0})),m=t.ref(),h=t.toRefs(e).value,g=function(){var t,n,r,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null!==(t=null===(n=e.animation)||void 0===n?void 0:n.valueFrom)&&void 0!==t?t:0,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v.value;o!==a&&(m.value=new $V({from:{value:o},to:{value:a},duration:e.animation.duration,onUpdate:function(e){f.value=Number(e.value.toFixed(p.value))},onFinish:function(){f.value=a}}),null===(r=m.value)||void 0===r||r.start())},y=t.computed((function(){return H(e.format)?e.format(f.value):function(e,t,n){var r={minimumFractionDigits:null!=t?t:0,maximumFractionDigits:null!=t?t:20,useGrouping:!!n};return e.toLocaleString(void 0,r).replace(/,|\uff0c/g,n)}(f.value,e.decimalPlaces,e.separator)})),b=t.computed((function(){var t=e.color;return{color:ZV[t]||t}}));return t.watch((function(){return e.animationStart}),(function(t){e.animation&&t&&!m.value&&g()})),t.watch(h,(function(t){var n;m.value&&(null===(n=m.value)||void 0===n||n.stop(),m.value=null);f.value=t,e.animationStart&&e.animation&&g()})),t.onMounted((function(){return e.animation&&e.animationStart&&g()})),a({start:g}),function(){var n=e.trend?d[e.trend]:null,r=i("prefix")||(n&&"right"!==e.trendPlacement?n:null),o=i("suffix")||(n&&"right"===e.trendPlacement?n:null),a=i("title"),u=i("unit"),c=i("extra");return t.createVNode("div",{class:l.value},[a&&t.createVNode("div",{class:"".concat(l.value,"-title")},[a]),t.createVNode(KV,{animation:"gradient",theme:"text",loading:!!e.loading},{default:function(){return[t.createVNode("div",{class:"".concat(l.value,"-content"),style:b.value},[r&&t.createVNode("span",{class:"".concat(l.value,"-content-prefix")},[r]),t.createVNode("span",{class:"".concat(l.value,"-content-value")},[y.value]),u&&t.createVNode("span",{class:"".concat(l.value,"-content-unit")},[u]),o&&t.createVNode("span",{class:"".concat(l.value,"-content-suffix")},[o])])]}}),c&&t.createVNode("div",{class:"".concat(l.value,"-extra")},[c])])}}}),XV=pi(qV),GV={animation:{type:String,default:"slide",validator:function(e){return!e||["slide","fade"].includes(e)}},autoplay:{type:Boolean,default:!0},current:{type:Number,default:0},defaultCurrent:{type:Number,default:0},direction:{type:String,default:"horizontal",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},duration:{type:Number,default:300},height:{type:Number},interval:{type:Number,default:5e3},loop:{type:Boolean,default:!0},navigation:{type:[Object,Function]},stopOnHover:{type:Boolean,default:!0},theme:{type:String,default:"light",validator:function(e){return!e||["light","dark"].includes(e)}},trigger:{type:String,default:"hover",validator:function(e){return!e||["hover","click"].includes(e)}},type:{type:String,default:"default",validator:function(e){return!e||["default","card"].includes(e)}},onChange:Function};function JV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function QV(e){for(var t=1;t=e.swiperItemLength/2?e.swiperItemLength+1:e.index>e.currentIndex+1&&e.index-e.currentIndex>=e.swiperItemLength/2?-2:e.index})),i=t.computed((function(){if("card"!==e.type)return 0;var t=e.getWrapAttribute("offsetWidth")||0,n=!a.value&&e.swiperItemLength>2?l.value:e.index;return Math.abs(n-e.currentIndex)<=1?t*(.7375*(n-e.currentIndex)-nD+1)/2:n2?l.value:e.index,n=t===e.currentIndex,r=Math.round(Math.abs(t-e.currentIndex))<=1;return n?2:r?1:0})),c=t.computed((function(){if("fade"===e.animation)return{opacity:a.value?1:0,transition:e.isSwitching?"opacity ".concat(e.duration/1e3,"s"):"",zIndex:a.value?1:0};if("card"===e.type){var t=(!a.value&&e.swiperItemLength>2?l.value:e.index)===e.currentIndex;return{transform:"translateX(".concat(i.value,"px) scale(").concat(t?1:tD,")"),transition:"transform ".concat(e.duration/1e3,"s ease"),zIndex:u.value}}return{}}));return function(){var n;return t.createVNode("div",{class:["".concat(o.value,"-swiper__container__item"),s(s(s({},"".concat(o.value,"-swiper__card"),"card"===e.type),"".concat(o.value,"-is-active"),"card"===e.type&&a.value),"".concat(o.value,"-swiper__fade"),"fade"===e.animation)],style:c.value},[(null===(n=r.default)||void 0===n?void 0:n.call(r,{}))||[]])}}});function oD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function aD(e){for(var t=1;t=O.value:!e.loop&&p.value+2>=O.value})),P=t.computed((function(){return[e.autoplay,p.value,e.duration,e.interval]})),j=t.computed((function(){return s(s(s(s(s(s({},"".concat(o.value,"-swiper__wrap"),!0),"".concat(o.value,"-swiper--inside"),"inside"===C.value.placement),"".concat(o.value,"-swiper--outside"),"outside"===C.value.placement),"".concat(o.value,"-swiper--vertical"),"vertical"===e.direction),"".concat(o.value,"-swiper--large"),"large"===C.value.size),"".concat(o.value,"-swiper--small"),"small"===C.value.size)})),S=t.computed((function(){var t=e.height?"".concat(e.height,"px"):"".concat(I("offsetHeight"),"px");if("card"===e.type||"fade"===e.animation)return{height:t};if("slide"===e.animation){var n={transition:g.value?"transform ".concat(e.duration/1e3,"s ease"):""},r=p.value;return O.value>1&&(r+=1,(v||f)&&(n.transition="")),"vertical"===e.direction?(n.height=t,n.transform="translate3d(0, -".concat(100*r,"%, 0px)")):n.transform="translate3d(-".concat(100*r,"%, 0px, 0px)"),["msTransform","WebkitTransform"].forEach((function(e){n[e]=n.transform})),n}return{}})),k=function(){var n=w("SwiperItem");O.value=n.length;var r=n.map((function(n,r){var o,a,l=aD(aD({},e),n.props);return t.createVNode(rD,t.mergeProps({index:r,currentIndex:p.value,isSwitching:g.value,getWrapAttribute:I,swiperItemLength:O.value},l),"function"==typeof(a=o=n.children.default())||"[object Object]"===Object.prototype.toString.call(a)&&!t.isVNode(a)?o:{default:function(){return[o]}})}));if("slide"===e.animation&&r.length>1){var o=t.cloneVNode(r[0],{key:"swiper-item-append-".concat(0)}),a=t.cloneVNode(r[r.length-1],{key:"swiper-item-prepend-".concat(r.length-1)});r.unshift(a),r.push(o)}return r},N=function(t,n){var o,a=t%O.value;m.value=a,r("update:current",a),null===(o=e.onChange)||void 0===o||o.call(e,a,n),g.value=!0,"slide"===e.animation&&O.value>1&&"card"!==e.type&&(a=t,v=!1,f=!1,t>=O.value&&(_(),setTimeout((function(){f=!0,p.value=0}),e.duration)),0===p.value&&(O.value>2&&t===O.value-1||2===O.value&&0===t)&&(a=-1,m.value=O.value-1,_(),setTimeout((function(){v=!0,p.value=O.value-1}),e.duration))),p.value=a},_=function(){c&&(clearTimeout(c),c=null)},V=function(){e.autoplay&&e.interval>0&&(_(),c=setTimeout((function(){N(p.value+1,{source:"autoplay"})}),0===p.value?e.interval-(e.duration+50):e.interval))},D=function(){h.value=!0,e.stopOnHover&&_(),"hover"===C.value.showSlideBtn&&(y.value=!0)},E=function(){h.value=!1,x.value||V(),"hover"===C.value.showSlideBtn&&(y.value=!1)},F=function(t){if(!g.value)return"card"===e.type?N(p.value+1>=O.value?0:p.value+1,t):N(p.value+1,t)},T=function(t){if(!g.value)return p.value-1<0?"slide"===e.animation&&2===O.value?N(0,t):N(O.value-1,t):N(p.value-1,t)},I=function(e){var t;return null===(t=b.value)||void 0===t||null===(t=t.parentNode)||void 0===t?void 0:t[e]},M=function(){if(t.isVNode(e.navigation))return e.navigation;var n,r=a("navigation");if(r&&t.isVNode(null==r?void 0:r[0]))return r;if("fraction"===C.value.type)return t.createVNode("div",{class:["".concat(o.value,"-swiper__navigation"),"".concat(o.value,"-swiper__navigation--fraction")]},[(n=p.value+1>O.value?1:p.value+1,t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow")},[t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-left"),onClick:function(){return T({source:"click"})}},[t.createVNode(i,null,null)]),t.createVNode("div",{class:"".concat(o.value,"-swiper__navigation-text-fraction")},[n,"/",O.value]),t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-right"),onClick:function(){return F({source:"click"})}},[t.createVNode(u,null,null)])]))]);var l=w("SwiperItem");return t.createVNode("ul",{class:["".concat(o.value,"-swiper__navigation"),s(s(s({},"".concat(o.value,"-swiper__navigation-bars"),"bars"===C.value.type),"".concat(o.value,"-swiper__navigation-dots"),"dots"===C.value.type),"".concat(o.value,"-swiper__navigation-dots-bar"),"dots-bar"===C.value.type)]},[l.map((function(n,r){return t.createVNode("li",{key:r,class:["".concat(o.value,"-swiper__navigation-item"),s({},"".concat(o.value,"-is-active"),r===m.value)],onMouseenter:function(){return function(t){"hover"===e.trigger&&N(t,{source:"hover"})}(r)},onClick:function(){return function(t){"click"===e.trigger&&N(t,{source:"click"})}(r)}},[t.createVNode("span",null,null)])}))])};return t.watch((function(){return P.value}),(function(){V()})),t.watch((function(){return g.value}),(function(){g.value&&(d&&clearTimeout(d),d=setTimeout((function(){g.value=!1,d=0,x.value&&_()}),e.duration+50))})),t.watch((function(){return e.current}),(function(){N(e.current,{source:"autoplay"})})),t.onMounted((function(){V(),y.value="always"===C.value.showSlideBtn})),function(){return t.createVNode("div",{class:["".concat(o.value,"-swiper")],onMouseenter:D,onMouseleave:E,ref:b},[t.createVNode("div",{class:j.value},[t.createVNode("div",{class:["".concat(o.value,"-swiper__content"),s(s({},"".concat(o.value,"-swiper-fade"),"fade"===e.animation),"".concat(o.value,"-swiper-card"),"card"===e.type)]},[t.createVNode("div",{class:"".concat(o.value,"-swiper__container"),style:S.value},[k()])]),M(),y.value?t.createVNode("div",{class:["".concat(o.value,"-swiper__arrow"),"".concat(o.value,"-swiper__arrow--default")]},[t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-left"),onClick:function(){return T({source:"click"})}},[t.createVNode(i,null,null)]),t.createVNode("div",{class:"".concat(o.value,"-swiper__arrow-right"),onClick:function(){return F({source:"click"})}},[t.createVNode(u,null,null)])]):null])])}}}),uD=pi(iD),cD=pi(rD),sD={activeRowKeys:{type:Array,default:void 0},defaultActiveRowKeys:{type:Array,default:function(){return[]}},activeRowType:{type:String,default:""},allowResizeColumnWidth:{type:Boolean,default:void 0},attach:{type:[String,Function]},bordered:Boolean,bottomContent:{type:[String,Function]},cellEmptyContent:{type:[String,Function]},columns:{type:Array,default:function(){return[]}},data:{type:Array,default:function(){return[]}},disableDataPage:Boolean,disableSpaceInactiveRow:{type:Boolean,default:void 0},empty:{type:[String,Function],default:""},firstFullRow:{type:[String,Function]},fixedRows:{type:Array},footData:{type:Array,default:function(){return[]}},footerAffixProps:{type:Object},footerAffixedBottom:{type:[Boolean,Object],default:!1},footerSummary:{type:[String,Function]},headerAffixProps:{type:Object},headerAffixedTop:{type:[Boolean,Object],default:!1},height:{type:[String,Number]},horizontalScrollAffixedBottom:{type:[Boolean,Object]},hover:Boolean,keyboardRowHover:{type:Boolean,default:!0},lastFullRow:{type:[String,Function]},lazyLoad:Boolean,loading:{type:[Boolean,Function],default:void 0},loadingProps:{type:Object},locale:{type:Object},maxHeight:{type:[String,Number]},pagination:{type:Object},paginationAffixedBottom:{type:[Boolean,Object]},resizable:Boolean,rowAttributes:{type:[Object,Array,Function]},rowClassName:{type:[String,Object,Array,Function]},rowKey:{type:String,default:"id",required:!0},rowspanAndColspan:{type:Function},rowspanAndColspanInFooter:{type:Function},scroll:{type:Object},showHeader:{type:Boolean,default:!0},size:{type:String,validator:function(e){return!e||["small","medium","large"].includes(e)}},stripe:Boolean,tableContentWidth:{type:String,default:""},tableLayout:{type:String,default:"fixed",validator:function(e){return!e||["auto","fixed"].includes(e)}},topContent:{type:[String,Function]},verticalAlign:{type:String,default:"middle",validator:function(e){return!e||["top","middle","bottom"].includes(e)}},onActiveChange:Function,onActiveRowAction:Function,onCellClick:Function,onColumnResizeChange:Function,onPageChange:Function,onRowClick:Function,onRowDblclick:Function,onRowMousedown:Function,onRowMouseenter:Function,onRowMouseleave:Function,onRowMouseover:Function,onRowMouseup:Function,onScroll:Function,onScrollX:Function,onScrollY:Function};function dD(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=n,o=0,a=e.length;or&&(r=u)}}return r}function vD(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(null==e?void 0:e.children)||[],r=0,o=n.length;r1&&(v.rowspan=s),d>1&&(v.colspan=d),r.set(c,v),null!=c&&null!==(u=c.children)&&void 0!==u&&u.length?o(c.children,a):a.push(c)}},a=[];return o(e,a),{rowspanAndColspanMap:r,leafColumns:a}}function pD(){var e=Qa();return{classPrefix:e.value,tableBaseClass:{table:"".concat(e.value,"-table"),columnResizableTable:"".concat(e.value,"-table--column-resizable"),overflowVisible:"".concat(e.value,"-table--overflow-visible"),body:"".concat(e.value,"-table__body"),content:"".concat(e.value,"-table__content"),topContent:"".concat(e.value,"-table__top-content"),bottomContent:"".concat(e.value,"-table__bottom-content"),paginationWrap:"".concat(e.value,"-table__pagination-wrap"),tdLastRow:"".concat(e.value,"-table__td-last-row"),tdFirstCol:"".concat(e.value,"-table__td-first-col"),thCellInner:"".concat(e.value,"-table__th-cell-inner"),tableRowEdit:"".concat(e.value,"-table--row-edit"),cellEditable:"".concat(e.value,"-table__cell--editable"),cellEditWrap:"".concat(e.value,"-table__cell-wrap"),bordered:"".concat(e.value,"-table--bordered"),striped:"".concat(e.value,"-table--striped"),hover:"".concat(e.value,"-table--hoverable"),loading:"".concat(e.value,"-table--loading"),rowspanAndColspan:"".concat(e.value,"-table--rowspan-colspan"),empty:"".concat(e.value,"-table__empty"),emptyRow:"".concat(e.value,"-table__empty-row"),headerFixed:"".concat(e.value,"-table--header-fixed"),columnFixed:"".concat(e.value,"-table--column-fixed"),widthOverflow:"".concat(e.value,"-table--width-overflow"),multipleHeader:"".concat(e.value,"-table--multiple-header"),footerAffixed:"".concat(e.value,"-table--footer-affixed"),horizontalBarAffixed:"".concat(e.value,"-table--horizontal-bar-affixed"),affixedHeader:"".concat(e.value,"-table--affixed-header"),affixedHeaderElm:"".concat(e.value,"-table__affixed-header-elm"),affixedFooterElm:"".concat(e.value,"-table__affixed-footer-elm"),affixedFooterWrap:"".concat(e.value,"-table__affixed-footer-wrap"),scrollbarDivider:"".concat(e.value,"-table__scroll-bar-divider"),fullHeight:"".concat(e.value,"-table--full-height"),resizeLine:"".concat(e.value,"-table__resize-line"),obviousScrollbar:"".concat(e.value,"-table__scrollbar--obvious"),affixedHeaderWrap:"".concat(e.value,"-table__affixed-header-elm-wrap")},tdAlignClasses:{left:"".concat(e.value,"-align-left"),right:"".concat(e.value,"-align-right"),center:"".concat(e.value,"-align-center")},tableHeaderClasses:{header:"".concat(e.value,"-table__header"),thBordered:"".concat(e.value,"-table__header-th--bordered"),fixed:"".concat(e.value,"-table__header--fixed"),multipleHeader:"".concat(e.value,"-table__header--multiple")},tableFooterClasses:{footer:"".concat(e.value,"-table__footer"),fixed:"".concat(e.value,"-table__footer--fixed")},tableAlignClasses:{top:"".concat(e.value,"-vertical-align-top"),middle:"".concat(e.value,"-vertical-align-middle"),bottom:"".concat(e.value,"-vertical-align-bottom")},tableRowFixedClasses:{top:"".concat(e.value,"-table__row--fixed-top"),bottom:"".concat(e.value,"-table__row--fixed-bottom"),firstBottom:"".concat(e.value,"-table__row--fixed-bottom-first"),withoutBorderBottom:"".concat(e.value,"-table__row--without-border-bottom")},tableColFixedClasses:{left:"".concat(e.value,"-table__cell--fixed-left"),right:"".concat(e.value,"-table__cell--fixed-right"),lastLeft:"".concat(e.value,"-table__cell--fixed-left-last"),firstRight:"".concat(e.value,"-table__cell--fixed-right-first"),leftShadow:"".concat(e.value,"-table__content--scrollable-to-left"),rightShadow:"".concat(e.value,"-table__content--scrollable-to-right")},tableLayoutClasses:{auto:"".concat(e.value,"-table--layout-auto"),fixed:"".concat(e.value,"-table--layout-fixed")},tdEllipsisClass:"".concat(e.value,"-table-td--ellipsis"),tableFullRowClasses:{base:"".concat(e.value,"-table__row--full"),innerFullRow:"".concat(e.value,"-table__row-full-inner"),innerFullElement:"".concat(e.value,"-table__row-full-element"),firstFullRow:"".concat(e.value,"-table__first-full-row"),lastFullRow:"".concat(e.value,"-table__last-full-row")},tableExpandClasses:{iconBox:"".concat(e.value,"-table__expand-box"),iconCell:"".concat(e.value,"-table__expandable-icon-cell"),rowExpanded:"".concat(e.value,"-table__row--expanded"),rowFolded:"".concat(e.value,"-table__row--folded"),row:"".concat(e.value,"-table__expanded-row"),rowInner:"".concat(e.value,"-table__expanded-row-inner"),expanded:"".concat(e.value,"-table__row--expanded"),collapsed:"".concat(e.value,"-table__row--collapsed")},tableSortClasses:{sortable:"".concat(e.value,"-table__cell--sortable"),sortColumn:"".concat(e.value,"-table__sort-column"),title:"".concat(e.value,"-table__cell--title"),trigger:"".concat(e.value,"-table__cell--sort-trigger"),doubleIcon:"".concat(e.value,"-table__double-icons"),sortIcon:"".concat(e.value,"-table__sort-icon"),iconDirection:{asc:"".concat(e.value,"-table-sort-asc"),desc:"".concat(e.value,"-table-sort-desc")},iconActive:"".concat(e.value,"-table__sort-icon--active"),iconDefault:"".concat(e.value,"-icon-sort--default")},tableSelectedClasses:{selected:"".concat(e.value,"-table__row--selected"),disabled:"".concat(e.value,"-table__row--disabled"),checkCell:"".concat(e.value,"-table__cell-check")},tableFilterClasses:{filterable:"".concat(e.value,"-table__cell--filterable"),popup:"".concat(e.value,"-table__filter-pop"),icon:"".concat(e.value,"-table__filter-icon"),popupContent:"".concat(e.value,"-table__filter-pop-content"),result:"".concat(e.value,"-table__filter-result"),inner:"".concat(e.value,"-table__row-filter-inner"),bottomButtons:"".concat(e.value,"-table__filter--bottom-buttons"),contentInner:"".concat(e.value,"-table__filter-pop-content-inner"),iconWrap:"".concat(e.value,"-table__filter-icon-wrap")},asyncLoadingClass:"".concat(e.value,"-table__async-loading"),isFocusClass:"".concat(e.value,"-is-focus"),isLoadingClass:"".concat(e.value,"-is-loading"),isLoadMoreClass:"".concat(e.value,"-is-load-more"),tableTreeClasses:{col:"".concat(e.value,"-table__tree-col"),inlineCol:"".concat(e.value,"-table__tree-col--inline"),icon:"".concat(e.value,"-table__tree-op-icon"),leafNode:"".concat(e.value,"-table__tree-leaf-node")},tableDraggableClasses:{rowDraggable:"".concat(e.value,"-table--row-draggable"),rowHandlerDraggable:"".concat(e.value,"-table--row-handler-draggable"),colDraggable:"".concat(e.value,"-table--col-draggable"),handle:"".concat(e.value,"-table__handle-draggable"),ghost:"".concat(e.value,"-table__ele--draggable-ghost"),chosen:"".concat(e.value,"-table__ele--draggable-chosen"),dragging:"".concat(e.value,"-table__ele--draggable-dragging"),dragSortTh:"".concat(e.value,"-table__th--drag-sort")},virtualScrollClasses:{cursor:"".concat(e.value,"-table__virtual-scroll-cursor"),header:"".concat(e.value,"-table__virtual-scroll-header")},positiveRotate90:"".concat(e.value,"-positive-rotate-90"),negativeRotate180:"".concat(e.value,"-negative-rotate-180")}}function mD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var hD=t.defineComponent({name:"TEllipsis",props:{content:{type:[String,Function]},default:{type:[String,Function]},tooltipContent:{type:[String,Number,Function]},placement:String,attach:[String,Function],tooltipProps:Object,zIndex:Number,overlayClassName:String,classPrefix:{type:String,default:"t"}},setup:function(e){var n=t.ref(),r=t.ref(!1),o=t.ref(!1),a=t.computed((function(){return["".concat(e.classPrefix,"-table__ellipsis"),"".concat(e.classPrefix,"-text-ellipsis")]})),l=t.computed((function(){return["".concat(e.classPrefix,"-table__ellipsis-content"),e.overlayClassName]}));t.onMounted((function(){o.value=Bl(n.value)})),t.onUpdated((function(){o.value=Bl(n.value)}));var i=po((function(e){"mouseleave"===e.type?n.value:n.value&&(r.value=!0)}),80);return{flag:r,root:n,isOverflow:o,ellipsisClasses:a,innerEllipsisClassName:l,onMouseAround:i,handleVisibleChange:function(e){e||(r.value=!1)}}},render:function(){var e,n,r,o,a,l,i,u,c,d,v,f=(e=this,n="default",r="content",a=ql(o),l=$l(o),u=Gl(e,n,i=a?{params:a}:void 0),c=Gl(e,r,i),d=Ro(u)?c:u,Ro(d)?l:d),p=t.createVNode("div",{ref:"root",class:this.ellipsisClasses,onMouseenter:this.onMouseAround,onMouseleave:this.onMouseAround,style:{textOverflow:this.isOverflow?"ellipsis":"clip"}},[f]),m=null,h=this.tooltipProps;if(this.isOverflow&&this.flag){var g=function(e){for(var t=1;t1}));return{thList:l,isMultipleHeader:i,spansAndLeafNodes:a,renderTitleWidthIcon:function(n,a,l,i,c,d){var v,f=Ha(n,3),p=f[0],m=f[1],h=f[2],g=s(s({},r.sortable,m),o.filterable,h),y=H(i)?i(t.h,{col:a,colIndex:l}):void 0,b=void 0!==i?Boolean(i):Boolean(a.ellipsis);return t.createVNode("div",{class:g},[t.createVNode("div",{class:r.title},[b?t.createVNode(hD,{placement:"bottom",attach:e.attach||(c?function(){return c}:void 0),tooltipContent:y&&function(){return y},tooltipProps:"object"===u(i)?i:void 0,classPrefix:null==d?void 0:d.classPrefix,overlayClassName:null==d?void 0:d.ellipsisOverlayClassName},(v=p,"function"==typeof v||"[object Object]"===Object.prototype.toString.call(v)&&!t.isVNode(v)?p:{default:function(){return[p]}})):t.createVNode("div",null,[p]),Boolean(m||h)&&t.createVNode("div",{class:o.iconWrap},[m,h])])])}}}function OD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function CD(e){var n,r,o=e.isWidthOverflow,a=e.tableContentRef,l=e.showColumnShadow,i=e.getThWidthList,u=e.updateThWidthList,c=e.setTableElmWidth,d=e.updateTableAfterColumnResize,v=e.onColumnResizeChange,f=t.ref(),p=t.ref({}),m=t.ref([]);t.onMounted((function(){var e="undefined"!=typeof document;n=e?document.onselectstart:null,r=e?document.ondragstart:null}));var h=function(e,t,n){for(var r=t;e[r]&&!1===e[r].resizable;)"next"===n?r+=1:r-=1;return e[r]},g=function(e,t){e&&(m.value=e,e.forEach((function(n,r){var o=h(e,r-1,"prev"),a=h(e,r+1,"next"),l=t?p.value[t.colKey].prev:a,i=t?p.value[t.colKey].next:o,u=0===r?l:o,c=r===e.length-1?i:a;p.value[n.colKey]={prev:u,next:c,current:{prevSibling:h(e,r-1,"prev"),nextSibling:h(e,r+1,"next")}},g(n.children,n)})))},y={isDragging:!1,draggingCol:null,draggingStart:0,effectCol:"next"},b=t.reactive({display:"none",height:"10px",left:"10px",bottom:"0"}),w=function(e){return"right"===e.fixed&&l.right},O=function(e){var t,n,r=Ho(e.minWidth)?e.minWidth:parseInt(e.minWidth||"0",10);return{minColWidth:Math.max((null===(t=e.resize)||void 0===t?void 0:t.minWidth)||80,r),maxColWidth:(null===(n=e.resize)||void 0===n?void 0:n.maxWidth)||600}},C=function(e,t,n,r){return t?function(e,t,n,r){var o=n.right-r.left,a=n.left-r.left,l="next"===y.effectCol?e:t,i=O(l);return{resizeLinePos:o,minResizeLineLeft:a+i.minColWidth,maxResizeLineLeft:a+i.maxColWidth}}(e,t,n,r):function(e,t){var n=e.left-t.left,r=e.left-t.left;return{resizeLinePos:n,minResizeLineLeft:r,maxResizeLineLeft:r}}(n,r)};return{resizeLineRef:f,resizeLineStyle:b,onColumnMouseover:function(e,t){if(f.value&&!y.isDragging&&e.target){var n=e.target.closest("th"),r=n.getAttribute("data-colkey");if(m.value.find((function(e){return e.colKey===r}))){var o,a=n.getBoundingClientRect(),l=a.right-e.pageX<=8,i=e.pageX-a.left<=8,u=w(t);if(l||u){if(null===(o=t.resizable)||void 0===o||o){n.style.cursor=l||u&&i?"col-resize":"";var c=l&&!u||u&&i;return y.draggingCol=c?n:n.nextElementSibling,void(y.effectCol="next")}}else if(i){var s=n.previousElementSibling;if(s){var d,v,h=null===(d=p.value[t.colKey])||void 0===d?void 0:d.prev;if(null===(v=null==h?void 0:h.resizable)||void 0===v||v)return n.style.cursor="col-resize",y.draggingCol=s,void(y.effectCol="prev")}}n.style.cursor="",y.draggingCol=null,y.effectCol=null}}},onColumnMousedown:function(e,t,l){var h,g,x;if(y.draggingCol){var P=y.draggingCol,j=P.getBoundingClientRect(),S=null===(h=a.value)||void 0===h?void 0:h.getBoundingClientRect(),k=null===(g=p.value[t.colKey])||void 0===g?void 0:g.next,N=null===(x=p.value[t.colKey])||void 0===x?void 0:x.prev,_=w(t)?function(e,t,n,r,o){var a=r.left-o.left,l=e.dataset.colkey===t.colKey?t:n,i=r.left-o.left,u=O(l),c=u.minColWidth,s=u.maxColWidth;return{resizeLinePos:a,minResizeLineLeft:i+(r.width-s),maxResizeLineLeft:i+(r.width-c)}}(P,t,k,j,S):C(t,k,j,S),V=_.resizeLinePos,D=_.minResizeLineLeft,E=_.maxResizeLineLeft;if(y.isDragging=!0,y.draggingStart=e.x,null!=f&&f.value){b.display="block",b.height="".concat(S.bottom-j.top,"px"),b.left="".concat(V,"px");var F=a.value.parentElement.getBoundingClientRect();b.bottom="".concat(F.bottom-S.bottom,"px")}var T=function(){var e;if(y.isDragging){var a=V-parseFloat(b.left)||0,f=i("calculate"),h=null===(e=p.value[t.colKey])||void 0===e?void 0:e.current;if(h){var g="next"===y.effectCol?h.nextSibling:h.prevSibling,C=function(e){for(var t=1;tu}return!(a||o.value||r===m.value.length-1)}(C,"next"===y.effectCol?h.nextSibling:t,a,l);"next"===y.effectCol?w(t)?P.dataset.colkey!==t.colKey?C[k.colKey]+=a:C[x.colKey]+=a:(C[x.colKey]-=a,j&&(C[k.colKey]+=a)):"prev"===y.effectCol&&(j&&(C[x.colKey]+=a),N&&(C[N.colKey]-=a)),u(C);var S=function(e){var t=0;return m.value.forEach((function(n){t+=e[n.colKey]})),t}(C);c(Math.round(S)),d(),y.isDragging=!1,y.draggingCol=null,y.effectCol=null,P.style.cursor="",b.display="none",b.left="0",_l(document,"mouseup",T),_l(document,"mousemove",I),document.onselectstart=n,document.ondragstart=r,null==v||v({columnsWidth:C})}}},I=function(e){if(y.isDragging){var t=V+e.x-y.draggingStart;b.left="".concat(Math.min(Math.max(t,D),E),"px")}};Nl(document,"mouseup",T),Nl(document,"mousemove",I),document.onselectstart=function(){return!1},document.ondragstart=function(){return!1}}},setEffectColMap:g}}function xD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function PD(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:new Map,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4?arguments[4]:void 0,a=0,l=e.length;a2&&void 0!==arguments[2]?arguments[2]:{},r=0,o=e.length;r=0&&"left"!==e[u].fixed;)u-=1;var c=e[u],s=0===r&&(null==n?void 0:n.left)||0,d=t.get((null==c?void 0:c.colKey)||r-1);i&&(i.left=((null==d?void 0:d.left)||s)+((null==d?void 0:d.width)||0)),null!==(a=l.children)&&void 0!==a&&a.length&&B(l.children,t,i)}},L=function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=e.length-1;r>=0;r--){var o,a=e[r];if("left"===a.fixed)return;for(var l=t.get(a.colKey||r),i=r+1;i=u.length-i;b--){var w=t[t.length-(u.length-b)],O=St(u[b],d),C=n.get(O)||{},x=St(u[b+1],d),P=n.get(x)||{},j=0;b===u.length-1&&(j=(null==o?void 0:o.getBoundingClientRect().height)||0),C.bottom=(P.bottom||j)+(P.height||0),n.set(O,PD(PD({},C),{},{height:(null==w?void 0:w.getBoundingClientRect().height)||0}))}}(o.children,n,r,a),j.value=n}},z=function(e,t){if(D.value&&e){var n=e.scrollLeft;if(A!==n||t&&t.skipScrollLimit){A=n;var r=e.clientWidth+n0;S.left===o&&S.right===r||(S.left=o&&F.value,S.right=r&&E.value)}}},H=function(){var e=M(l.value),t=e.newColumnsMap;!function(e){for(var t=0;tw.value.clientHeight,C.value=w.value.scrollWidth>w.value.clientWidth;var t=w.value.getBoundingClientRect();k.value={top:t.top,left:t.left},clearTimeout(e)}}),0)},K=function(e){_.value!==e&&(_.value=e)},U=function(){var e,t,n,r,a,l,i,u;null===(e=o.paginationAffixRef.value)||void 0===e||null===(t=e.handleScroll)||void 0===t||t.call(e),null===(n=o.horizontalScrollAffixRef.value)||void 0===n||null===(r=n.handleScroll)||void 0===r||r.call(n),null===(a=o.headerTopAffixRef.value)||void 0===a||null===(l=a.handleScroll)||void 0===l||l.call(a),null===(i=o.footerBottomAffixRef.value)||void 0===i||null===(u=i.handleScroll)||void 0===u||u.call(i)},Y=function(e){for(var t={},n=0,r=e.length;n0&&void 0!==arguments[0]?arguments[0]:0)+(arguments.length>1?arguments[1]:void 0)})),d=w.value.clientWidth,v=s-u;K(Math.max(d,v))}}));var X=function(){Z(),W(),U(),(D.value||O.value)&&(H(),z(w.value,{skipScrollLimit:!0})),"auto"===i.value&&$(q("calculate"))},G=po((function(){X()}),30),J=null;t.onMounted((function(){var e=function(){if("undefined"==typeof navigator||!navigator)return 6;if(/(Chrome|Safari)/i.test(navigator.userAgent))return 6;var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),/Firefox/.test(navigator.userAgent)&&(t-=4),ll()<=11&&(t=12),t}();P.value=e,Z();var t=D.value||O.value||!I.value||!y.value.length,n="undefined"!=typeof window&&void 0!==window.ResizeObserver;(t&&ll()<11||!n)&&Nl(window,"resize",G)})),t.onBeforeUnmount((function(){var e,t;"undefined"!=typeof window&&_l(window,"resize",G),null===(e=J)||void 0===e||e.unobserve(b.value),null===(t=J)||void 0===t||t.disconnect()}));return{tableWidth:N,tableElmWidth:_,thWidthList:V,isFixedHeader:O,isWidthOverflow:C,tableContentRef:w,isFixedColumn:D,showColumnShadow:S,rowAndColFixedPosition:j,virtualScrollHeaderPos:k,scrollbarWidth:P,setData:function(e){y.value=e},refreshTable:X,setTableElmWidth:K,emitScrollEvent:function(t){var n,r,o;null===(n=e.onScrollX)||void 0===n||n.call(e,{e:t}),null===(r=e.onScrollY)||void 0===r||r.call(e,{e:t}),null===(o=e.onScroll)||void 0===o||o.call(e,{e:t})},updateThWidthListHandler:Z,updateColumnFixedShadow:z,setUseFixedTableElmRef:function(e){x.value=e},getThWidthList:q,updateThWidthList:$,addTableResizeObserver:function(e){"undefined"!=typeof window&&(ll()<11||void 0===window.ResizeObserver||(_l(window,"resize",G),(J=new window.ResizeObserver((function(){var e=setTimeout((function(){X(),clearTimeout(e)}),200)}))).observe(e),b.value=e))},updateTableAfterColumnResize:function(){H(),W()}}}function kD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ND(e,n){var r=t.toRefs(e),o=r.pagination,a=r.data,l=r.disableDataPage,i=Ga().classPrefix,u=t.ref(e.pagination),c=t.ref([]),d=t.ref(!1),v=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,r=e.data,o=Boolean(!l.value&&r.length>n);if(d.value=o,o){var a=(t-1)*n,i=t*n;c.value=r.slice(a,i)}else c.value=r};t.watch((function(){var e,t;return[null===(e=o.value)||void 0===e?void 0:e.current,null===(t=o.value)||void 0===t?void 0:t.pageSize,a.value.length,l]}),(function(){if(o.value&&o.value.current){var e=o.value,t=e.current,n=e.pageSize;u.value={current:t,pageSize:n},v(o.value.current,o.value.pageSize)}}),{immediate:!0}),t.watch([a],(function(){var e,t;o.value&&o.value.defaultCurrent&&(Boolean(o.value.current)||v(null!==(e=u.value.current)&&void 0!==e?e:o.value.defaultCurrent,null!==(t=u.value.pageSize)&&void 0!==t?t:o.value.defaultPageSize))}),{immediate:!0});return{isPaginateData:d,dataSource:c,innerPagination:u,renderPagination:function(){if(!e.pagination)return null;var r=function(e){for(var t=1;te.height},g=function(){var t,s,d;if(f.value||v.value||n.value){var p,m=null===(t=n.value)||void 0===t?void 0:t.getBoundingClientRect(),g=null===(s=n.value)||void 0===s||null===(s=s.querySelector("thead"))||void 0===s?void 0:s.getBoundingClientRect(),y=(null==g?void 0:g.height)||0,b=null===(d=o.value)||void 0===d?void 0:d.getBoundingClientRect();if((e.headerAffixedTop||v.value)&&r.value){var w=Mo(p=e.headerAffixProps||e.headerAffixedTop)?0:p.offsetTop||0,O=(null==b?void 0:b.height)||0,C=Math.abs(m.top)-1*g.height),i.value=C}if(e.footerAffixedBottom&&null!=o&&o.value)u.value=h(b,m,y);else if(e.horizontalScrollAffixedBottom&&null!=a&&a.value){var x=a.value.getBoundingClientRect();u.value=h(x,m,y)}if(e.paginationAffixedBottom&&l.value){var P=l.value.getBoundingClientRect();c.value=h(P,m,y)}}},y=function(){g()},b=function(){m(o.value)},w=function(){m(r.value)},O=function(){m(a.value)},C=function(){m(n.value)},x=function(){Nl(o.value,"scroll",b)},P=function(){_l(o.value,"scroll",b)},j=function(){Nl(r.value,"scroll",w),F()},S=function(){s||_l(r.value,"scroll",w),T()},k=function(){Nl(a.value,"scroll",O)},N=function(){_l(a.value,"scroll",O)},_=function(){Nl(n.value,"scroll",C),F()},V=function(){s||_l(n.value,"scroll",C),T()},D=function(){s=!0},E=function(){s=!1,d||(_l(r.value,"scroll",w),_l(n.value,"scroll",C))},F=function(){d=!0},T=function(){d=!1},I=[],M=function(e){var t=po((function(t){_l(e,"scroll",t)}),200);function n(){m(e),t(n)}function r(r){r.composedPath().includes(e)&&(I.forEach((function(e){return e()})),I.length=0,Nl(e,"scroll",n),t(n),I.push((function(){_l(e,"scroll",n)})))}return Nl(e,"touchstart",r),{removeElementTouchScrollListener:function(){_l(e,"touchstart",r)}}},A=[],B=function(){_l(window,"mousedown",D),_l(window,"mouseup",E),A.forEach((function(e){return e()})),A.length=0,r.value&&(_l(r.value,"mouseenter",j),_l(r.value,"mouseleave",S)),o.value&&(_l(o.value,"mouseenter",x),_l(o.value,"mouseleave",P)),n.value&&(_l(n.value,"mouseenter",_),_l(n.value,"mouseleave",V)),a.value&&(_l(a.value,"mouseenter",k),_l(a.value,"mouseleave",N))},L=function(){if(f.value||e.paginationAffixedBottom)var t=setTimeout((function(){f.value||e.paginationAffixedBottom?Nl(document,"scroll",y):_l(document,"scroll",y),clearTimeout(t)}))};t.watch([r,o,a,n],(function(){!function(){if(Nl(window,"mousedown",D),Nl(window,"mouseup",E),B(),r.value){Nl(r.value,"mouseenter",j),Nl(r.value,"mouseleave",S);var t=M(r.value).removeElementTouchScrollListener;A.push(t)}if(e.footerAffixedBottom&&o.value){Nl(o.value,"mouseenter",x),Nl(o.value,"mouseleave",P);var l=M(o.value).removeElementTouchScrollListener;A.push(l)}if(e.horizontalScrollAffixedBottom&&a.value){Nl(a.value,"mouseenter",k),Nl(a.value,"mouseleave",N);var i=M(a.value).removeElementTouchScrollListener;A.push(i)}if((f.value||v.value)&&n.value){Nl(n.value,"mouseenter",_),Nl(n.value,"mouseleave",V);var u=M(n.value).removeElementTouchScrollListener;A.push(u)}}(),m(),g()})),t.watch(f,L),t.watch((function(){return[e.data,e.columns,e.headerAffixedTop,e.footerAffixedBottom,e.horizontalScrollAffixedBottom]}),(function(){m()})),t.onBeforeUnmount((function(){_l(document,"scroll",y),B(),r.value=null,o.value=null,a.value=null,n.value=null}));return{showAffixHeader:i,showAffixFooter:u,showAffixPagination:c,affixHeaderRef:r,affixFooterRef:o,horizontalScrollbarRef:a,paginationRef:l,onHorizontalScroll:m,setTableContentRef:function(e){n.value=e,L()},updateAffixHeaderOrFooter:g}}function VD(e,t){if(e){for(var n=e instanceof Array?e:[e],r={},o=0;o6&&void 0!==arguments[6]?arguments[6]:0;if(!r||!r.length)return{style:void 0,classes:void 0};var i=tn-1-r[1],c=n-r[1],d=(null==o?void 0:o.get(e))||{},v=s(s(s(s({},a.top,i),a.bottom,u),a.firstBottom,t===c),a.withoutBorderBottom,t===c-1);return{style:{top:i?"".concat(d.top-l,"px"):void 0,bottom:u?"".concat(d.bottom+l,"px"):void 0},classes:v}}(St(e.row,e.rowKey||"id"),e.rowIndex,e.dataLength,e.fixedRows,e.rowAndColFixedPosition,p,e.virtualConfig.isVirtualScroll.value?e.virtualConfig.translateY.value:0)})),y=t.computed((function(){return VD(e.rowAttributes,{row:e.row,rowIndex:e.rowIndex,type:"body"})||{}})),b=t.computed((function(){var t,n=DD(e.rowClassName,{row:e.row,rowKey:e.rowKey,rowIndex:e.rowIndex,type:"body"},e.rowKey||"id");return[null===(t=g.value)||void 0===t?void 0:t.classes,n,s(s({},"".concat(e.classPrefix,"-table__row--active"),a.value),"".concat(e.classPrefix,"-table__row--hover"),l.value)].filter((function(e){return e}))})),w=function(e,n,r){var o=t.computed((function(){return Math.max(r.rowHeight||48,48)})),a=t.ref(!1),l=t.computed((function(){return"lazy"===(null==r?void 0:r.type)&&!a.value})),i=!kl&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},u=function(){a.value||i((function(){a.value=!0}))};return t.onMounted((function(){"lazy"===(null==r?void 0:r.type)&&t.nextTick((function(){var t=Math.max(10,r.bufferSize||10),a=o.value*t;null!=n&&n.value&&null!=e&&e.value&&ww(n.value,e.value,u,a)}))})),{hasLazyLoadHolder:l,tRowHeight:o}}(o,i,t.reactive(BD(BD({},e.scroll),{},{rowIndex:e.rowIndex}))),O=w.hasLazyLoadHolder,C=w.tRowHeight,x=function(){var t;null!==(t=e.virtualConfig)&&void 0!==t&&t.isVirtualScroll.value&&n.emit("row-mounted",{ref:i,data:e.row})};function P(r,o){var a,l=o.cellNode,i=r.col,c=r.colIndex;H(i.ellipsis)?a=i.ellipsis(t.h,r):"object"===u(i.ellipsis)&&H(i.ellipsis.content)?a=i.ellipsis.content(t.h,r):n.slots["ellipsis-".concat(i.colKey)]?a=n.slots["ellipsis-".concat(i.colKey)](r):n.slots.ellipsis&&(a=n.slots.ellipsis(r));var s={};"object"===u(i.ellipsis)&&(s="props"in i.ellipsis?i.ellipsis.props:i.ellipsis||void 0);var d,v=e.tableElm,f=0===c?"top-left":"top";return f=c===e.columns.length-1?"top-right":f,t.createVNode(hD,{placement:f,attach:v?function(){return v}:void 0,tooltipContent:a&&function(){return a},tooltipProps:s,overlayClassName:e.ellipsisOverlayClassName,classPrefix:e.classPrefix},"function"==typeof(d=l)||"[object Object]"===Object.prototype.toString.call(d)&&!t.isVNode(d)?l:{default:function(){return[l]}})}return t.onMounted((function(){t.nextTick((function(){x()}))})),t.onUpdated((function(){t.nextTick((function(){x()}))})),function(){var r,o=e.columns,a=e.skipSpansMap,l=e.row,u=e.dataLength,c=e.rowAndColFixedPosition,p=null==o?void 0:o.map((function(r,i){var p={},g={row:l,col:r,rowIndex:e.rowIndex,colIndex:i},y=null;if(e.skipSpansMap.size){var b,w,O=ID(l,e.rowKey,r.colKey,i);if((null===(b=y=a.get(O)||{})||void 0===b?void 0:b.rowspan)>1&&(p.rowspan=y.rowspan),(null===(w=y)||void 0===w?void 0:w.colspan)>1&&(p.colspan=y.colspan),y.skipped)return null}return function(r,o){var a=r.col,l=r.colIndex,i=r.rowIndex,u=o.cellSpans,c=o.dataLength,p=o.rowAndColFixedPosition,g=zD(r,n.slots,{cellEmptyContent:o.cellEmptyContent,pagination:e.pagination}),y=jD(a,l,p,f),b=ED(a.className,BD(BD({},r),{},{type:"td"})),w=[y.classes,b,s(s(s(s(s({},d,a.ellipsis),v.tdLastRow,i+u.rowspan===c),v.tdFirstCol,0===l&&e.rowspanAndColspan),m[a.align],a.align&&"left"!==a.align),h.handle,"drag"===a.colKey)],O=H(a.attrs)?a.attrs(BD(BD({},r),{},{type:"td"})):a.attrs,C=BD(BD({},O),u);return t.createVNode("td",t.mergeProps({key:a.colKey||l,class:w,style:y.style},C,{onClick:function(t){var n,o=BD(BD({},r),{},{e:t});a.stopPropagation&&t.stopPropagation(),null===(n=e.onCellClick)||void 0===n||n.call(e,o)}}),[a.ellipsis?P(r,{cellNode:g}):g])}(g,{dataLength:u,rowAndColFixedPosition:c,columnLength:o.length,cellSpans:p,cellEmptyContent:e.cellEmptyContent})}));return t.createVNode("tr",t.mergeProps({ref:i},y.value,{style:null===(r=g.value)||void 0===r?void 0:r.style,class:b.value},function(t,n){var r={};return RD.forEach((function(o){r["on".concat(on(o))]=function(r){var a,l={e:r,row:t,index:n};null===(a=e["onRow".concat(on(o))])||void 0===a||a.call(e,l)}})),r}(l,e.rowIndex)),[O.value?[t.createVNode("td",{style:{height:"".concat(C.value,"px"),border:"none"}},null)]:p])}}});function WD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function KD(e){for(var t=1;t1)for(var l=r+1;l1)for(var f=i+1;f1&&(_.colspan=l.colspan),t.createVNode("th",t.mergeProps({key:l.colKey,"data-colkey":l.colKey,class:C,style:P},_,v,S),[t.createVNode("div",{class:a.tableBaseClass.thCellInner},[N?t.createVNode(hD,{placement:"bottom",attach:a.attach||(a.theadRef?function(){return a.getTableNode(a.theadRef)}:void 0),tooltipContent:k&&function(){return k},tooltipProps:"object"===u(l.ellipsisTitle)?l.ellipsisTitle:void 0,overlayClassName:a.ellipsisOverlayClassName,classPrefix:a.classPrefix},(p=j,"function"==typeof p||"[object Object]"===Object.prototype.toString.call(p)&&!t.isVNode(p)?j:{default:function(){return[j]}})):j])])}));return t.createVNode("tr",{key:i},[c])})))])}});function JD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function QD(e){for(var t=1;t1&&(i.rowspan=u.rowspan),(null===(s=u)||void 0===s?void 0:s.colspan)>1&&(i.colspan=u.colspan),u.skipped)return null}var v=jD(o,a,n.rowAndColFixedPosition,n.tableColFixedClasses),f=QD({},v.style);return null!==(l=n.thWidthList)&&void 0!==l&&l[o.colKey]&&(f.width="".concat(n.thWidthList[o.colKey],"px")),t.createVNode("td",t.mergeProps(QD({key:o.colKey},i),{class:v.classes,style:f}),[n.renderTFootCell({row:e,rowIndex:r,col:o,colIndex:a})])}))])})),a=this.renderTNode("footerSummary");return a||this.footData&&this.footData.length?t.createVNode("tfoot",{ref:"tFooterRef",class:r,style:{visibility:this.virtualScroll?"hidden":"visible"}},[a&&t.createVNode("tr",{class:this.tableFullRowClasses.base},[t.createVNode("td",{colspan:this.columns.length},[t.createVNode("div",{class:this.tableFullRowClasses.innerFullElement},[a])])]),o]):null}});function tE(e,n){var r=t.toRefs(e),o=r.data,a=r.activeRowType,l=r.activeRowKeys,i=r.defaultActiveRowKeys,u=r.disableSpaceInactiveRow,c=t.ref(-1),s=t.ref(!1),d=t.ref(!1),v=t.ref(-1),f=Ha(Um(l,i.value,e.onActiveChange,"activeRowKeys"),2),p=f[0],m=f[1],h=function(){for(var t=[],n=0,r=o.value.length;n1?[l]:[];m(i,{type:"inactive",activeRowList:[{row:n,rowIndex:r}],currentRowData:n})}else if("multiple"===a.value){for(var u=p.value.filter((function(e){return e!==l})),c=[],s=0,d=o.value.length;s0&&void 0!==arguments[0])||arguments[0];return t.createVNode("colgroup",null,[p.map((function(n){var r={width:$D((e||m?c.thWidthList[n.colKey]:void 0)||n.width)||h};return n.minWidth&&(r.minWidth=$D(n.minWidth)),r.width||n.minWidth||"fixed"!==c.tableLayout||(r.minWidth="80px"),t.createVNode("col",{key:n.colKey,style:r},null)}))])},y={isFixedHeader:this.isFixedHeader,rowAndColFixedPosition:this.rowAndColFixedPosition,isMultipleHeader:this.isMultipleHeader,bordered:this.bordered,maxHeight:this.maxHeight,height:this.height,spansAndLeafNodes:this.spansAndLeafNodes,thList:this.thList,thWidthList:this.thWidthList,resizable:this.resizable,columnResizeParams:this.columnResizeParams,classPrefix:this.classPrefix,ellipsisOverlayClassName:"medium"!==this.tableSize?this.sizeClassNames[this.tableSize]:"",attach:this.attach,showColumnShadow:this.showColumnShadow,thDraggable:this.thDraggable},b=ll()<=11?4:0,w=this.isWidthOverflow?this.scrollbarWidth:0,O=t.ref(((null===(r=this.affixHeaderRef)||void 0===r?void 0:r.getBoundingClientRect().height)||0)-b),C=setTimeout((function(){var e;O.value=((null===(e=c.affixHeaderRef)||void 0===e?void 0:e.getBoundingClientRect().height)||0)-b,clearTimeout(C)}),0),x=t.computed((function(){return O.value-w})),P=sD.headerAffixedTop?Number(this.showAffixHeader):1,j=t.computed((function(){return{width:"".concat(c.tableWidth,"px"),height:"".concat(x.value,"px"),opacity:P}})),S=this.bordered?1:0,k=Boolean((this.headerAffixedTop||this.virtualConfig.isVirtualScroll.value)&&this.tableWidth)&&t.createVNode("div",{ref:"affixHeaderRef",style:{width:"".concat(this.tableWidth-S,"px"),opacity:Number(this.showAffixHeader)},class:["scrollbar",s({},this.tableBaseClass.affixedHeaderElm,this.headerAffixedTop||this.virtualConfig.isVirtualScroll.value)]},[t.createVNode("table",{class:this.tableElmClasses,style:rE(rE({},this.tableElementStyles),{},{width:"".concat(this.tableElmWidth,"px")})},[g(!0),t.createVNode(GD,y,this.$slots)])]),N=t.createVNode("div",{class:this.tableBaseClass.affixedHeaderWrap,style:j.value},[k]),_=this.isWidthOverflow?this.scrollbarWidth:0;this.bordered&&(_+=1);var V=Boolean(this.virtualConfig.isVirtualScroll.value||this.footerAffixedBottom),D=(null===(o=this.footData)||void 0===o?void 0:o.length)||this.footerSummary||this.$slots.footerSummary,E=Boolean(V&&D&&this.tableWidth)&&t.createVNode(Uf,t.mergeProps({class:this.tableBaseClass.affixedFooterWrap,onFixedChange:this.onFixedChange,offsetBottom:_||0},TD(this.footerAffixedBottom),{style:{marginTop:"".concat(-1*((null!==(a=this.tableFootHeight)&&void 0!==a?a:0)+_),"px")},ref:"footerBottomAffixRef"}),{default:function(){return[t.createVNode("div",{ref:"affixFooterRef",style:{width:"".concat(c.tableWidth-S,"px"),opacity:Number(c.showAffixFooter)},class:["scrollbar",s({},c.tableBaseClass.affixedFooterElm,c.footerAffixedBottom||c.virtualConfig.isVirtualScroll.value)]},[t.createVNode("table",{class:c.tableElmClasses,style:rE(rE({},c.tableElementStyles),{},{width:"".concat(c.tableElmWidth,"px")})},[g(!0),t.createVNode(eE,{rowKey:c.rowKey,isFixedHeader:c.isFixedHeader,rowAndColFixedPosition:d,footData:c.footData,columns:p,rowAttributes:c.rowAttributes,rowClassName:c.rowClassName,thWidthList:c.thWidthList,footerSummary:c.footerSummary,rowspanAndColspanInFooter:c.rowspanAndColspanInFooter},c.$slots)])])]}}),F="translate(0, ".concat(this.virtualConfig.scrollHeight.value+(null!==(l=this.tableFootHeight)&&void 0!==l?l:0)+(null!==(i=O.value)&&void 0!==i?i:0),"px)"),T={transform:F,"-ms-transform":F,"-moz-transform":F,"-webkit-transform":F},I=rE(rE({classPrefix:this.classPrefix,ellipsisOverlayClassName:"medium"!==this.tableSize?this.sizeClassNames[this.tableSize]:"",rowAndColFixedPosition:d,showColumnShadow:this.showColumnShadow,data:f,virtualConfig:this.virtualConfig,columns:this.spansAndLeafNodes.leafColumns,tableElm:this.tableRef,tableWidth:this.tableWidth,isWidthOverflow:this.isWidthOverflow,scroll:this.scroll,cellEmptyContent:this.cellEmptyContent,tableContentElm:this.tableContentRef,handleRowMounted:this.virtualConfig.handleRowMounted,renderExpandedRow:this.renderExpandedRow},xa(this.$props,UD)),{},{pagination:this.innerPagination,attach:this.attach,hoverRow:this.hoverRow,activeRow:this.tActiveRow,onRowClick:this.onInnerRowClick}),M=t.createVNode("div",{ref:"tableContentRef",class:this.tableBaseClass.content,style:this.tableContentStyles,onScroll:this.onInnerVirtualScroll},[this.virtualConfig.isVirtualScroll.value&&t.createVNode("div",{class:this.virtualScrollClasses.cursor,style:T},null),t.createVNode("table",{ref:"tableElmRef",class:this.tableElmClasses,style:rE(rE({},this.tableElementStyles),{},{width:this.resizable&&this.isWidthOverflow&&this.tableElmWidth?"".concat(this.tableElmWidth,"px"):this.tableElementStyles.width})},[g(!1),this.showHeader&&t.createVNode(GD,rE(rE({},y),{},{thWidthList:m?this.thWidthList:{}}),this.$slots),t.createVNode(YD,t.mergeProps({ref:"tableBodyRef"},I),this.$slots),t.createVNode(eE,{rowKey:this.rowKey,isFixedHeader:this.isFixedHeader,rowAndColFixedPosition:d,footData:this.footData,columns:p,rowAttributes:this.rowAttributes,rowClassName:this.rowClassName,footerSummary:this.footerSummary,rowspanAndColspanInFooter:this.rowspanAndColspanInFooter,virtualScroll:this.virtualConfig.isVirtualScroll.value},this.$slots)])]),A=H(this.loading)?this.loading:this.$slots.loading,B=void 0!==this.loading&&t.createVNode(mi,t.mergeProps({loading:!!this.loading,text:A,attach:this.tableRef?function(){return c.tableRef}:void 0,showOverlay:!0,size:"small"},this.loadingProps),null),L=this.renderTNode("topContent"),R=this.renderTNode("bottomContent"),z=t.createVNode("div",{ref:"paginationRef",class:this.tableBaseClass.paginationWrap,style:{opacity:Number(this.showAffixPagination)}},[this.renderPagination()]),W=!!R&&t.createVNode("div",{ref:"bottomContentRef",class:this.tableBaseClass.bottomContent},[R]);return t.createVNode("div",{ref:"tableRef",tabindex:this.tableRefTabIndex,class:this.dynamicBaseTableClasses,onFocus:this.onTableFocus,onBlur:this.onTableBlur},[!!L&&t.createVNode("div",{class:this.tableBaseClass.topContent},[L]),!1===c.showHeader?null:!(!c.virtualConfig.isVirtualScroll.value&&!c.headerAffixedTop)&&(c.headerAffixedTop?t.createVNode(Uf,t.mergeProps({offsetTop:0},TD(c.headerAffixedTop),{onFixedChange:c.onFixedChange,ref:"headerTopAffixRef"}),oE(N)?N:{default:function(){return[N]}}):c.isFixedHeader&&N),M,E,B,W,this.showRightDivider&&t.createVNode("div",{class:this.tableBaseClass.scrollbarDivider,style:{right:"".concat(this.scrollbarWidth,"px"),bottom:this.dividerBottom?"".concat(this.dividerBottom,"px"):void 0,height:"".concat(null===(u=this.tableContentRef)||void 0===u?void 0:u.getBoundingClientRect().height,"px")}},null),this.horizontalScrollAffixedBottom&&t.createVNode(Uf,t.mergeProps({offsetBottom:0},TD(c.horizontalScrollAffixedBottom),{style:{marginTop:"-".concat(2*c.scrollbarWidth,"px")},horizontalScrollAffixedBottom:!0,ref:"horizontalScrollAffixRef"}),{default:function(){return[t.createVNode("div",{ref:"horizontalScrollbarRef",class:["scrollbar",c.tableBaseClass.obviousScrollbar],style:{width:"".concat(c.tableWidth,"px"),overflow:"auto",opacity:Number(c.showAffixFooter)}},[t.createVNode("div",{style:{width:"".concat(c.tableElmWidth,"px"),height:"5px"}},null)])]}}),this.paginationAffixedBottom?t.createVNode(Uf,t.mergeProps({offsetBottom:0},TD(this.paginationAffixedBottom),{ref:"paginationAffixRef"}),oE(z)?z:{default:function(){return[z]}}):z,t.createVNode("div",{ref:"resizeLineRef",class:this.tableBaseClass.resizeLine,style:this.resizeLineStyle},null)])}}),lE={asyncLoading:{type:[String,Function]},columnController:{type:Object},columnControllerVisible:{type:Boolean,default:void 0},defaultColumnControllerVisible:{type:Boolean,default:void 0},columns:{type:Array,default:function(){return[]}},displayColumns:{type:Array,default:void 0},defaultDisplayColumns:{type:Array},dragSort:{type:String,validator:function(e){return!e||["row","row-handler","col","row-handler-col","drag-col"].includes(e)}},dragSortOptions:{type:Object},editableCellState:{type:Function},editableRowKeys:{type:Array},expandIcon:{type:[Boolean,Function],default:!0},expandOnRowClick:Boolean,expandedRow:{type:[String,Function]},expandedRowKeys:{type:Array,default:void 0},defaultExpandedRowKeys:{type:Array,default:function(){return[]}},filterIcon:{type:Function},filterRow:{type:[String,Function]},filterValue:{type:Object,default:void 0},defaultFilterValue:{type:Object},hideSortTips:Boolean,indeterminateSelectedRowKeys:{type:Array},multipleSort:Boolean,reserveSelectedRowOnPaginate:{type:Boolean,default:!0},rowSelectionAllowUncheck:Boolean,rowSelectionType:{type:String,validator:function(e){return!e||["single","multiple"].includes(e)}},selectOnRowClick:Boolean,selectedRowKeys:{type:Array,default:void 0},defaultSelectedRowKeys:{type:Array,default:function(){return[]}},showSortColumnBgColor:Boolean,sort:{type:[Object,Array],default:void 0},defaultSort:{type:[Object,Array]},sortIcon:{type:Function},sortOnRowDraggable:Boolean,onAsyncLoadingClick:Function,onCellClick:Function,onChange:Function,onColumnChange:Function,onColumnControllerVisibleChange:Function,onDataChange:Function,onDisplayColumnsChange:Function,onDragSort:Function,onExpandChange:Function,onFilterChange:Function,onRowEdit:Function,onRowValidate:Function,onSelectChange:Function,onSortChange:Function,onValidate:Function};function iE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function uE(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:new Set,n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:[];if(null!==(t=d.value)&&void 0!==t&&null!==(t=t.groupColumns)&&void 0!==t&&t.length)return[];for(var r=0,o=e.length;r1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e.length;n0&&void 0!==arguments[0]?arguments[0]:{},n=i(p.value),r=St(t,e.rowKey||"id"),o=n.indexOf(r),a=-1!==o;if("multiple"===y.value)a?n.splice(o,1):n.push(r);else{if("single"!==y.value)return void Gm("Table","`column.type` must be one of `multiple` and `single`");n=a&&O.value?[]:[r]}m(n,{selectedRowData:n.map((function(e){return h.value.get(e)})),currentRowKey:r,currentRowData:t,type:a?"uncheck":"check"})}function P(t){var n,r=e.rowKey||"id",a=b.value.map((function(e){return St(e,r)})),l=(null===(n=o.value)||void 0===n?void 0:n.filter((function(e){return!a.includes(e)})))||[],u=t?[].concat(i(l),i(a)):i(l);m(u,{selectedRowData:t?u.map((function(e){return h.value.get(e)})):[],type:t?"check":"uncheck",currentRowKey:"CHECK_ALL_BOX"})}t.watch([c,a,p,g,l],(function(){var t,r=null!==(t=g.value)&&void 0!==t&&t.disabled?function(e){return g.value.disabled(e)?n.disabled:""}:void 0,o=new Set(p.value),a=o.size?function(t){var r=St(t.row,e.rowKey||"id");return o.has(r)?n.selected:""}:void 0;v.value=[r,a],d.value=c.value}),{immediate:!0});t.watch([c,l],(function(){for(var e=0,t=c.value.length;e0&&w.value.length1)],o={asc:this.globalConfig.sortAscendingOperationText,desc:this.globalConfig.sortDescendingOperationText},a=this.allowSortTypes.map((function(r){var a,l,i,u=r===e.sortOrder?n.iconActive:n.iconDefault,c=e.globalConfig.sortCancelOperationText,s=r===e.sortOrder?c:o[r];return(null!==(l=e.hideSortTips)&&void 0!==l?l:e.globalConfig.hideSortTips)?e.getSortIcon(r,u):t.createVNode(Lh,t.mergeProps({content:s,placement:"right",showArrow:!1,class:e.tableSortClasses.iconDirection[r]},e.tooltipProps),"function"==typeof(i=a=e.getSortIcon(r,u))||"[object Object]"===Object.prototype.toString.call(i)&&!t.isVNode(i)?a:{default:function(){return[a]}})}));return t.createVNode("div",{class:r},[a])}});function CE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xE(e,n){var r=n.slots,o=t.toRefs(e),a=o.sort,l=o.data,u=t.ref(),c=Ha(Um(a,e.defaultSort,e.onSortChange,"sort"),2),d=c[0],v=c[1],f=Ha(Um(l,[],e.onDataChange,"data"),2),p=f[0],m=f[1],h=t.computed((function(){return w(e.columns)})),g=t.ref(),y=t.computed((function(){var e=d.value;return e?j(e)?e:[e]:[]})),b=t.computed((function(){var e={};return y.value.forEach((function(t,n){var r=t.sortBy;e[r]=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e.length;n + * @author owenm + * @license MIT + */function DE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function EE(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function AE(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var BE=AE(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),LE=AE(/Edge/i),RE=AE(/firefox/i),zE=AE(/safari/i)&&!AE(/chrome/i)&&!AE(/android/i),HE=AE(/iP(ad|od|hone)/i),WE=AE(/chrome/i)&&AE(/android/i),KE={capture:!1,passive:!1};function UE(e,t,n){e.addEventListener(t,n,!BE&&KE)}function YE(e,t,n){e.removeEventListener(t,n,!BE&&KE)}function $E(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function ZE(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function qE(e,t,n,r){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&$E(e,t):$E(e,t))||r&&e===n)return e;if(e===n)break}while(e=ZE(e))}return null}var XE,GE=/\s+/g;function JE(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(GE," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(GE," ")}}function QE(e,t,n){var r=e&&e.style;if(r){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in r||-1!==t.indexOf("webkit")||(t="-webkit-"+t),r[t]=n+("string"==typeof n?"":"px")}}function eF(e,t){var n="";if("string"==typeof e)n=e;else do{var r=QE(e,"transform");r&&"none"!==r&&(n=r+" "+n)}while(!t&&(e=e.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function tF(e,t,n){if(e){var r=e.getElementsByTagName(t),o=0,a=r.length;if(n)for(;o=a:o<=a))return r;if(r===nF())break;r=cF(r,!1)}return!1}function aF(e,t,n,r){for(var o=0,a=0,l=e.children;a2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,o=ME(n,wF);bF.pluginEvent.bind(fT)(e,t,EE({dragEl:xF,parentEl:PF,ghostEl:jF,rootEl:SF,nextEl:kF,lastDownEl:NF,cloneEl:_F,cloneHidden:VF,dragStarted:WF,putSortable:MF,activeSortable:fT.active,originalEvent:r,oldIndex:DF,oldDraggableIndex:FF,newIndex:EF,newDraggableIndex:TF,hideGhostForTarget:cT,unhideGhostForTarget:sT,cloneNowHidden:function(){VF=!0},cloneNowShown:function(){VF=!1},dispatchSortableEvent:function(e){CF({sortable:t,name:e,originalEvent:r})}},o))};function CF(e){!function(e){var t=e.sortable,n=e.rootEl,r=e.name,o=e.targetEl,a=e.cloneEl,l=e.toEl,i=e.fromEl,u=e.oldIndex,c=e.newIndex,s=e.oldDraggableIndex,d=e.newDraggableIndex,v=e.originalEvent,f=e.putSortable,p=e.extraEventProperties;if(t=t||n&&n[mF]){var m,h=t.options,g="on"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||BE||LE?(m=document.createEvent("Event")).initEvent(r,!0,!0):m=new CustomEvent(r,{bubbles:!0,cancelable:!0}),m.to=l||n,m.from=i||n,m.item=o||n,m.clone=a,m.oldIndex=u,m.newIndex=c,m.oldDraggableIndex=s,m.newDraggableIndex=d,m.originalEvent=v,m.pullMode=f?f.lastPutMode:void 0;var y=EE(EE({},p),bF.getEventProperties(r,t));for(var b in y)m[b]=y[b];n&&n.dispatchEvent(m),h[g]&&h[g].call(t,m)}}(EE({putSortable:MF,cloneEl:_F,targetEl:xF,rootEl:SF,oldIndex:DF,oldDraggableIndex:FF,newIndex:EF,newDraggableIndex:TF},e))}var xF,PF,jF,SF,kF,NF,_F,VF,DF,EF,FF,TF,IF,MF,AF,BF,LF,RF,zF,HF,WF,KF,UF,YF,$F,ZF=!1,qF=!1,XF=[],GF=!1,JF=!1,QF=[],eT=!1,tT=[],nT="undefined"!=typeof document,rT=HE,oT=LE||BE?"cssFloat":"float",aT=nT&&!WE&&!HE&&"draggable"in document.createElement("div"),lT=function(){if(nT){if(BE)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),iT=function(e,t){var n=QE(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=aF(e,0,t),a=aF(e,1,t),l=o&&QE(o),i=a&&QE(a),u=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+rF(o).width,c=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+rF(a).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&l.float&&"none"!==l.float){var s="left"===l.float?"left":"right";return!a||"both"!==i.clear&&i.clear!==s?"horizontal":"vertical"}return o&&("block"===l.display||"flex"===l.display||"table"===l.display||"grid"===l.display||u>=r&&"none"===n[oT]||a&&"none"===n[oT]&&u+c>r)?"vertical":"horizontal"},uT=function(e){function t(e,n){return function(r,o,a,l){var i=r.options.group.name&&o.options.group.name&&r.options.group.name===o.options.group.name;if(null==e&&(n||i))return!0;if(null==e||!1===e)return!1;if(n&&"clone"===e)return e;if("function"==typeof e)return t(e(r,o,a,l),n)(r,o,a,l);var u=(n?r:o).options.group.name;return!0===e||"string"==typeof e&&e===u||e.join&&e.indexOf(u)>-1}}var n={},r=e.group;r&&"object"==FE(r)||(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},cT=function(){!lT&&jF&&QE(jF,"display","none")},sT=function(){!lT&&jF&&QE(jF,"display","")};nT&&!WE&&document.addEventListener("click",(function(e){if(qF)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),qF=!1,!1}),!0);var dT=function(e){if(xF){e=e.touches?e.touches[0]:e;var t=(o=e.clientX,a=e.clientY,XF.some((function(e){var t=e[mF].options.emptyInsertThreshold;if(t&&!lF(e)){var n=rF(e),r=o>=n.left-t&&o<=n.right+t,i=a>=n.top-t&&a<=n.bottom+t;return r&&i?l=e:void 0}})),l);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[mF]._onDragOver(n)}}var o,a,l},vT=function(e){xF&&xF.parentNode[mF]._isOutsideThisEl(e.target)};function fT(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=IE({},t),e[mF]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return iT(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==fT.supportPointer&&"PointerEvent"in window&&(!zE||HE),emptyInsertThreshold:5};for(var r in bF.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var o in uT(t),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!t.forceFallback&&aT,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?UE(e,"pointerdown",this._onTapStart):(UE(e,"mousedown",this._onTapStart),UE(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(UE(e,"dragover",this),UE(e,"dragenter",this)),XF.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),IE(this,hF())}function pT(e,t,n,r,o,a,l,i){var u,c,s=e[mF],d=s.options.onMove;return!window.CustomEvent||BE||LE?(u=document.createEvent("Event")).initEvent("move",!0,!0):u=new CustomEvent("move",{bubbles:!0,cancelable:!0}),u.to=t,u.from=e,u.dragged=n,u.draggedRect=r,u.related=o||t,u.relatedRect=a||rF(t),u.willInsertAfter=i,u.originalEvent=l,e.dispatchEvent(u),d&&(c=d.call(s,u,l)),c}function mT(e){e.draggable=!1}function hT(){eT=!1}function gT(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,r=0;n--;)r+=t.charCodeAt(n);return r.toString(36)}function yT(e){return setTimeout(e,0)}function bT(e){return clearTimeout(e)}fT.prototype={constructor:fT,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(KF=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,xF):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,o=r.preventOnFilter,a=e.type,l=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,i=(l||e).target,u=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||i,c=r.filter;if(function(e){tT.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var r=t[n];r.checked&&tT.push(r)}}(n),!xF&&!(/mousedown|pointerdown/.test(a)&&0!==e.button||r.disabled)&&!u.isContentEditable&&(this.nativeDraggable||!zE||!i||"SELECT"!==i.tagName.toUpperCase())&&!((i=qE(i,r.draggable,n,!1))&&i.animated||NF===i)){if(DF=iF(i),FF=iF(i,r.draggable),"function"==typeof c){if(c.call(this,e,i,this))return CF({sortable:t,rootEl:u,name:"filter",targetEl:i,toEl:n,fromEl:n}),OF("filter",t,{evt:e}),void(o&&e.preventDefault())}else if(c&&(c=c.split(",").some((function(r){if(r=qE(u,r.trim(),n,!1))return CF({sortable:t,rootEl:r,name:"filter",targetEl:i,fromEl:n,toEl:n}),OF("filter",t,{evt:e}),!0}))))return void(o&&e.preventDefault());r.handle&&!qE(u,r.handle,n,!1)||this._prepareDragStart(e,l,i)}}},_prepareDragStart:function(e,t,n){var r,o=this,a=o.el,l=o.options,i=a.ownerDocument;if(n&&!xF&&n.parentNode===a){var u=rF(n);if(SF=a,PF=(xF=n).parentNode,kF=xF.nextSibling,NF=n,IF=l.group,fT.dragged=xF,AF={target:xF,clientX:(t||e).clientX,clientY:(t||e).clientY},zF=AF.clientX-u.left,HF=AF.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,xF.style["will-change"]="all",r=function(){OF("delayEnded",o,{evt:e}),fT.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!RE&&o.nativeDraggable&&(xF.draggable=!0),o._triggerDragStart(e,t),CF({sortable:o,name:"choose",originalEvent:e}),JE(xF,l.chosenClass,!0))},l.ignore.split(",").forEach((function(e){tF(xF,e.trim(),mT)})),UE(i,"dragover",dT),UE(i,"mousemove",dT),UE(i,"touchmove",dT),l.supportPointer?(UE(i,"pointerup",o._onDrop),!this.nativeDraggable&&UE(i,"pointercancel",o._onDrop)):(UE(i,"mouseup",o._onDrop),UE(i,"touchend",o._onDrop),UE(i,"touchcancel",o._onDrop)),RE&&this.nativeDraggable&&(this.options.touchStartThreshold=4,xF.draggable=!0),OF("delayStart",this,{evt:e}),!l.delay||l.delayOnTouchOnly&&!t||this.nativeDraggable&&(LE||BE))r();else{if(fT.eventCanceled)return void this._onDrop();l.supportPointer?(UE(i,"pointerup",o._disableDelayedDrag),UE(i,"pointercancel",o._disableDelayedDrag)):(UE(i,"mouseup",o._disableDelayedDrag),UE(i,"touchend",o._disableDelayedDrag),UE(i,"touchcancel",o._disableDelayedDrag)),UE(i,"mousemove",o._delayedDragTouchMoveHandler),UE(i,"touchmove",o._delayedDragTouchMoveHandler),l.supportPointer&&UE(i,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(r,l.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){xF&&mT(xF),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;YE(e,"mouseup",this._disableDelayedDrag),YE(e,"touchend",this._disableDelayedDrag),YE(e,"touchcancel",this._disableDelayedDrag),YE(e,"pointerup",this._disableDelayedDrag),YE(e,"pointercancel",this._disableDelayedDrag),YE(e,"mousemove",this._delayedDragTouchMoveHandler),YE(e,"touchmove",this._delayedDragTouchMoveHandler),YE(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?UE(document,"pointermove",this._onTouchMove):UE(document,t?"touchmove":"mousemove",this._onTouchMove):(UE(xF,"dragend",this),UE(SF,"dragstart",this._onDragStart));try{document.selection?yT((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(ZF=!1,SF&&xF){OF("dragStarted",this,{evt:t}),this.nativeDraggable&&UE(document,"dragover",vT);var n=this.options;!e&&JE(xF,n.dragClass,!1),JE(xF,n.ghostClass,!0),fT.active=this,e&&this._appendGhost(),CF({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(BF){this._lastX=BF.clientX,this._lastY=BF.clientY,cT();for(var e=document.elementFromPoint(BF.clientX,BF.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(BF.clientX,BF.clientY))!==t;)t=e;if(xF.parentNode[mF]._isOutsideThisEl(e),t)do{if(t[mF]){if(t[mF]._onDragOver({clientX:BF.clientX,clientY:BF.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=ZE(t));sT()}},_onTouchMove:function(e){if(AF){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,o=e.touches?e.touches[0]:e,a=jF&&eF(jF,!0),l=jF&&a&&a.a,i=jF&&a&&a.d,u=rT&&$F&&uF($F),c=(o.clientX-AF.clientX+r.x)/(l||1)+(u?u[0]-QF[0]:0)/(l||1),s=(o.clientY-AF.clientY+r.y)/(i||1)+(u?u[1]-QF[1]:0)/(i||1);if(!fT.active&&!ZF){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))o.right+a||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>o.bottom+a||e.clientX>r.right&&e.clientY>r.top}(e,o,this)&&!m.animated){if(m===xF)return D(!1);if(m&&a===e.target&&(l=m),l&&(n=rF(l)),!1!==pT(SF,a,xF,t,l,n,e,!!l))return V(),m&&m.nextSibling?a.insertBefore(xF,m.nextSibling):a.appendChild(xF),PF=a,E(),D(!0)}else if(m&&function(e,t,n){var r=rF(aF(n.el,0,n.options,!0)),o=pF(n.el,n.options,jF),a=10;return t?e.clientXs+c*a/2:ud-YF)return-UF}else if(u>s+c*(1-o)/2&&ud-c*a/2))return u>s+c/2?1:-1;return 0}(e,l,n,o,O?1:i.swapThreshold,null==i.invertedSwapThreshold?i.swapThreshold:i.invertedSwapThreshold,JF,KF===l),0!==g){var j=iF(xF);do{j-=g,b=PF.children[j]}while(b&&("none"===QE(b,"display")||b===jF))}if(0===g||b===l)return D(!1);KF=l,UF=g;var S=l.nextElementSibling,k=!1,N=pT(SF,a,xF,t,l,n,e,k=1===g);if(!1!==N)return 1!==N&&-1!==N||(k=1===N),eT=!0,setTimeout(hT,30),V(),k&&!S?a.appendChild(xF):l.parentNode.insertBefore(xF,k?S:l),x&&vF(x,0,P-x.scrollTop),PF=xF.parentNode,void 0===y||JF||(YF=Math.abs(y-rF(l)[C])),E(),D(!0)}if(a.contains(xF))return D(!1)}return!1}function _(i,u){OF(i,f,EE({evt:e,isOwner:s,axis:o?"vertical":"horizontal",revert:r,dragRect:t,targetRect:n,canSort:d,fromSortable:v,target:l,completed:D,onMove:function(n,r){return pT(SF,a,xF,t,n,rF(n),e,r)},changed:E},u))}function V(){_("dragOverAnimationCapture"),f.captureAnimationState(),f!==v&&v.captureAnimationState()}function D(t){return _("dragOverCompleted",{insertion:t}),t&&(s?c._hideClone():c._showClone(f),f!==v&&(JE(xF,MF?MF.options.ghostClass:c.options.ghostClass,!1),JE(xF,i.ghostClass,!0)),MF!==f&&f!==fT.active?MF=f:f===fT.active&&MF&&(MF=null),v===f&&(f._ignoreWhileAnimating=l),f.animateAll((function(){_("dragOverAnimationComplete"),f._ignoreWhileAnimating=null})),f!==v&&(v.animateAll(),v._ignoreWhileAnimating=null)),(l===xF&&!xF.animated||l===a&&!l.animated)&&(KF=null),i.dragoverBubble||e.rootEl||l===document||(xF.parentNode[mF]._isOutsideThisEl(e.target),!t&&dT(e)),!i.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),p=!0}function E(){EF=iF(xF),TF=iF(xF,i.draggable),CF({sortable:f,name:"change",toEl:a,newIndex:EF,newDraggableIndex:TF,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){YE(document,"mousemove",this._onTouchMove),YE(document,"touchmove",this._onTouchMove),YE(document,"pointermove",this._onTouchMove),YE(document,"dragover",dT),YE(document,"mousemove",dT),YE(document,"touchmove",dT)},_offUpEvents:function(){var e=this.el.ownerDocument;YE(e,"mouseup",this._onDrop),YE(e,"touchend",this._onDrop),YE(e,"pointerup",this._onDrop),YE(e,"pointercancel",this._onDrop),YE(e,"touchcancel",this._onDrop),YE(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;EF=iF(xF),TF=iF(xF,n.draggable),OF("drop",this,{evt:e}),PF=xF&&xF.parentNode,EF=iF(xF),TF=iF(xF,n.draggable),fT.eventCanceled||(ZF=!1,JF=!1,GF=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),bT(this.cloneId),bT(this._dragStartId),this.nativeDraggable&&(YE(document,"drop",this),YE(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),zE&&QE(document.body,"user-select",""),QE(xF,"transform",""),e&&(WF&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),jF&&jF.parentNode&&jF.parentNode.removeChild(jF),(SF===PF||MF&&"clone"!==MF.lastPutMode)&&_F&&_F.parentNode&&_F.parentNode.removeChild(_F),xF&&(this.nativeDraggable&&YE(xF,"dragend",this),mT(xF),xF.style["will-change"]="",WF&&!ZF&&JE(xF,MF?MF.options.ghostClass:this.options.ghostClass,!1),JE(xF,this.options.chosenClass,!1),CF({sortable:this,name:"unchoose",toEl:PF,newIndex:null,newDraggableIndex:null,originalEvent:e}),SF!==PF?(EF>=0&&(CF({rootEl:PF,name:"add",toEl:PF,fromEl:SF,originalEvent:e}),CF({sortable:this,name:"remove",toEl:PF,originalEvent:e}),CF({rootEl:PF,name:"sort",toEl:PF,fromEl:SF,originalEvent:e}),CF({sortable:this,name:"sort",toEl:PF,originalEvent:e})),MF&&MF.save()):EF!==DF&&EF>=0&&(CF({sortable:this,name:"update",toEl:PF,originalEvent:e}),CF({sortable:this,name:"sort",toEl:PF,originalEvent:e})),fT.active&&(null!=EF&&-1!==EF||(EF=DF,TF=FF),CF({sortable:this,name:"end",toEl:PF,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){OF("nulling",this),SF=xF=PF=jF=kF=_F=NF=VF=AF=BF=WF=EF=TF=DF=FF=KF=UF=MF=IF=fT.dragged=fT.ghost=fT.clone=fT.active=null,tT.forEach((function(e){e.checked=!0})),tT.length=LF=RF=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":xF&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move");e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,r=0,o=n.length,a=this.options;r0?(r.splice(n+1,0,r[t]),r.splice(t,1)):(r.splice(n,0,r[t]),r.splice(t+1,1)),r}function IT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function MT(e){for(var t=1;tl?l*(a-1)+t:t}e.sortOnRowDraggable&&Qm("Table","`sortOnRowDraggable` is going to be deprecated, use dragSort='row' instead.");var C=function(t,n){var r=MT({animation:150,dataIdAttr:"data-colkey",direction:"vertical",ghostClass:d.ghost,chosenClass:d.chosen,dragClass:d.dragging,handle:".".concat(v.thCellInner),onEnd:function(t){var r;if(t.newIndex!==t.oldIndex){n&&(AT(t.item),BT(t.from,t.item,t.oldIndex));var o=t.oldIndex,a=t.newIndex,l=t.target,u=n?o:a,c=n?a:o,s=l.children[u],d=l.children[c],v=mE(m.value,s.dataset.colkey),f=mE(m.value,d.dataset.colkey);v&&v.colKey||Qm("Table","colKey is missing in ".concat(JSON.stringify(v))),f&&f.colKey||Qm("Table","colKey is missing in ".concat(JSON.stringify(f))),u=hE(e.columns,v.colKey),c=hE(e.columns,f.colKey);var p={data:m.value,currentIndex:u,current:v,targetIndex:c,target:f,newData:TT(i(e.columns),u,c),e:t,sort:"col"};p.currentData=p.newData,null===(r=e.onDragSort)||void 0===r||r.call(e,p)}}},e.dragSortOptions);t&&new fT(t,r)},x=function(e){if(w.value&&e){var t=e.querySelectorAll("thead > tr");if(t.length<=1){var n=Ha(t,1)[0];C(n,!0)}else null==t||t.forEach((function(e){C(e,!1)}))}};return t.watch([h,m,l,r],(function(r){var o=Ha(r,4),a=o[0];o[1],o[2],function(r,o){var a=r;if(!r||!a.$el||!o.showElement)return;var l=setTimeout((function(){!function(r){var o;if(0!==(null==r||null===(o=r.children)||void 0===o?void 0:o.length)&&(b.value||y.value)){var a=null==r?void 0:r.querySelector("tbody");if(!a)return console.error("tbody does not exist."),null;var l=MT({animation:150,ghostClass:d.ghost,chosenClass:d.chosen,dragClass:d.dragging,filter:".".concat(f.base,",.").concat(p.row),onMove:function(e){return!Vl(e.related,f.base)},onEnd:function(r){var o;if(r.newIndex!==r.oldIndex){AT(r.item),BT(r.from,r.item,r.oldIndex);var a=r.oldIndex,l=r.newIndex;(H(e.firstFullRow)&&e.firstFullRow(t.h)||n.slots.firstFullRow||n.slots["first-full-row"])&&(a-=1,l-=1),c.value&&(a=O(a,c.value),l=O(l,c.value));var s={data:u.value,currentIndex:a,current:u.value[a],targetIndex:l,target:u.value[l],newData:TT(i(e.data),a,l),e:r,sort:"row"};s.currentData=s.newData,null===(o=e.onDragSort)||void 0===o||o.call(e,s)}}},e.dragSortOptions);a&&(y.value?new fT(a,MT({},l)):new fT(a,MT(MT({},l),{},{handle:".".concat(d.handle)})))}}(a.$el),x(a.$el);var r=setTimeout((function(){a.$refs.affixHeaderRef&&x(a.$refs.affixHeaderRef),clearTimeout(r)}));clearTimeout(l)}),60)}(a,o[3])})),{innerPagination:c,isRowDraggable:y,isRowHandlerDraggable:b,isColDraggable:w,setDragSortPrimaryTableRef:function(e){h.value=e},setDragSortColumns:function(e){m.value=e}}}function RT(e){return Ra(e)||a(e)||l(e)||za()}function zT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function HT(e){for(var t=1;t2?r-2:0),u=2;u1?f-1:0),m=1;m0&&void 0!==arguments[0]?arguments[0]:{errors:[],errorMap:{}}).errorMap;e&&Object.assign(a,e)})),o.value=a,null===(r=e.onValidate)||void 0===r||r.call(e,{result:a}),n({result:a})}),r)}))},validateTableCellData:s,validateRowData:function(t){return new Promise((function(n,r){c(t).then((function(t){var r,a=t.errors,l=t.errorMap;o.value=l;var i="parent";null===(r=e.onRowValidate)||void 0===r||r.call(e,{trigger:i,result:a}),n({trigger:i,result:a})}),r)}))},onRuleChange:function(t){if(e.editableRowKeys){var n=St(t.row,e.rowKey||"id"),o=r.get(n);if(o){var a=o.findIndex((function(e){return e.col.colKey===t.col.colKey}));-1===a?o.push(t):o[a]=t,r.set(n,o)}else r.set(n,[t])}},clearValidateData:function(){o.value={}},onUpdateEditedCell:function(e,t,n){i.value[e]||(i.value[e]=Mr(t)),Object.entries(n).forEach((function(t){var n=Ha(t,2),r=n[0],o=n[1];Va(i.value[e],r,o)}))},getEditRowData:function(t){var n,r=t.row,o=t.col,a=St(r,e.rowKey||"id"),l=i.value[a];if(l&&null!==(n=e.editableRowKeys)&&void 0!==n&&n.includes(a)){var u=UT({},l);return Va(u,o.colKey,St(l,o.colKey)),u}return r},onPrimaryTableCellEditChange:function(t){var n=ID(t.row,e.rowKey,t.col.colKey,t.colIndex);t.isEdit?l.value[n]=t:delete l.value[n]}}}function $T(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ZT(e){for(var t=1;t1&&void 0!==arguments[1]&&arguments[1],a=[],l=function(){var l,c,s,d,f,m=ZT({},r[i]);if(!((null===(l=m.children)||void 0===l?void 0:l.length)||(null===(c=O.value)||void 0===c?void 0:c.includes(m.colKey)))&&(e.columnController||e.displayColumns||e.defaultDisplayColumns)&&!o)return 1;m=M(m);var g,w=e.sort;m.sorter&&e.showSortColumnBgColor&&((w instanceof Array?w:[w]).find((function(e){return e&&e.sortBy===m.colKey&&void 0!==e.descending}))&&(m.className=m.className instanceof Array?m.className.concat(h.sortColumn):[m.className,h.sortColumn]));if(m.sorter||m.filter){var C=bD(n.slots,m,i),x=m.ellipsisTitle;m.title=function(e,t){var n,r=m.sorter?V(t):null,o=m.filter?W(t):null,a=null===(n=u.value)||void 0===n?void 0:n.tableContentRef;return ee([C,r,o],t.col,t.colIndex,x,a,{classPrefix:v,ellipsisOverlayClassName:"medium"!==b.value?y[b.value]:""})},m.ellipsisTitle=!1}if(null!==(s=m.edit)&&void 0!==s&&s.component){var P=m.cell;m.cell=function(r,o){var a=ZT(ZT({},o),{},{row:ve(o),oldCell:P,rowKey:e.rowKey||"id",tableBaseClass:p,cellEmptyContent:e.cellEmptyContent,onChange:we,onValidate:e.onRowValidate,onRuleChange:ce,onEditableChange:fe});if(e.editableRowKeys){var l,i=St(o.row,e.rowKey||"id");a.editable=ae.value[i]||!1;var u=[i,o.col.colKey].join("__"),c=null===(l=oe.value)||void 0===l?void 0:l[u];c&&(a.errors=c)}return e.editableCellState&&(a.readonly=!e.editableCellState(o)),t.createVNode(WT,t.mergeProps(a,{onUpdateEditedCell:de}),n.slots)}}null!==(d=m.children)&&void 0!==d&&d.length&&(m.children=Oe(m.children,o||(null===(g=O.value)||void 0===g?void 0:g.includes(m.colKey))));(!m.children||null!==(f=m.children)&&void 0!==f&&f.length)&&a.push(m)},i=0,c=r.length;i2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=St(e,t);return n||r?"".concat(o,"_").concat(n||0,"_").concat(r||0,"}"):o}var rI=function(){return dg((function e(){cg(this,e),s(this,"treeDataMap",new Map),s(this,"expandAllRowIndex",void 0),this.treeDataMap=new Map}),[{key:"initialTreeStore",value:function(e,t,n){var r;null===(r=this.treeDataMap)||void 0===r||r.clear(),this.initialTreeDataMap(this.treeDataMap,e,t.find((function(e){return"row-select"===e.colKey})),n)}},{key:"getAllUniqueKeys",value:function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=0,o=e.length;r2&&void 0!==arguments[2]?arguments[2]:[],r=0,o=e.length;r=0){var o=(r.expandChildrenLength||0)+1;if(t.splice(r.rowIndex,o),r.parent){var a=St(r.parent.row,n.childrenKey),l=a.findIndex((function(t){return St(t,n.rowKey)===e}));a.splice(l,1),oI(this.treeDataMap,r.parent.row,-1*o,"delete",n)}this.treeDataMap.delete(e),uI(this.treeDataMap,t,{minRowIndex:r.rowIndex,rowKey:n.rowKey,type:"remove"})}else Gm("EnhancedTable","Can not remove this node, which is not appeared.");return t}},{key:"removeChildren",value:function(e,t,n){var r=this.treeDataMap.get(e);if(r&&r.rowIndex>=0){var o=r.expandChildrenLength||0;o&&t.splice(r.rowIndex+1,o),r.parent&&oI(this.treeDataMap,r.parent.row,-1*o,"delete",n),r.expandChildrenLength=0,r.expanded=!1,Va(r.row,n.childrenKey,void 0),this.treeDataMap.set(e,r),o&&uI(this.treeDataMap,t,{minRowIndex:r.rowIndex+1,rowKey:n.rowKey,type:"remove"})}else Gm("EnhancedTable","Can not remove this node's children, which is not appeared.");return t}},{key:"appendTo",value:function(e,t,n,r){var o=this.treeDataMap.get(e);if(!this.validateDataExist(o,e))return n;for(var a=St(o.row,r.childrenKey),l=o.expanded||!(null!=a&&a.length),u=t instanceof Array?t:[t],c=[],s=-1,d=0,v=u.length;do){var p=e.slice(d,r),m=v.concat(f,p);e.splice(o,m.length),e.splice.apply(e,[o,0].concat(i(m))),uI(this.treeDataMap,e,{rowKey:n.rowKey,minRowIndex:o,maxRowIndex:s})}else{var h=e.slice(s,o).concat(f,v);e.splice(r,h.length),e.splice.apply(e,[r,0].concat(i(h))),uI(this.treeDataMap,e,{rowKey:n.rowKey,minRowIndex:r,maxRowIndex:d})}if(u.parent){for(var g=u.parent.row[n.childrenKey],y=0,b=-1,w=-1,O=0,C=g.length;O=2));O++);w2&&void 0!==arguments[2]?arguments[2]:null,l=0,i=e.length;l2&&void 0!==arguments[2]?arguments[2]:"data",o=[];return e.forEach((function(e){var a=St(e,t.rowKey),l=n.treeDataMap.get(a);l.expanded&&("unique"===r?o.push(a):"data"===r?o.push(e):o.push(l))})),o}},{key:"initialTreeDataMap",value:function(e,t,n,r){for(var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,l=0,i=t.length;l0&&void 0!==arguments[0]?arguments[0]:"expand-all",t=(arguments.length>1?arguments[1]:void 0)||u.value;o.value=r.value.expandAll(t,a.value);var n=o.value.map((function(e){return nI(e,a.value.rowKey)}));m(n,{row:void 0,rowState:void 0,rowIndex:void 0,type:"expand",trigger:e}),h.value.type="expand-all"}function y(e,t){var n=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],r=[],o=new Map,a=new Map,l=0,i=e.length;l2&&void 0!==arguments[2]?arguments[2]:[]),o=n.addedList,l=n.removedList;return r.value.expandTreeNode(o,e,a.value),r.value.foldTreeNode(l,e,a.value),i(e)}t.watch([p,u],(function(e,t){var n=Ha(e,1)[0],l=Ha(t,1)[0];if(r.value.treeDataMap.size&&u.value.length){if("user-reaction-change"===h.value.type){var c=h.value||{},s=c.row,d=c.rowIndex;o.value=i(r.value.toggleExpandData({row:s,rowIndex:d},i(o.value),a.value))}else"props-change"===h.value.type&&y(o.value,n,l);h.value.type="props-change"}}));return{tExpandedTreeNode:p,isDefaultExpandAllExecute:d,isDefaultExpandedTreeNodesExecute:v,expandAll:g,foldAll:function(){o.value=i(r.value.foldAll(o.value,a.value)),m([],{row:void 0,rowState:void 0,rowIndex:void 0,type:"fold",trigger:"fold-all"})},onExpandFoldIconClick:function(t,n){var o,l=t.row,u=t.rowIndex;h.value=sI({type:"user-reaction-change"},t);var c=nI(l,a.value.rowKey),s=r.value.treeDataMap.get(c),d=i(p.value);if(s.expanded){for(var v=r.value.getExpandedChildrenKeys([l],a.value),f=0,g=d.length;f0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;h.value=e?i(p.value.appendTo(e,t,h.value,b.value)):p.value.appendToRoot(t,h.value,b.value)},insertAfter:function(e,t){h.value=i(p.value.insertAfter(e,t,h.value,b.value))},insertBefore:function(e,t){h.value=i(p.value.insertBefore(e,t,h.value,b.value))},formatTreeColumn:function(r){if(!e.tree||r.colKey!==m.value.colKey)return r;var o=fI({},m.value);return o.cell=function(o,a){var l,i,d=zD(fI(fI({},a),{},{col:fI({},m.value)}),n.slots,{cellEmptyContent:e.cellEmptyContent}),h=p.value.treeDataMap.get(St(a.row,b.value.rowKey)),w=function(t){var n,r;if(void 0!==t){var o=void 0===(null===(n=e.tree)||void 0===n?void 0:n.indent)?24:null===(r=e.tree)||void 0===r?void 0:r.indent;return o?{paddingLeft:"".concat(t*o||1,"px")}:{}}}(null==h?void 0:h.level),O=s({},g.inlineCol,!!r.ellipsis),C=St(a.row,b.value.childrenKey);if(C&&C instanceof Array||!0===C){var x,P=null!==(x=p.value.treeDataMap.get(St(a.row,b.value.rowKey)))&&void 0!==x&&x.expanded?(l=fI(fI({},a),{},{type:"fold"}),i=u(c.value.treeExpandAndFoldIcon,t.h,l)||t.createVNode(f,null,null),y("treeExpandAndFoldIcon",{defaultNode:i,params:l})):function(e){var n=fI(fI({},e),{},{type:"expand"}),r=u(c.value.treeExpandAndFoldIcon,t.h,n)||t.createVNode(v,null,null);return y("treeExpandAndFoldIcon",{defaultNode:r,params:n})}(a);return t.createVNode("div",{class:[g.col,O],style:w},[!(!C.length&&!0!==C)&&t.createVNode("span",{class:g.icon,onClick:function(e){k(a,"expand-fold-icon"),e.stopPropagation()}},[P]),d])}return t.createVNode("div",{style:w,class:[O,g.leafNode]},[t.createVNode("span",{class:g.icon},null),d])},!0===o.ellipsis&&(o.ellipsis=function(e,t){return zD(fI(fI({},t),{},{col:fI({},m.value)}),n.slots)}),o},toggleExpandData:function(t,n){var r,o,a=fI({},t);void 0!==t.row.VIRTUAL_SCROLL_INDEX&&(a.rowIndex=t.row.VIRTUAL_SCROLL_INDEX),h.value=i(p.value.toggleExpandData(a,h.value,b.value));var l=St(t.row,b.value.rowKey),u=null===(r=p.value)||void 0===r||null===(r=r.treeDataMap)||void 0===r?void 0:r.get(l);null===(o=e.onTreeExpandChange)||void 0===o||o.call(e,{row:t.row,rowIndex:t.rowIndex,rowState:u,trigger:n})},expandAll:P,foldAll:j,getTreeNode:function(){return p.value.getTreeNode(h.value,b.value)},resetData:_,getTreeExpandedRow:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"data";return p.value.getTreeExpandedRow(h.value,b.value,e)},onExpandFoldIconClick:k}}function mI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function hI(e){for(var t=1;t0&&v=0?e.rowIndex:e.rowIndex<0?w(e.parent):void 0:-1};return n.expose(CI(CI({store:a.value,dataSource:l.value},s),{},{primaryTableRef:r,validateRowData:function(e){return r.value.validateRowData(e)},validateTableData:function(){return r.value.validateTableData()},clearValidateData:function(){r.value.clearValidateData()},refreshTable:function(){r.value.refreshTable()},scrollToElement:function(e){var t=e.index;if(!t&&0!==t){if(!e.key)return void Qm("Table","scrollToElement: one of `index` or `key` must exist.");var n=v.value.get(e.key);((t=w(n,e.key))<0||void 0===t)&&Qm("Table","".concat(e.key," does not exist in data, check `rowKey` or `data` please."))}r.value.scrollToElement(CI(CI({},e),{},{index:t}))}})),function(){var o,a=CI(CI({},t.getCurrentInstance().vnode.props),{},{rowKey:e.rowKey||"id",data:l.value,columns:g.value,indeterminateSelectedRowKeys:p.value,disableDataPage:Boolean(e.tree&&Object.keys(e.tree).length)||e.disableDataPage,onSelectChange:m,onDragSort:y,rowClassName:function(t){var n=St(t.row,e.rowKey||"id"),r=v.value.get(n);return r?["".concat(d.value,"-table-tr--level-").concat(r.level),e.rowClassName]:[e.rowClassName]}});return null!==(o=e.tree)&&void 0!==o&&o.expandTreeNodeOnClick&&(a.onRowClick=b),t.createVNode(XT,t.mergeProps(a,{ref:r}),n.slots)}}}),PI=pi(aE),jI=pi(XT),SI=pi(xI),kI=pi(Mr(XT),"TTable"),NI={labelAlign:{type:String,default:"left",validator:function(e){return!e||["left","right","alternate","top","bottom"].includes(e)}},layout:{type:String,default:"vertical",validator:function(e){return!e||["horizontal","vertical"].includes(e)}},mode:{type:String,default:"alternate",validator:function(e){return!e||["alternate","same"].includes(e)}},reverse:Boolean,theme:{type:String,default:"default",validator:function(e){return!e||["default","dot"].includes(e)}}},_I={vertical:["left","right"],horizontal:["top","bottom"]},VI=Symbol("timeLineProvide"),DI=t.computed((function(){return{theme:"default",reverse:!1,itemsStatus:[],layout:"horizontal",renderAlign:"left",mode:"alternate"}})),EI={content:{type:[String,Function]},dot:{type:Function},dotColor:{type:String,default:"primary"},label:{type:[String,Function]},labelAlign:{type:String,validator:function(e){return!e||["left","right","top","bottom"].includes(e)}},loading:Boolean,onClick:Function};function FI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function TI(e){for(var t=1;t=0?t.splice(n,1):i.value?t=[e]:t.push(e),v(t)})),t.provide("collapseProps",t.toRefs(e)),t.provide("getUniqId",p),t.provide("renderParentTNode",o),function(){var e=o("default");return t.createVNode("div",{class:f.value},[e])}}}),HI={content:{type:[String,Function]},default:{type:[String,Function]},destroyOnCollapse:Boolean,disabled:{type:Boolean,default:void 0},expandIcon:{type:[Boolean,Function],default:void 0},header:{type:[String,Function]},headerRightContent:{type:[String,Function]},value:{type:[String,Number]}};var WI=t.defineComponent({name:"TCollapsePanel",props:HI,setup:function(e,n){var r=n.slots,o=ei(),a=ni(),l=Qa("collapse-panel"),i=Qa("is-disabled"),u=Qa("is-clickable"),c=Qa("slide-down"),d=t.toRefs(e),v=d.value,f=d.disabled,p=d.destroyOnCollapse,m=t.inject("collapseValue"),h=t.inject("updateCollapseValue"),g=t.inject("getUniqId",(function(){}),!1),y=t.inject("collapseProps"),b=y.defaultExpandAll,w=y.disabled,O=y.expandIconPlacement,C=y.expandOnRowClick,x=t.inject("renderParentTNode"),P=v.value||g();b.value&&h(P);var j={beforeEnter:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0"},enter:function(e){e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"},afterEnter:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow},beforeLeave:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height="".concat(e.scrollHeight,"px"),e.style.overflow="hidden"},leave:function(e){0!==e.scrollHeight&&(e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0")},afterLeave:function(e){e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}},S=j.beforeEnter,k=j.enter,N=j.afterEnter,_=j.beforeLeave,V=j.leave,D=j.afterLeave,E=t.ref(),F=t.computed((function(){return f.value||w.value})),T=t.computed((function(){return m.value instanceof Array?m.value.includes(P):m.value===P})),I=t.computed((function(){return[l.value,s({},i.value,F.value)]})),M=t.computed((function(){return r.expandIcon||e.expandIcon})),A=function(e){(C.value||e.currentTarget===E.value)&&!F.value&&h(P),e.stopPropagation()},B=function(e){e.stopPropagation()},L=function(){var e=void 0===M.value?x:o;return t.createVNode("div",{ref:E,class:"".concat(l.value,"__icon ").concat(l.value,"__icon--").concat(O.value," ").concat(T.value?"".concat(l.value,"__icon--active"):""),onClick:A},[e("expandIcon",t.createVNode(Bg,{overlayClassName:"".concat(l.value,"__icon--default")},null))])},R=function(){return p.value?T.value?t.createVNode("div",{class:"".concat(l.value,"__body")},[t.createVNode("div",{class:"".concat(l.value,"__content")},[a("default","content")])]):null:t.withDirectives(t.createVNode("div",{class:"".concat(l.value,"__body")},[t.createVNode("div",{class:"".concat(l.value,"__content")},[a("default","content")])]),[[t.vShow,T.value]])};return function(){var e,n,r,a;return t.createVNode("div",{class:I.value},[t.createVNode("div",{class:"".concat(l.value,"__wrapper")},[(a=["".concat(l.value,"__header"),s({},u.value,C.value&&!F.value)],t.createVNode("div",{class:a,onClick:A},["left"===O.value&&L(),o("header"),t.createVNode("div",{class:"".concat(l.value,"__header--blank")},null),(r=o("headerRightContent"),r?t.createVNode("div",{onClick:B},[r]):null),"right"===O.value&&L()])),t.createVNode(t.Transition,{name:c.value,onBeforeEnter:S,onEnter:k,onAfterEnter:N,onBeforeLeave:_,onLeave:V,onAfterLeave:D},(n=e=R(),"function"==typeof n||"[object Object]"===Object.prototype.toString.call(n)&&!t.isVNode(n)?e:{default:function(){return[e]}}))])])}}}),KI=pi(zI),UI=pi(WI),YI={alpha:{type:Number,default:1},content:{type:[String,Function]},default:{type:[String,Function]},height:{type:Number},isRepeat:{type:Boolean,default:!0},lineSpace:{type:Number,default:16},movable:Boolean,moveInterval:{type:Number,default:3e3},offset:{type:Array},removable:{type:Boolean,default:!0},rotate:{type:Number,default:-22},watermarkContent:{type:[Object,Array]},width:{type:Number},x:{type:Number},y:{type:Number},zIndex:{type:Number}};function $I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ZI(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}function XI(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=l)return n;if(a-r=m.value?"":t2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o,a=s;s=t.createVNode(n,{style:r},"function"==typeof(o=s)||"[object Object]"===Object.prototype.toString.call(o)&&!t.isVNode(o)?s:{default:function(){return[a]}})}}return d(l,"strong"),d(o,"u"),d(a,"del"),d(r,"code"),d(!1!==u,"mark",u?{color:u}:{}),d(i,"kbd"),d(c,"i"),s},s=t.computed((function(){var t=e.theme,n=e.disabled,r=o.value,a=[r];return n?a.push("".concat(r,"--disabled")):t&&["primary","secondary","success","warning","error"].includes(t)&&a.push("".concat(r,"--").concat(t)),a})),d=t.computed((function(){var t,n=e.copyable;return l.value?a.value.copiedText:"object"===u(n)?null===(t=n.tooltipProps)||void 0===t?void 0:t.content:null})),v=t.computed((function(){return e.content||(null==r?void 0:r.default())})),f=function(){var n=e.copyable;if(n){var r=l.value?function(){return t.createVNode(Eu,null,null)}:function(){return t.createVNode(Nc,null,null)},o={theme:"default"},a=function(){};return"object"===u(n)&&(n.suffix&&!l.value&&(r=n.suffix),n.tooltipProps&&(o=n.tooltipProps),"function"==typeof n.onCopy&&(a=n.onCopy)),t.createVNode(Lh,t.mergeProps(o,{content:d.value}),{default:function(){return[t.createVNode(ji,{icon:r,shape:"square",theme:"primary",variant:"text",onClick:function(e){return p(e,a)}},null)]}})}},p=function(e,t){e.preventDefault(),e.stopPropagation(),l.value=!0,setTimeout((function(){l.value=!1}),1500),rM("string"==typeof v.value?v.value:Array.isArray(v.value)?v.value.map((function(e){return e.children})).join(""):void 0),null==t||t()};return function(){var n=i("default","content");return e.ellipsis?t.createVNode(iM,t.mergeProps(e,{class:s.value}),{default:function(){return[c(e,n),e.copyable?f():null]}}):t.createVNode("span",{class:s.value},[c(e,n),e.copyable?f():null])}}});var cM=t.defineComponent({name:"TTypography",setup:function(){var e=ei();return function(){var n,r;return t.createVNode(uM,null,"function"==typeof(r=n=e("default"))||"[object Object]"===Object.prototype.toString.call(r)&&!t.isVNode(r)?n:{default:function(){return[n]}})}}}),sM={content:{type:[String,Function]},default:{type:[String,Function]},ellipsis:{type:[Boolean,Object],default:!1},level:{type:String,default:"h1",validator:function(e){return!e||["h1","h2","h3","h4","h5","h6"].includes(e)}}};var dM=t.defineComponent({name:"TTypographyTitle",props:sM,setup:function(e){var n=Qa("typography"),r=ni();return function(){var o,a,l=e.level,u=r("default","content");return e.ellipsis?t.createVNode(iM,t.mergeProps(e,{class:n.value}),"function"==typeof(a=o=t.h.apply(void 0,[l].concat(i(u))))||"[object Object]"===Object.prototype.toString.call(a)&&!t.isVNode(a)?o:{default:function(){return[o]}}):t.createVNode(t.Fragment,null,[t.h.apply(void 0,[l,{class:n.value}].concat(i(u)))])}}});function vM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var fM=t.defineComponent({name:"TTypographyParagraph",components:{TTooltip:Lh},props:function(e){for(var t=1;t0&&e.maxLinedocument.documentElement.clientWidth?A_():0;a.value=document.createElement("style"),a.value.dataset.id="td_drawer_".concat(+new Date,"_").concat(PM+=1),a.value.innerHTML="\n html body {\n overflow-y: hidden;\n transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;\n ".concat("push"===e.mode?"":"width: calc(100% - ".concat(t,"px);"),"\n }\n "),o.value&&!e.showInAttachedElement&&e.preventScrollThrough&&document.head.appendChild(a.value),window.addEventListener("keydown",_)})),t.onBeforeUnmount((function(){V(),window.removeEventListener("keydown",_)})),function(){if(!r.value){var o,a,l=d("body","default"),s=c("header"),f=(o=b({confirmBtn:e.confirmBtn,globalConfirm:i.value.confirm,className:"".concat(v.value,"__confirm")}),a=w({cancelBtn:e.cancelBtn,globalCancel:i.value.cancel,className:"".concat(v.value,"__cancel")}),t.createVNode("div",{style:N.value},["right"===e.placement?o:null,a,"right"!==e.placement?o:null]));return t.createVNode(t.Teleport,{disabled:!e.attach||!g.value,to:g.value},{default:function(){return[t.createVNode("div",t.mergeProps({ref:O,class:C.value,style:{zIndex:e.zIndex},onKeydown:_,tabindex:0},n.attrs),[e.showOverlay&&t.createVNode("div",{class:"".concat(v.value,"__mask"),onClick:E},null),t.createVNode("div",{class:j.value,style:P.value},[s&&t.createVNode("div",{class:"".concat(v.value,"__header")},[s]),e.closeBtn&&t.createVNode("div",{class:"".concat(v.value,"__close-btn"),onClick:D},[c("closeBtn",t.createVNode(u,null,null))]),t.createVNode("div",{class:["".concat(v.value,"__body"),"narrow-scrollbar"]},[l]),e.footer&&t.createVNode("div",{class:"".concat(v.value,"__footer")},[c("footer",f)]),e.sizeDraggable&&t.createVNode("div",{style:h.value,onMousedown:m},null)])])]}})}}}}),SM=pi(jM),kM={counter:{type:Function},current:{type:Number,default:void 0},modelValue:{type:Number,default:void 0},defaultCurrent:{type:Number},finishButtonProps:{type:Object},hideCounter:Boolean,hidePrev:Boolean,hideSkip:Boolean,highlightPadding:{type:Number,default:8},mode:{type:String,default:"popup",validator:function(e){return!e||["popup","dialog"].includes(e)}},nextButtonProps:{type:Object},prevButtonProps:{type:Object},showOverlay:{type:Boolean,default:!0},skipButtonProps:{type:Object},steps:{type:Array},zIndex:{type:Number,default:999999},onChange:Function,onFinish:Function,onNextStepClick:Function,onPrevStepClick:Function,onSkip:Function};function NM(e){var t=function(e){var t=window.getComputedStyle(e),n="absolute"===t.position,r=/(auto|scroll)/;if("fixed"===t.position)return document.body;for(var o=e;o.parentElement;)if(o=o.parentElement,t=window.getComputedStyle(o),(!n||"static"!==t.position)&&r.test(t.overflow+t.overflowY+t.overflowX))return o;return document.body}(e);t!==document.body&&(Rl(e,t)||(t.scrollTop=e.offsetTop-t.offsetTop))}function _M(e){var t=e.getBoundingClientRect();if(!Rl(e)){var n=function(){if(void 0!==window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var e=document.documentElement;return{width:e.clientWidth,height:e.clientHeight}}().height;Al(t.top-(n/2-t.height/2),{})}}var VM=t.defineComponent({name:"TGuide",props:kM,setup:function(e,n){var r=ei(),o=Qa("guide"),a=Qa("guide--lock"),l=Ga("guide").globalConfig,i=t.toRefs(e),u=i.current,c=i.modelValue,d=i.hideCounter,v=i.hidePrev,f=i.hideSkip,p=i.steps,m=i.zIndex,h=Ha(qm(u,c,e.defaultCurrent,e.onChange,"current"),2),g=h[0],y=h[1],b=t.ref(),w=t.ref(),O=t.ref(),C=t.ref(),x=t.ref(),P=t.ref(),j=t.ref(),S=t.ref(!1),k=t.computed((function(){return p.value.length})),N=t.computed((function(){return p.value[g.value]})),_=t.computed((function(){return"popup"===D("mode")})),V=t.computed((function(){return Hl(C.value||document.body)})),D=function(t){var n;return null!==(n=N.value[t])&&void 0!==n?n:e[t]},E=t.computed((function(){var e=N.value.highlightContent,r=e;return H(e)?r=e(I()):n.slots.highlightContent?r=n.slots.highlightContent(I()):n.slots["highlight-content"]?r=n.slots["highlight-content"](I()):e&&(r=t.createVNode(r,null,null)),r&&(r.props||(r.props={}),r.props.class=r.props.class||""),r})),F=t.computed((function(){return Boolean(E.value&&_.value)})),T=t.ref(!1),I=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{currentStepInfo:N.value},n=new Function("return "+t.h.toString())();return Object.assign({},n,e)},M=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.body,n=Wl(),r=n.scrollTop,o=n.scrollLeft,a=e.getBoundingClientRect(),l=a.top,i=a.left,u=t.getBoundingClientRect(),c=u.top,s=u.left,d=zl(t,"position");return"body"!==t.tagName.toLowerCase()&&"relative"===d||"sticky"===d?{top:l-c,left:i-s}:Hl(e)?{top:l,left:i}:{top:l+r,left:i+o}}(C.value),r=n.top,o=n.left,a=C.value.getBoundingClientRect(),l=a.width,i=a.height,u=D("highlightPadding");if(_.value)l+=2*u,i+=2*u,r-=u,o-=u;else{var c=Wl();r+=c.scrollTop,o+=c.scrollLeft}var s={top:"".concat(r,"px"),left:"".concat(o,"px")};if(F.value)if(t){var d=w.value.getBoundingClientRect(),v=d.width,f=d.height;Object.assign(s,{width:"".concat(v,"px"),height:"".concat(f,"px")})}else Object.assign(s,{width:"auto",height:"auto"});else Object.assign(s,{width:"".concat(l,"px"),height:"".concat(i,"px")});tl(e,s)},A=function(){t.nextTick((function(){var e;C.value=function(e){if(!e)return document.body;var t,n=null;if(Do(e))n=document.querySelector(e);else{if(!H(e))throw new Error("elm should be string or function");n=e()}if(n)return n;if("test"!==(null===(t=process)||void 0===t||null===(t=t.env)||void 0===t?void 0:t.NODE_ENV))throw new Error("There is no element with given.")}(N.value.element),C.value&&(NM(C.value),M(w.value),M(O.value,!0),_M(C.value),null===(e=j.value)||void 0===e||e.update())}))},B=function(){var e;null===(e=O.value)||void 0===e||e.parentNode.removeChild(O.value)},L=function(){var e,t;null===(e=P.value)||void 0===e||e.parentNode.removeChild(P.value),null===(t=x.value)||void 0===t||t.parentNode.removeChild(x.value)},R=function(){_.value?(L(),A()):(B(),t.nextTick((function(){C.value=P.value,NM(C.value),M(w.value),_M(C.value)}))),T.value=!0},z=function(t){var n,r=k.value;S.value=!1,y(-1,{e:t,total:r}),null===(n=e.onSkip)||void 0===n||n.call(e,{e:t,current:g.value,total:r})},W=function(t){var n,r=k.value;y(g.value-1,{e:t,total:r}),null===(n=e.onPrevStepClick)||void 0===n||n.call(e,{e:t,prev:g.value-1,current:g.value,total:r})},K=function(t){var n,r=k.value;y(g.value+1,{e:t,total:r}),null===(n=e.onNextStepClick)||void 0===n||n.call(e,{e:t,next:g.value+1,current:g.value,total:r})},U=function(t){var n,r=k.value;S.value=!1,y(-1,{e:t,total:r}),null===(n=e.onFinish)||void 0===n||n.call(e,{e:t,current:g.value,total:r})},Y=function(){g.value>=0&&g.value=0&&e-1}}},setup:function(e,n){var r=n.expose,o=Qa("notification-list"),a=e.placement,l=t.ref([]),i=t.ref([]),u=t.computed((function(){return KM({zIndex:6e3},IM[a])})),c=function(e){l.value.splice(e,1)},s=function(e){if(e)return isNaN(Number(e))?e:"".concat(e,"px")},d=function(e){var t={marginBottom:TM};return e.offset&&(t.position="relative",t.left=s(e.offset[0]),t.top=s(e.offset[1])),e.zIndex&&(t["z-index"]=e.zIndex),t},v=function(e){e&&i.value.push(e)};return r({add:function(e){return l.value.push(e),l.value.length-1},remove:c,removeAll:function(){l.value=[]},list:l,notificationList:i}),function(){if(l.value.length)return t.createVNode("div",{class:"".concat(o.value,"__show"),style:u.value},[l.value.map((function(e,n){return t.createVNode(HM,t.mergeProps({ref:v,key:e.id,style:d(e)},function(e,t){return KM(KM({},t),{},{onCloseBtnClick:function(n){return t.onCloseBtnClick&&t.onCloseBtnClick(n),c(e)},onDurationEnd:function(){return t.onDurationEnd&&t.onDurationEnd(),c(e)}})}(n,e)),null)}))])}}});function YM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $M(e){for(var t=1;t=1024&&r<1048576?"".concat((r/1024).toFixed(1)," KB"):r>=1048576?"".concat((r/1048576).toFixed(1)," MB"):"")]),t.createVNode("small",{class:"".concat(v.small),key:"time"},[c.value.file.fileOperationDateText,"\uff1a",o.uploadTime||"-"])];return t.createVNode("div",{class:"".concat(f,"__dragger-progress")},["image"===e.theme&&O(),t.createVNode("div",{class:"".concat(f,"__dragger-progress-info")},[d("fileListDisplay",{params:{files:e.displayFiles}})||s,t.createVNode("div",{class:"".concat(f,"__dragger-btns")},[["progress","waiting"].includes(o.status)&&!l.value&&t.createVNode(ji,{theme:"primary",variant:"text",class:"".concat(f,"__dragger-progress-cancel"),onClick:function(t){var n;return null===(n=e.cancelUpload)||void 0===n?void 0:n.call(e,{e:t,file:e.toUploadFiles[0]||e.files[0]})}},{default:function(){return[null===(n=c.value)||void 0===n?void 0:n.cancelUploadText]}}),!e.autoUpload&&"waiting"===o.status&&t.createVNode(ji,{theme:"primary",variant:"text",disabled:l.value,onClick:function(){var t;return null===(t=e.uploadFiles)||void 0===t?void 0:t.call(e)},class:"".concat(f,"__dragger-upload-btn")},{default:function(){return[c.value.triggerUploadText.normal]}})]),["fail","success"].includes(null==o?void 0:o.status)&&!l.value&&t.createVNode("div",{class:"".concat(f,"__dragger-btns")},[t.createVNode(ji,{theme:"primary",variant:"text",disabled:l.value,class:"".concat(f,"__dragger-progress-cancel"),onClick:e.triggerUpload},{default:function(){return[c.value.triggerUploadText.reupload]}}),t.createVNode(ji,{theme:"danger",variant:"text",disabled:l.value,class:"".concat(f,"__dragger-delete-btn"),onClick:function(t){return e.onRemove({e:t,index:0,file:o})}},{default:function(){return[c.value.triggerUploadText.delete]}})])])])}()};return function(){var n;return t.createVNode("div",{ref:h,class:g.value,onDrop:p.handleDrop,onDragenter:p.handleDragenter,onDragover:p.handleDragover,onDragleave:p.handleDragleave},[(null===(n=e.trigger)||void 0===n?void 0:n.call(e,t.h,{files:a.value,dragActive:m.value}))||x()])}}});function vA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fA(e){for(var t=1;t=uh.KB&&c=uh.MB&&c=uh.GB?"".concat((c/uh.GB).toFixed(1)," GB"):"")]),t.createVNode("td",null,[I(n)]),l.value?null:s])}))])])},L=function(){var n=p("fileListDisplay",{params:{cancelUpload:e.cancelUpload,uploadFiles:e.uploadFiles,onRemove:e.onRemove,onPreview:e.onPreview,toUploadFiles:e.toUploadFiles,sizeOverLimitMessage:e.sizeOverLimitMessage,locale:e.locale,files:e.displayFiles,dragEvents:D.value}});return n||e.fileListDisplay?n:t.createVNode("ul",{class:"".concat(v.value,"__card clearfix")},[e.displayFiles.map((function(n,r){return function(n,r){var o=F(),a=o.iconMap,d=o.textMap,f=e.abridgeName&&n.name?sh.apply(void 0,[n.name].concat(i(e.abridgeName))):n.name;return t.createVNode("li",{class:"".concat(v.value,"__card-item"),key:n.name+r+n.percent+n.status||"0"},[t.createVNode("div",{class:["".concat(v.value,"__card-content"),s({},"".concat(c.value,"-is-bordered"),"waiting"!==n.status)]},[["fail","progress"].includes(n.status)&&t.createVNode("div",{class:"".concat(v.value,"__card-status-wrap ").concat(v.value,"__").concat(e.theme,"-").concat(n.status)},[a[n.status],t.createVNode("p",null,[d[n.status],e.showUploadProgress&&"progress"===n.status?" ".concat(n.percent,"%"):""])]),(["waiting","success"].includes(n.status)||!n.status&&n.url)&&t.createVNode(IN,{class:"".concat(v.value,"__card-image"),src:n.url||n.raw,error:"",loading:"",fit:"contain"},null),t.createVNode("div",{class:"".concat(v.value,"__card-mask")},[(n.url||n.raw)&&!["progress","fail"].includes(n.status)&&t.createVNode("span",{class:"".concat(v.value,"__card-mask-item")},[t.createVNode(h,{onClick:function(t){var o,a=t.e;_.value=r,N.value=u.value,null===(o=e.onPreview)||void 0===o||o.call(e,{file:n,index:r,e:a})}},null),t.createVNode("span",{class:"".concat(v.value,"__card-mask-item-divider")},null)]),!l.value&&t.createVNode("span",{class:"".concat(v.value,"__card-mask-item ").concat(v.value,"__delete"),onClick:function(t){return e.onRemove({e:t,index:r,file:n})}},[t.createVNode(g,null,null)])])]),e.showImageFileName&&t.createVNode("p",{class:["".concat(v.value,"__card-name"),"".concat(v.value,"__flow-status")]},[["success","waiting"].includes(n.status)&&a[n.status],f])])}(n,r)}))])};return function(){var n,o,i,c="".concat(v.value,"__flow-card-area"),s=l.value||!a.value,d=r.uploadButton||H(e.uploadButton),m=Boolean(l.value||a.value||!u.value.length),h=r.cancelUploadButton||H(e.cancelUploadButton);return t.createVNode("div",{class:"".concat(v.value,"__flow ").concat(v.value,"__flow-").concat(e.theme)},[t.createVNode("div",{class:"".concat(v.value,"__flow-op")},[null===(n=r.default)||void 0===n?void 0:n.call(r),e.placeholder&&t.createVNode("small",{class:"".concat(v.value,"__flow-placeholder ").concat(v.value,"__placeholder")},[e.placeholder])]),"image-flow"===e.theme&&t.createVNode("div",t.mergeProps({class:c},D.value),[u.value.length?L():T()]),"file-flow"===e.theme&&(u.value.length?B():t.createVNode("div",t.mergeProps({class:c},D.value),[T()])),!e.autoUpload&&(null!==e.uploadButton||null!==e.cancelUploadButton)&&t.createVNode("div",{class:"".concat(v.value,"__flow-bottom")},[null!==e.cancelUploadButton&&(d?p("cancelUploadButton",{params:{disabled:s,cancelUploadText:null===(o=f.value)||void 0===o?void 0:o.cancelUploadText,cancelUpload:e.cancelUpload}}):t.createVNode(ji,t.mergeProps({theme:"default",disabled:s,content:null===(i=f.value)||void 0===i?void 0:i.cancelUploadText,class:"".concat(v.value,"__cancel"),onClick:function(t){var n;return null===(n=e.cancelUpload)||void 0===n?void 0:n.call(e,{e:t})}},E(e.cancelUploadButton)?e.cancelUploadButton:{}),null)),null!==e.uploadButton&&(h?p("uploadButton",{params:{disabled:m,uploading:a.value,uploadText:V.value,uploadFiles:e.uploadFiles}}):t.createVNode(ji,t.mergeProps({disabled:m,theme:"primary",loading:a.value,class:"".concat(v.value,"__continue"),content:V.value,onClick:function(){var t;return null===(t=e.uploadFiles)||void 0===t?void 0:t.call(e)}},E(e.uploadButton)?e.uploadButton:{}),null))]),t.createVNode(iV,t.mergeProps({images:N.value.map((function(e){return e.url||e.raw})),visible:!!N.value.length,onClose:function(){N.value=[]},index:_.value,onIndexChange:function(e){return _.value=e}},e.imageViewerProps),null)])}}});function yA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bA(e){for(var t=1;tt*uh[n]}(e.size,o.size,o.unit);a&&(r=o)}t(r)})),a=[o,void 0];if(H(r)){var l=r(e),i=l instanceof Promise?l:new Promise((function(e){return e(l)}));a[1]=i}return new Promise((function(e){Promise.all(a).then((function(t){e(t)}))}))}function SA(e){var t=e.event,n=e.files,r=e.response,o=e.XMLHttpRequest,a=e.formatResponse,l=r;return H(a)&&(l=a(r,{file:n[0],currentFiles:n})),n.forEach((function(e){e.status="fail",e.response=l})),{response:l,event:t,files:n,XMLHttpRequest:o}}function kA(e){var t=e.action,n=e.toUploadFiles,r=e.requestMethod;return new Promise((function(o){if(!t&&!r)return Qm("Upload","one of action and requestMethod must be exist."),void o({});if(!n||!n.length)return Gm("Upload","No files need to be uploaded"),void o({});if(n.forEach((function(e){e.status="progress"})),r)r(e.multiple?n:n[0]).then((function(t){if(function(e){return e?e.status?["success","fail"].includes(e.status)?("success"!==e.status||e.response&&(e.response.url||e.response.files)||Gm("Upload","`requestMethodResponse.response.url` or `requestMethodResponse.response.files` is required if `status` is `success`"),!0):(Qm("Upload","`requestMethodResponse.status` must be `success` or `fail`, examples `{ status: 'success', response: { url: '' } }`"),!1):(Qm("Upload","`requestMethodResponse.status` is missing, which value only can be `success` or `fail`"),!1):(Qm("Upload","`requestMethodResponse` is required."),!1)}(t)){var r=t.response||{};H(e.formatResponse)&&(r=e.formatResponse(r,{file:n[0],currentFiles:n})),"fail"===t.status&&(r.error=t.error||r.error);var a=[];"success"===t.status&&r.files?a=r.files.map((function(e){return PA(PA(PA({},n.find((function(t){return e.name&&t.name===e.name||e.raw&&t.raw===e.raw}))),e),{},{status:t.status,response:r})})):(n.forEach((function(e){var n;e.status=t.status,e.response=r,e.url=r.url,e.percent="success"===t.status?100:0,e.uploadTime=(null===(n=r)||void 0===n?void 0:n.uploadTime)||ch()})),a=n);var l,i={response:r,file:a[0],files:a};if("success"===t.status)null===(l=e.onResponseSuccess)||void 0===l||l.call(e,i);else if("fail"===t.status){var u;null===(u=e.onResponseError)||void 0===u||u.call(e,i)}o({status:t.status,data:i})}else o({})}));else{var a,l=function(e){var t,n,r,o=e.method,a=void 0===o?"POST":o,l=e.action,c=e.withCredentials,s=void 0!==c&&c,d=e.headers,v=void 0===d?{}:d,f=e.data,p=void 0===f?{}:f,m=e.file,h=e.files,g=void 0===h?[]:h,y=e.name,b=void 0===y?"file":y,w=e.useMockProgress,O=void 0===w||w,C=e.mockProgressDuration,x=void 0===C?300:C,P=e.formatRequest,j=e.onError,S=e.onProgress,k=e.onSuccess,N=g||[],_=0,V=new XMLHttpRequest;if(s&&(V.withCredentials=!0),O&&"progress"===(null===(t=g[0])||void 0===t?void 0:t.status))var D=setTimeout((function(){n=setInterval((function(){_+10<100?(_=Math.max(_+10,_),g[0]&&_!==g[0].percent&&(g[0].percent=_,S({percent:_,file:m||N[0],files:N.map((function(e){return CA(CA({},e),{},{percent:_})})),type:"mock",XMLHttpRequest:V}))):clearInterval(n)}),x),clearTimeout(D)}),x);var E={};if(p){var F=H(p)?p(N):p;Object.assign(E,F)}N.forEach((function(e,t){var n=N.length>1?"".concat(b,"[").concat(t,"]"):b;E[n]=e.raw})),1===N.length?E[b]=N[0].raw:E[b]=N.map((function(e){return e.raw})),E.length=N.length,P&&(E=P(E));var T=new FormData;return Object.keys(E).forEach((function(e){T.append(e,E[e])})),V.open(a,l,!0),Object.keys(v).forEach((function(e){V.setRequestHeader(e,v[e])})),V.onerror=function(e){j({event:e,file:m,files:N,XMLHttpRequest:V}),clearInterval(n),clearTimeout(r)},V.ontimeout=function(e){j({event:e,file:m,files:N,XMLHttpRequest:V})},V.upload&&(V.upload.onprogress=function(e){var t,n=0;if(e.total>0&&(n=Math.round(e.loaded/e.total*100)),(_=Math.max(n,_))!==n&&(null===(t=N[0])||void 0===t?void 0:t.percent)!==_){var r=N.map((function(e){return CA(CA({},e),{},{percent:_})}));S({event:e,percent:_,file:m||r[0],files:r,type:"real",XMLHttpRequest:V})}}),V.onload=function(e){var t={};if(t.XMLHttpRequest=V,V.status<200||V.status>=300)return j({event:e,file:m,files:N,response:t,XMLHttpRequest:V});var o=V.responseText||V.response;try{t=JSON.parse(o)}catch(e){t=o,Qm("Upload","response does not a valid json")}clearInterval(n),clearTimeout(r),N.forEach((function(e){var n;e.percent=100,e.status="success",e.uploadTime=(null===(n=t)||void 0===n?void 0:n.uploadTime)||ch()})),"object"===u(t)&&(t.XMLHttpRequest=V),k({event:e,file:m||N[0],files:i(N),XMLHttpRequest:V,response:t})},V.send(T),V.upload.requestParams=E,V.upload.requestHeaders=v,V}({action:e.action,files:e.toUploadFiles,useMockProgress:e.useMockProgress,mockProgressDuration:e.mockProgressDuration,onError:function(t){var n,r=SA(PA(PA({},t),{},{formatResponse:e.formatResponse}));null===(n=e.onResponseError)||void 0===n||n.call(e,r),o({status:"fail",data:r})},onProgress:e.onResponseProgress,onSuccess:function(t){var n=e.formatResponse,r=t.response;if(H(n)&&(r=n(t.response,{file:t.file,currentFiles:t.files})),r.error){var a,l=SA(PA(PA({},t),{},{response:r}));null===(a=e.onResponseError)||void 0===a||a.call(e,l),o({status:"fail",data:l})}else{var i;t.file.response=r,t.files[0].response=r;var u=function(e){var t=e.event,n=e.files,r=e.response,o=e.XMLHttpRequest;(null==n?void 0:n.length)<=0&&Qm("Upload","Empty File in Success Callback"),n.forEach((function(e){var t;e.percent=100,e.status="success",null===(t=e.response)||void 0===t||delete t.error}));var a=r;return n[0].url=a.url||n[0].url,{response:a,event:t,files:n,XMLHttpRequest:o}}(PA(PA({},t),{},{response:r}));null===(i=e.onResponseSuccess)||void 0===i||i.call(e,u),o({status:"success",data:u})}},formatRequest:e.formatRequest,data:e.data,name:e.name,headers:e.headers,withCredentials:e.withCredentials,method:e.method});null===(a=e.setXhrObject)||void 0===a||a.call(e,{files:e.toUploadFiles,xhrReq:l})}}))}function NA(e){var t=e.uploadAllFilesInOneRequest,n=e.toUploadFiles,r=e.uploadedFiles,o=e.isBatchUpload,a=n.filter((function(e){return!e.response||e.response&&!e.response.error}));return new Promise((function(n){if(!t&&e.multiple){var l=a.map((function(t){return kA(PA(PA({},e),{},{toUploadFiles:[t]}))}));Promise.all(l).then((function(t){var a=[],l=[];t.forEach((function(e){"success"===e.status?a.push(e.data.files[0]):"fail"===e.status&&l.push(e.data.files[0])}));var i=e.autoUpload?r.concat(a):r,u=o||!e.multiple?a:i;n({status:a.length?"success":"fail",data:{files:u},failedFiles:l,list:t})}))}else kA(e).then((function(t){"success"===t.status&&(t.data.files=o||!e.multiple?t.data.files:function(e,t){for(var n=e.filter((function(e){return e.url})),r=function(){var r=t[o],a=e.findIndex((function(e){return e.raw&&e.raw===r.raw||e.name&&e.name===r.name})),l=a>=0?PA(PA({},e[a]),r):r;n.push(l)},o=0,a=t.length;o2&&void 0!==arguments[2]?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return e.map((function(e){var o=e;return H(t)&&(o=t(e)),PA({raw:e,lastModified:e.lastModified,name:e.name,size:e.size,type:e.type,percent:r,status:n},o)}))}function VA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function DA(e){for(var t=1;tr&&(u=!0)}var s,d=_A(l,e.format,e.autoUpload?"progress":"waiting");if(e.beforeAllFilesUpload){var v,f=null===(v=e.beforeAllFilesUpload)||void 0===v?void 0:v.call(e,d);s=f instanceof Promise?f:new Promise((function(e){return e(f)}))}var p=d.map((function(t){return new Promise((function(n){jA(t,{beforeUpload:e.beforeUpload,sizeLimit:e.sizeLimit}).then((function(e){var r=Ha(e,2),o=r[0],a=r[1];o?n({file:t,validateResult:{type:"FILE_OVER_SIZE_LIMIT",extra:o}}):!1===a&&n({file:t,validateResult:{type:"CUSTOM_BEFORE_UPLOAD"}}),n({file:t})}))}))}));Promise.all([s].concat(p)).then((function(e){var t=RT(e),n=t[0],r=t.slice(1);a(!1===n?{lengthOverLimit:u,hasSameNameFile:i,validateResult:{type:"BEFORE_ALL_FILES_UPLOAD"},files:d}:{lengthOverLimit:u,hasSameNameFile:i,fileValidateList:r,files:d})}))}else{var m=_A(t,e.format,e.autoUpload?"progress":"waiting");a({hasSameNameFile:i,file:null==m?void 0:m[0],files:m,validateResult:{type:"FILTER_FILE_SAME_NAME"}})}}))}({uploadValue:g.value,files:i(t),allowUploadDuplicateFile:e.allowUploadDuplicateFile,max:e.multiple?e.max:0,sizeLimit:e.sizeLimit,isBatchUpload:l.value,autoUpload:a.value,format:e.format,beforeUpload:e.beforeUpload,beforeAllFilesUpload:e.beforeAllFilesUpload}).then((function(t){var n;if("BEFORE_ALL_FILES_UPLOAD"!==(null===(n=t.validateResult)||void 0===n?void 0:n.type)){if(t.lengthOverLimit){var r,o={type:"FILES_OVER_LENGTH_LIMIT",files:t.files};if(null===(r=e.onValidate)||void 0===r||r.call(e,o),!t.files.length)return}if(t.hasSameNameFile){var i,u={type:"FILTER_FILE_SAME_NAME",files:t.files};null===(i=e.onValidate)||void 0===i||i.call(e,u)}if(t.fileValidateList instanceof Array){var c,s,d=function(e,t){var n=[],r=[],o=[];return e.forEach((function(e){var a,l;if("CUSTOM_BEFORE_UPLOAD"!==(null===(a=e.validateResult)||void 0===a?void 0:a.type))return"FILE_OVER_SIZE_LIMIT"===(null===(l=e.validateResult)||void 0===l?void 0:l.type)?(e.file.response||(e.file.response={}),e.file.response.error=e.file.response.error||t(e.validateResult.extra),void n.push(e)):void o.push(e.file);r.push(e.file)})),{sizeLimitErrors:n,beforeUploadErrorFiles:r,toFiles:o}}(t.fileValidateList,F),v=d.sizeLimitErrors,f=d.beforeUploadErrorFiles,p=d.toFiles,m=a.value?p:w.value.concat(p);if(w.value=m,null===(c=e.onWaitingUploadFilesChange)||void 0===c||c.call(e,{files:m,trigger:"validate"}),v[0])O.value=v[0].file.response.error,null===(s=e.onValidate)||void 0===s||s.call(e,{type:"FILE_OVER_SIZE_LIMIT",files:v.map((function(e){return e.file}))});else if(O.value="",f.length){var h,b={type:"CUSTOM_BEFORE_UPLOAD",files:f};null===(h=e.onValidate)||void 0===h||h.call(e,b)}a.value?I(m):function(t){var n=e.multiple&&!l.value?g.value.concat(t):t;n.length&&(y(n,{trigger:"add",index:g.value.length,file:t[0],files:t}),w.value=[])}(m)}}else{var C,x={type:"BEFORE_ALL_FILES_UPLOAD",files:t.files};null===(C=e.onValidate)||void 0===C||C.call(e,x)}})),n.value.value=null}};function I(t){var n=g.value.filter((function(e){return"success"!==e.status})),r=a.value?t||w.value:n;r&&r.length&&(k.value=!0,b.value=[],NA({action:e.action,headers:e.headers,method:e.method,name:e.name,withCredentials:e.withCredentials,uploadedFiles:g.value,toUploadFiles:r,multiple:e.multiple,isBatchUpload:l.value,autoUpload:e.autoUpload,uploadAllFilesInOneRequest:e.uploadAllFilesInOneRequest,useMockProgress:e.useMockProgress,data:e.data,mockProgressDuration:e.mockProgressDuration,requestMethod:e.requestMethod,formatRequest:e.formatRequest,formatResponse:e.formatResponse,onResponseProgress:D,onResponseSuccess:E,onResponseError:V,setXhrObject:function(e){var t;null!==(t=e.files[0])&&void 0!==t&&t.raw&&b.value.find((function(t){var n;return(null===(n=t.files[0])||void 0===n?void 0:n.raw)===e.files[0].raw}))||(b.value=b.value.concat(e))}}).then((function(t){var n,o,l=t.status,u=t.data,c=t.list,s=t.failedFiles;if(k.value=!1,"success"===l)y(i(u.files),{trigger:"add",file:u.files[0]}),b.value=[],null===(n=e.onSuccess)||void 0===n||n.call(e,{fileList:u.files,currentFiles:r,file:r[0],results:null==c?void 0:c.map((function(e){return e.data})),response:u.response||c.map((function(e){return e.data.response})),XMLHttpRequest:u.XMLHttpRequest});else if(null!=s&&s[0]){var d;null===(d=e.onFail)||void 0===d||d.call(e,{e:u.event,file:s[0],failedFiles:s,currentFiles:r,response:u.response,XMLHttpRequest:u.XMLHttpRequest})}a.value&&(w.value=s,null===(o=e.onWaitingUploadFilesChange)||void 0===o||o.call(e,{files:s,trigger:"uploaded"}))})))}function M(t){var n,r,o;O.value="",null===(n=(r=t.e).stopPropagation)||void 0===n||n.call(r);var a,l={e:t.e,trigger:"remove",index:t.index,file:t.file};if(e.isBatchUpload||!e.multiple)w.value=[],null===(a=e.onWaitingUploadFilesChange)||void 0===a||a.call(e,{files:[],trigger:"remove"}),y([],l);else if(e.autoUpload){var u;if(t.index r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nexport default chunk;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nexport default mergeWith;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import toString from './toString.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nexport default escapeRegExp;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nexport default baseGt;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseIntersection;\n","import isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nexport default castArrayLikeObject;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nexport default intersection;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nexport default isBoolean;\n","import baseIsDate from './_baseIsDate.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nexport default isDate;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nexport default baseIsDate;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nexport default isNull;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nexport default baseUnset;\n","import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n","import isPlainObject from './isPlainObject.js';\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nexport default customOmitClone;\n","import arrayMap from './_arrayMap.js';\nimport baseClone from './_baseClone.js';\nimport baseUnset from './_baseUnset.js';\nimport castPath from './_castPath.js';\nimport copyObject from './_copyObject.js';\nimport customOmitClone from './_customOmitClone.js';\nimport flatRest from './_flatRest.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nexport default omit;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n}\n\nexport default baseRepeat;\n","import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n","import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n","import baseRepeat from './_baseRepeat.js';\nimport baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\n\n/**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\nfunction createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n}\n\nexport default createPadding;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\nfunction padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n}\n\nexport default padStart;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import baseUnset from './_baseUnset.js';\nimport isIndex from './_isIndex.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nexport default basePullAt;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n","import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n","import baseIteratee from './_baseIteratee.js';\nimport basePullAt from './_basePullAt.js';\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = baseIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nexport default remove;\n","import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n","import baseSum from './_baseSum.js';\nimport identity from './identity.js';\n\n/**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\nfunction sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n}\n\nexport default sum;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nexport default baseSum;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nexport default createSet;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseUniq;\n","import toString from './toString.js';\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nexport default uniqueId;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string`, as space separated words, to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.upperCase('--foo-bar');\n * // => 'FOO BAR'\n *\n * _.upperCase('fooBar');\n * // => 'FOO BAR'\n *\n * _.upperCase('__foo_bar__');\n * // => 'FOO BAR'\n */\nvar upperCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toUpperCase();\n});\n\nexport default upperCase;\n","import arrayFilter from './_arrayFilter.js';\nimport baseRest from './_baseRest.js';\nimport baseXor from './_baseXor.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\nvar xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n});\n\nexport default xorWith;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nexport default baseXor;\n","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","export type AnimationType = 'ripple' | 'expand' | 'fade';\n\nexport default {\n classPrefix: 't',\n animation: {\n include: ['ripple', 'expand', 'fade'],\n exclude: [],\n } as Record<'include' | 'exclude', Array>,\n attach: null,\n calendar: {\n firstDayOfWeek: 1,\n fillWithZero: true,\n controllerConfig: undefined,\n },\n icon: {},\n input: {\n autocomplete: '',\n },\n dialog: {\n closeOnEscKeydown: true,\n closeOnOverlayClick: true,\n confirmBtnTheme: {\n default: 'primary',\n info: 'primary',\n warning: 'primary',\n danger: 'primary',\n success: 'primary',\n },\n },\n message: {},\n popconfirm: {\n confirmBtnTheme: {\n default: 'primary',\n warning: 'primary',\n danger: 'primary',\n },\n },\n table: {\n // 展开和收起图标(使用收起图标)\n expandIcon: undefined,\n // 排序图标(使用降序图标)\n sortIcon: undefined,\n // 过滤图标\n filterIcon: undefined,\n // 树形结构展开图标\n treeExpandAndFoldIcon: undefined,\n // 是否隐藏排序图标的文本提示\n hideSortTips: false,\n // 全局表格尺寸配置\n size: 'medium',\n },\n select: {\n // 清除按钮\n clearIcon: undefined,\n filterable: false,\n },\n drawer: {\n closeOnEscKeydown: true,\n closeOnOverlayClick: true,\n size: 'small',\n },\n tree: {\n // 目录层级图标\n folderIcon: undefined,\n },\n datePicker: {\n firstDayOfWeek: 1,\n },\n steps: {\n checkIcon: undefined,\n errorIcon: undefined,\n },\n tag: {\n closeIcon: undefined,\n },\n form: {\n requiredMark: undefined,\n },\n empty: {\n titleText: {\n maintenance: undefined,\n success: undefined,\n fail: undefined,\n empty: undefined,\n networkError: undefined,\n },\n image: {\n maintenance: undefined,\n success: undefined,\n fail: undefined,\n empty: undefined,\n networkError: undefined,\n }\n },\n} as const;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)> = Symbol('configProvide');\n\nexport const mergeWith = (defaultGlobalConfig: GlobalConfigProvider, injectConfig: GlobalConfigProvider) =>\n _mergeWith(defaultGlobalConfig, injectConfig, (objValue, srcValue) => {\n if (isArray(objValue)) {\n return srcValue;\n }\n });\n","// TODO 应当提取到公共 hooks 中\nimport { computed, h, inject, getCurrentInstance, ref, provide } from 'vue';\nimport { cloneDeep, isFunction, isString } from 'lodash-es';\n\nimport { defaultGlobalConfig, configProviderInjectKey, mergeWith } from '../utils/context';\nimport { GlobalConfigProvider, TdConfigProviderProps } from '../type';\n\n// 这是为了解决在非component里调用useConfig hook时发出的警告\n// https://github.com/Tencent/tdesign-vue-next/issues/2025\nconst globalConfigCopy = ref();\n\nexport * from '../type';\n\n/**\n * component globalConfig\n * @param componentName\n * @returns {t, globalConfig}\n * useConfig('pagination')\n */\nexport function useConfig(\n componentName: T = undefined,\n componentLocale?: GlobalConfigProvider[T],\n) {\n const injectGlobalConfig = getCurrentInstance() ? inject(configProviderInjectKey, null) : globalConfigCopy;\n const mergedGlobalConfig = computed(() => injectGlobalConfig?.value || defaultGlobalConfig);\n const globalConfig = computed(() => Object.assign({}, mergedGlobalConfig.value[componentName], componentLocale));\n\n const classPrefix = computed(() => {\n return mergedGlobalConfig.value.classPrefix;\n });\n\n // 处理正则表达式\n const t = function (pattern: T, ...args: any[]) {\n const [data] = args;\n if (isString(pattern)) {\n if (!data) return pattern;\n const regular = /\\{\\s*([\\w-]+)\\s*\\}/g;\n const translated = pattern.replace(regular, (match, key) => {\n if (data) {\n return String(data[key]);\n }\n return '';\n });\n return translated;\n }\n if (isFunction(pattern)) {\n // 重要:组件的渲染必须存在参数 h,不能移除\n if (!args.length) return pattern(h);\n return pattern(...args);\n }\n return '';\n };\n\n return {\n t,\n global: globalConfig,\n globalConfig,\n classPrefix,\n };\n}\n\n/**\n * provide globalConfig\n * @param {TdConfigProviderProps} props\n * @returns {ComputedRef}\n */\nexport const provideConfig = (props: TdConfigProviderProps) => {\n const defaultData = cloneDeep(defaultGlobalConfig);\n const mergedGlobalConfig = computed(() =>\n Object.assign({}, mergeWith(defaultData as unknown as GlobalConfigProvider, props.globalConfig)),\n );\n\n provide(configProviderInjectKey, mergedGlobalConfig);\n\n if (!globalConfigCopy.value) {\n globalConfigCopy.value = mergedGlobalConfig.value;\n }\n\n return mergedGlobalConfig;\n};\n","import { computed } from 'vue';\nimport { useConfig } from '../config-provider/hooks/useConfig';\n\nexport function usePrefixClass(componentName?: string) {\n const { classPrefix } = useConfig('classPrefix');\n return computed(() => {\n return componentName ? `${classPrefix.value}-${componentName}` : classPrefix.value;\n });\n}\n\nexport function useCommonClassName() {\n const { classPrefix } = useConfig('classPrefix');\n\n return {\n SIZE: computed(() => ({\n small: `${classPrefix.value}-size-s`,\n medium: `${classPrefix.value}-size-m`,\n large: `${classPrefix.value}-size-l`,\n default: '',\n xs: `${classPrefix.value}-size-xs`,\n xl: `${classPrefix.value}-size-xl`,\n block: `${classPrefix.value}-size-full-width`,\n })),\n STATUS: computed(() => ({\n loading: `${classPrefix.value}-is-loading`,\n loadMore: `${classPrefix.value}-is-load-more`,\n disabled: `${classPrefix.value}-is-disabled`,\n focused: `${classPrefix.value}-is-focused`,\n success: `${classPrefix.value}-is-success`,\n error: `${classPrefix.value}-is-error`,\n warning: `${classPrefix.value}-is-warning`,\n selected: `${classPrefix.value}-is-selected`,\n active: `${classPrefix.value}-is-active`,\n checked: `${classPrefix.value}-is-checked`,\n current: `${classPrefix.value}-is-current`,\n hidden: `${classPrefix.value}-is-hidden`,\n visible: `${classPrefix.value}-is-visible`,\n expanded: `${classPrefix.value}-is-expanded`,\n indeterminate: `${classPrefix.value}-is-indeterminate`,\n })),\n };\n}\n\nexport { useConfig };\n","import { Styles } from '../common';\n\n/**\n * 用于为节点增加styles\n * @param el HTMLElement\n * @param style Styles\n */\nfunction setStyle(el: HTMLElement, styles: Styles): void {\n const keys = Object.keys(styles);\n keys.forEach((key) => {\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n el.style[key] = styles[key];\n });\n // TODO: 这个怎么样\n // Object.assign(el.style, styles);\n}\n\nexport default setStyle;\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import { isString, isNull, isUndefined, isNumber, isArray } from 'lodash-es';\n\nexport function omit(obj: Record, fields: string[]) {\n const shallowCopy = {\n ...obj,\n };\n for (let i = 0; i < fields.length; i++) {\n const key = fields[i];\n delete shallowCopy[key];\n }\n return shallowCopy;\n}\n\nexport function getValidAttrs>(obj: T): Partial {\n const newObj: Partial = {};\n\n Object.keys(obj).forEach((key) => {\n if (!isUndefined(obj[key]) || isNull(obj[key])) {\n newObj[key as keyof T] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function removeEmptyAttrs>(obj: T): Partial {\n const newObj: Partial = {};\n\n Object.keys(obj).forEach((key) => {\n if (!isUndefined(obj[key]) || isNull(obj[key])) {\n newObj[key as keyof T] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function getTabElementByValue(tabs: [] = [], value: string): object {\n const [result] = tabs.filter((item) => {\n const { id } = item as any;\n return id === value;\n });\n return result || null;\n}\n\nexport function firstUpperCase(str: string): string {\n return str.toLowerCase().replace(/( |^)[a-z]/g, (char: string) => char.toUpperCase());\n}\n\nexport type Gradients = { [percent: string]: string };\nexport type FromTo = { from: string; to: string };\nexport type LinearGradient = { direction?: string } & (Gradients | FromTo);\nexport function getBackgroundColor(color: string | string[] | LinearGradient): string {\n if (isString(color)) {\n return color;\n }\n if (isArray(color)) {\n if (color[0] && color[0][0] === '#') {\n color.unshift('90deg');\n }\n return `linear-gradient( ${color.join(',')} )`;\n }\n const {\n from, to, direction = 'to right', ...rest\n } = color;\n let keys = Object.keys(rest);\n if (keys.length) {\n keys = keys.sort((a, b) => {\n const c = parseFloat(a.substr(0, a.length - 1)) - parseFloat(b.substr(0, b.length - 1));\n return c;\n });\n const tempArr = keys.map((key: any) => `${rest[key as keyof typeof rest]} ${key}`);\n return `linear-gradient(${direction}, ${tempArr.join(',')})`;\n }\n return `linear-gradient(${direction}, ${from}, ${to})`;\n}\n\n/**\n *\n * @returns 获取 ie 浏览器版本\n */\nexport function getIEVersion() {\n if (typeof navigator === 'undefined' || !navigator) return Number.MAX_SAFE_INTEGER;\n\n const { userAgent } = navigator;\n // 判断是否IE<11浏览器\n const isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;\n // 判断是否IE11浏览器\n const isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1;\n if (isIE) {\n const reIE = new RegExp('MSIE (\\\\d+\\\\.\\\\d+);');\n const match = userAgent.match(reIE);\n if (!match) return -1;\n const fIEVersion = parseFloat(match[1]);\n return fIEVersion < 7 ? 6 : fIEVersion;\n }\n if (isIE11) {\n // IE11\n return 11;\n }\n // 不是ie浏览器\n return Number.MAX_SAFE_INTEGER;\n}\n\n/**\n * Safari Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Safari/605.1.15\n * FireFox Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0\n * Chrome Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36\n * Chrome 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.3\n * 搜狗 Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.\n * 360 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.9 Safari/537.36 QIHU 360EE\n */\nexport function getFlexGapPolyFill() {\n if (typeof navigator === 'undefined' || !navigator) return false;\n const ua = navigator.userAgent;\n const chromeMatch = ua.match(/AppleWebKit.+Chrome\\/(.+) Safari\\/.+/i);\n if (Number(chromeMatch?.[1]?.split('.')[0]) < 100) return true;\n const safariMatch = ua.match(/AppleWebKit.+Version\\/(.+) Safari\\/.+/i);\n if (Number(safariMatch?.[1]?.split('.')[0]) < 12) return true;\n const ieVersion = getIEVersion();\n if (ieVersion <= 11) return true;\n const fireFoxMatch = ua.match(/Firefox\\/(.+)/i);\n if (Number(fireFoxMatch?.[1]?.split('.')[0]) < 100) return true;\n return false;\n}\n\n/**\n * 计算字符串字符的长度并可以截取字符串。\n * @param str 传入字符串\n * @param maxCharacter 规定最大字符串长度\n * @returns 当没有传入maxCharacter时返回字符串字符长度,当传入maxCharacter时返回截取之后的字符串和长度。\n */\nexport function getCharacterLength(str: string): number;\nexport function getCharacterLength(str: string, maxCharacter?: number): { length: number; characters: string }\nexport function getCharacterLength(str: string, maxCharacter?: number) {\n const hasMaxCharacter = isNumber(maxCharacter);\n if (!str || str.length === 0) {\n if (hasMaxCharacter) {\n return {\n length: 0,\n characters: str,\n };\n }\n return 0;\n }\n let len = 0;\n for (let i = 0; i < str.length; i++) {\n let currentStringLength = 0;\n if (str.charCodeAt(i) > 127) {\n currentStringLength = 2;\n } else {\n currentStringLength = 1;\n }\n if (hasMaxCharacter && len + currentStringLength > maxCharacter) {\n return {\n length: len,\n characters: str.slice(0, i),\n };\n }\n len += currentStringLength;\n }\n if (hasMaxCharacter) {\n return {\n length: len,\n characters: str,\n };\n }\n return len;\n}\n\n/**\n * 返回 Unicode 字符长度\n * '👨'.length === 2\n * getUnicodeLength('👨') === 1\n * @param str\n * @returns {number}\n */\nexport function getUnicodeLength(str?: string): number {\n return [...(str ?? '')].length;\n}\n\n/**\n * 修正 Unicode 最大字符长度\n * '👨👨👨'.slice(0, 2) === '👨'\n * limitUnicodeMaxLength('👨👨👨', 2) === '👨👨'\n * @param str\n * @param maxLength\n * @param oldStr\n * @returns {string}\n */\nexport function limitUnicodeMaxLength(\n str?: string,\n maxLength?: number,\n oldStr?: string\n): string {\n // 旧字符满足字数要求则返回\n if ([...(oldStr ?? '')].slice().length === maxLength) return oldStr || '';\n return [...(str ?? '')].slice(0, maxLength).join('');\n}\n\n/**\n * 兼容样式中支持number/string类型的传值 得出最后的结果。\n * @param param number或string类型的可用于样式上的值\n * @returns 可使用的样式值。\n */\nexport function pxCompat(param: string | number) {\n return isNumber(param) ? `${param}px` : param;\n}\n\n/**\n * 计算dom元素盒模型尺寸\n * @param targetElement 需要计算盒模型尺寸的元素\n * @returns 计算出各维度尺寸。\n */\nconst DOM_STYLE_PROPS = [\n 'padding-top',\n 'padding-bottom',\n 'padding-left',\n 'padding-right',\n 'font-family',\n 'font-weight',\n 'font-size',\n 'font-variant',\n 'text-rendering',\n 'text-transform',\n 'width',\n 'text-indent',\n 'border-width',\n 'box-sizing',\n 'line-height',\n 'letter-spacing',\n];\n\nexport function calculateNodeSize(targetElement: HTMLElement) {\n if (typeof window === 'undefined') {\n return {\n paddingSize: 0,\n borderSize: 0,\n boxSizing: 0,\n sizingStyle: '',\n };\n }\n\n const style = window.getComputedStyle(targetElement);\n\n const boxSizing = style.getPropertyValue('box-sizing')\n || style.getPropertyValue('-moz-box-sizing')\n || style.getPropertyValue('-webkit-box-sizing');\n\n const paddingSize = (\n parseFloat(style.getPropertyValue('padding-bottom'))\n + parseFloat(style.getPropertyValue('padding-top'))\n );\n\n const borderSize = (\n parseFloat(style.getPropertyValue('border-bottom-width'))\n + parseFloat(style.getPropertyValue('border-top-width'))\n );\n\n const sizingStyle = DOM_STYLE_PROPS\n .map((name) => `${name}:${style.getPropertyValue(name)}`)\n .join(';');\n\n return {\n paddingSize, borderSize, boxSizing, sizingStyle,\n };\n}\n","import { defineComponent, onMounted, nextTick, ref } from 'vue';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport circleAdapter from '@tdesign/common-js/loading/circle-adapter';\n\nexport default defineComponent({\n name: 'TLoadingGradient',\n setup() {\n const classPrefix = usePrefixClass();\n const circleRef = ref();\n\n onMounted(() => {\n nextTick(() => {\n circleAdapter(circleRef.value);\n });\n });\n\n return () => {\n const name = `${classPrefix.value}-loading__gradient`;\n const classes = [name, `${classPrefix.value}-icon-loading`];\n\n return (\n \n \n
\n \n \n );\n };\n },\n});\n","import setStyle from '../utils/setStyle';\nimport { getIEVersion } from '../utils/helper';\n\nexport default function circleAdapter(circleElem: HTMLElement) {\n let basicStyle = {};\n\n if (!circleElem || typeof window === 'undefined') {\n return;\n }\n\n const { color, fontSize } = window?.getComputedStyle?.(circleElem);\n\n // to fix the browser compat of foreignObject in Safari,\n // https://bugs.webkit.org/show_bug.cgi?id=23113\n const ua = window?.navigator?.userAgent;\n const isSafari = /Safari/.test(ua) && !/Chrome/.test(ua);\n // 判断是否为 iOS 下的微信和企业微信\n const isIosWechat = /(?=.*iPhone)[?=.*MicroMessenger]/.test(ua) && !/Chrome/.test(ua);\n\n // 注意:chrome上调试mobile/ipad端时,loading出现异常,属于正常现象,不需要修改。\n if (isSafari || isIosWechat) {\n basicStyle = {\n transformOrigin: '0px 0px',\n transform: `scale(${parseInt(fontSize, 10) / 12})`,\n };\n }\n // 添加:判断是否为IE浏览器\n if (color && getIEVersion() > 11) {\n const matched = color.match(/[\\d.]+/g);\n const endColor = matched ? `rgba(${matched[0]}, ${matched[1]}, ${matched[2]}, 0)` : '';\n setStyle(circleElem, {\n ...basicStyle,\n background: `conic-gradient(from 90deg at 50% 50%,${endColor} 0deg, ${color} 360deg)`,\n });\n } else {\n setStyle(circleElem, {\n ...basicStyle,\n background: '',\n });\n }\n}\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/**\n * @file\n * 缓动函数\n * 参考自: https://github.com/bameyrick/js-easing-functions/blob/master/src/index.ts\n */\n\nexport interface EasingFunction {\n (current: number, start: number, end: number, duration: number): number;\n}\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const linear: EasingFunction = (current, start, end, duration) => {\n const change = end - start;\n const offset = (change * current) / duration;\n return offset + start;\n};\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const easeInOutCubic: EasingFunction = (current, start, end, duration) => {\n const change = (end - start) / 2;\n let time = current / (duration / 2);\n if (time < 1) {\n return change * time * time * time + start;\n }\n time -= 2;\n // eslint-disable-next-line no-return-assign\n return change * (time * time * time + 2) + start;\n};\n","/**\n * Thanks to https://spothero.com/static/main/uniform/docs-js/module-DOMUtils.html\n */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-undef */\nimport { ComponentPublicInstance, VNode } from 'vue';\nimport raf from 'raf';\nimport { isString } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { easeInOutCubic, EasingFunction } from '@tdesign/common-js/utils/easing';\nimport { ScrollContainer, ScrollContainerElement } from '../common';\n\nexport const isServer = typeof window === 'undefined';\nconst trim = (str: string): string => (str || '').replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, '');\n\nexport const on = ((): any => {\n if (!isServer && document.addEventListener) {\n return (\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): any => {\n if (element && event && handler) {\n element.addEventListener(event, handler, options);\n }\n };\n }\n return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n if (element && event && handler) {\n (element as any).attachEvent(`on${event}`, handler);\n }\n };\n})();\n\nexport const off = ((): any => {\n if (!isServer && document.removeEventListener) {\n return (\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): any => {\n if (element && event) {\n element.removeEventListener(event, handler, options);\n }\n };\n }\n return (element: Node, event: string, handler: EventListenerOrEventListenerObject): any => {\n if (element && event) {\n (element as any).detachEvent(`on${event}`, handler);\n }\n };\n})();\n\nexport function once(\n element: Node,\n event: string,\n handler: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) {\n const handlerFn = isFunction(handler) ? handler : handler.handleEvent;\n const callback = (evt: any) => {\n handlerFn(evt);\n off(element, event, callback, options);\n };\n\n on(element, event, callback, options);\n}\n\nexport function hasClass(el: Element, cls: string): any {\n if (!el || !cls) return false;\n if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');\n if (el.classList) {\n return el.classList.contains(cls);\n }\n return ` ${el.className} `.indexOf(` ${cls} `) > -1;\n}\n\nexport function addClass(el: Element, cls: string): any {\n if (!el) return;\n let curClass = el.className;\n const classes = (cls || '').split(' ');\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.add(clsName);\n } else if (!hasClass(el, clsName)) {\n curClass += ` ${clsName}`;\n }\n }\n if (!el.classList) {\n el.className = curClass;\n }\n}\n\nexport function removeClass(el: Element, cls: string): any {\n if (!el || !cls) return;\n const classes = cls.split(' ');\n let curClass = ` ${el.className} `;\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.remove(clsName);\n } else if (hasClass(el, clsName)) {\n curClass = curClass.replace(` ${clsName} `, ' ');\n }\n }\n if (!el.classList) {\n el.className = trim(curClass);\n }\n}\n\nexport const getAttach = (node: any, triggerNode?: any): HTMLElement | Element => {\n const attachNode = isFunction(node) ? node(triggerNode) : node;\n if (!attachNode) {\n return document.body;\n }\n if (isString(attachNode)) {\n return document.querySelector(attachNode);\n }\n if (attachNode instanceof HTMLElement) {\n return attachNode;\n }\n return document.body;\n};\n\nexport const getSSRAttach = () => {\n if (process.env.NODE_ENV === 'test-snap') return 'body';\n};\n\n/**\n * 获取滚动容器\n * 因为document不存在scroll等属性, 因此排除document\n * window | HTMLElement\n * @param {ScrollContainerElement} [container='body']\n * @returns {ScrollContainer}\n */\nexport const getScrollContainer = (container: ScrollContainer = 'body'): ScrollContainerElement => {\n if (isString(container)) {\n return document.querySelector(container) as HTMLElement;\n }\n if (isFunction(container)) {\n return container();\n }\n return container;\n};\n\n/**\n * 返回是否window对象\n *\n * @export\n * @param {any} obj\n * @returns\n */\nfunction isWindow(obj: any) {\n return obj && obj === obj.window;\n}\n\ntype ScrollTarget = HTMLElement | Window | Document;\n\n/**\n * 获取滚动距离\n *\n * @export\n * @param {ScrollTarget} target\n * @param {boolean} isLeft true为获取scrollLeft, false为获取scrollTop\n * @returns {number}\n */\nexport function getScroll(target: ScrollTarget, isLeft?: boolean): number {\n // node环境或者target为空\n if (isServer || !target) {\n return 0;\n }\n const method = isLeft ? 'scrollLeft' : 'scrollTop';\n let result = 0;\n if (isWindow(target)) {\n result = (target as Window)[isLeft ? 'pageXOffset' : 'pageYOffset'];\n } else if (target instanceof Document) {\n result = target.documentElement[method];\n } else if (target) {\n result = (target as HTMLElement)[method];\n }\n return result;\n}\ninterface ScrollTopOptions {\n container?: ScrollTarget;\n duration?: number;\n easing?: EasingFunction;\n}\n\ndeclare type ScrollToResult = T | { default: T };\n\nexport function scrollTo(target: number, opt: ScrollTopOptions): Promise {\n const { container = window, duration = 450, easing = easeInOutCubic } = opt;\n const scrollTop = getScroll(container);\n const startTime = Date.now();\n return new Promise((res) => {\n const fnc = () => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n const nextScrollTop = easing(Math.min(time, duration), scrollTop, target, duration);\n if (isWindow(container)) {\n (container as Window).scrollTo(window.pageXOffset, nextScrollTop);\n } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n (container as Document).documentElement.scrollTop = nextScrollTop;\n } else {\n (container as HTMLElement).scrollTop = nextScrollTop;\n }\n if (time < duration) {\n raf(fnc);\n } else {\n // 由于上面步骤设置了scrollTop, 滚动事件可能未触发完毕\n // 此时应该在下一帧再执行res\n raf(res);\n }\n };\n raf(fnc);\n });\n}\n\nfunction containerDom(parent: VNode | Element | Iterable | ArrayLike, child: any): boolean {\n if (parent && child) {\n let pNode = child;\n while (pNode) {\n if (parent === pNode) {\n return true;\n }\n const { parentNode } = pNode;\n pNode = parentNode;\n }\n }\n return false;\n}\nexport const clickOut = (els: VNode | Element | Iterable | ArrayLike, cb: () => void): void => {\n on(document, 'click', (event: { target: Element }) => {\n if (isArray(els)) {\n const isFlag = Array.from(els).every((item) => containerDom(item, event.target) === false);\n return isFlag && cb && cb();\n }\n if (containerDom(els, event.target)) {\n return false;\n }\n return cb && cb();\n });\n};\n\n// 用于判断节点内容是否溢出\nexport const isTextEllipsis = (\n ele: ComponentPublicInstance | Element | ComponentPublicInstance[] | Element[],\n): boolean => {\n const { clientWidth = 0, scrollWidth = 0 } = ele as Element & { clientWidth: number; scrollWidth: number };\n return scrollWidth > clientWidth;\n};\n\n// 将子元素selected滚动到父元素parentEle的可视范围内\nexport const scrollSelectedIntoView = (parentEle: HTMLElement, selected: HTMLElement) => {\n // 服务端不处理\n if (isServer) return;\n // selected不存在或selected父元素不为parentEle则不处理\n if (!selected || selected.offsetParent !== parentEle) {\n parentEle.scrollTop = 0;\n return;\n }\n const selectedTop = selected.offsetTop;\n const selectedBottom = selectedTop + selected.offsetHeight;\n const parentScrollTop = parentEle.scrollTop;\n const parentViewBottom = parentScrollTop + parentEle.clientHeight;\n if (selectedTop < parentScrollTop) {\n // selected元素滚动过了,则将其向下滚动到可视范围顶部\n parentEle.scrollTop = selectedTop;\n } else if (selectedBottom > parentViewBottom) {\n // selected元素未滚动到,则将其向上滚动到可视范围底部\n parentEle.scrollTop = selectedBottom - parentEle.clientHeight;\n }\n};\n\nexport const requestSubmit = (target: HTMLFormElement) => {\n if (!(target instanceof HTMLFormElement)) {\n throw new Error('target must be HTMLFormElement');\n }\n const submitter = document.createElement('input');\n submitter.type = 'submit';\n submitter.hidden = true;\n target.appendChild(submitter);\n submitter.click();\n target.removeChild(submitter);\n};\n\n/**\n * 检查元素是否在父元素视图\n * http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n * @param elm 元素\n * @param parent\n * @returns boolean\n */\nexport function elementInViewport(elm: HTMLElement, parent?: HTMLElement): boolean {\n const rect = elm.getBoundingClientRect();\n if (parent) {\n const parentRect = parent.getBoundingClientRect();\n return (\n rect.top >= parentRect.top &&\n rect.left >= parentRect.left &&\n rect.bottom <= parentRect.bottom &&\n rect.right <= parentRect.right\n );\n }\n return rect.top >= 0 && rect.left >= 0 && rect.bottom + 80 <= window.innerHeight && rect.right <= window.innerWidth;\n}\n\n/**\n * 获取元素某个 css 对应的值\n * @param element 元素\n * @param propName css 名\n * @returns string\n */\nexport function getElmCssPropValue(element: HTMLElement, propName: string): string {\n let propValue = '';\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n propValue = document.defaultView.getComputedStyle(element, null).getPropertyValue(propName);\n }\n\n if (propValue && propValue.toLowerCase) {\n return propValue.toLowerCase();\n }\n\n return propValue;\n}\n\n/**\n * 判断元素是否处在 position fixed 中\n * @param element 元素\n * @returns boolean\n */\nexport function isFixed(element: HTMLElement): boolean {\n const p = element.parentNode as HTMLElement;\n\n if (!p || p.nodeName === 'HTML') {\n return false;\n }\n\n if (getElmCssPropValue(element, 'position') === 'fixed') {\n return true;\n }\n\n return isFixed(p);\n}\n\n/**\n * 获取当前视图滑动的距离\n * @returns { scrollTop: number, scrollLeft: number }\n */\nexport function getWindowScroll(): { scrollTop: number; scrollLeft: number } {\n const { body } = document;\n const docElm = document.documentElement;\n const scrollTop = window.pageYOffset || docElm.scrollTop || body.scrollTop;\n const scrollLeft = window.pageXOffset || docElm.scrollLeft || body.scrollLeft;\n\n return { scrollTop, scrollLeft };\n}\n\n/**\n * 获取当前视图的大小\n * @returns { width: number, height: number }\n */\nexport function getWindowSize(): { width: number; height: number } {\n if (window.innerWidth !== undefined) {\n return { width: window.innerWidth, height: window.innerHeight };\n }\n const doc = document.documentElement;\n return { width: doc.clientWidth, height: doc.clientHeight };\n}\n","import { isFunction, isObject } from 'lodash-es';\n\nconst { hasOwnProperty } = Object.prototype;\n\nexport const hasOwn = (val: T, key: string | symbol | number): key is keyof T => hasOwnProperty.call(val, key);\nexport const getPropertyValFromObj = (\n val: T,\n key: string | symbol | number,\n): T[keyof T] | undefined => (hasOwn(val, key) ? val[key] : undefined);\n\nconst objectToString: typeof Object.prototype.toString = Object.prototype.toString;\nconst toTypeString = (value: unknown): string => objectToString.call(value);\nexport const isPlainObject = (val: unknown): val is T => toTypeString(val) === '[object Object]';\nexport const isPromise = (val: unknown): val is Promise => (isObject(val) || isFunction(val))\n && isFunction((val as any).then)\n && isFunction((val as any).catch);\n","import { h, ComponentPublicInstance, VNode, isVNode, Fragment } from 'vue';\nimport { isEmpty } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport { camelCase } from 'lodash-es';\nimport { kebabCase } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nexport interface JSXRenderContext {\n defaultNode?: VNode | string;\n params?: Record;\n slotFirst?: boolean;\n // 是否不打印 LOG\n silent?: boolean;\n}\n\nexport type OptionsType = VNode | JSXRenderContext | string;\n\nexport function getDefaultNode(options?: OptionsType) {\n let defaultNode;\n if (isObject(options) && 'defaultNode' in options) {\n defaultNode = options.defaultNode;\n } else if (isVNode(options) || isString(options)) {\n defaultNode = options;\n }\n\n return defaultNode;\n}\n\nexport function getChildren(content: VNode[]) {\n const childList: VNode[] = [];\n const innerGetChildren = (content: VNode[]) => {\n if (!isArray(content)) return;\n content.forEach((item: VNode) => {\n if (item.children && isArray(item.children)) {\n if (item.type !== Fragment) return;\n innerGetChildren(item.children as VNode[]);\n } else {\n childList.push(item);\n }\n });\n return childList;\n };\n\n return innerGetChildren(content);\n}\n\nexport function getParams(options?: OptionsType) {\n return isObject(options) && 'params' in options ? options.params : {};\n}\n\nexport function getSlotFirst(options?: OptionsType) {\n return isObject(options) && 'slotFirst' in options ? options.slotFirst : false;\n}\n\n// 同时支持驼峰命名和中划线命名的插槽,示例:value-display 和 valueDisplay\nexport function handleSlots(instance: ComponentPublicInstance, params: Record, name: string) {\n // 检查是否存在 驼峰命名 的插槽\n let node = instance.$slots[camelCase(name)]?.(params);\n if (node) return node;\n // 检查是否存在 中划线命名 的插槽\n node = instance.$slots[kebabCase(name)]?.(params);\n if (node) return node;\n return null;\n}\n\n/**\n * 通过JSX的方式渲染 TNode,props 和 插槽同时处理,也能处理默认值为 true 则渲染默认节点的情况\n * @param vm 组件实例\n * @param name 插槽和属性名称\n * @param options 值可能为默认渲染节点,也可能是默认渲染节点和参数的集合\n * @example renderTNodeJSX(this, 'closeBtn') 优先级 props function 大于 插槽\n * @example renderTNodeJSX(this, 'closeBtn', )。 当属性值为 true 时则渲染 \n * @example renderTNodeJSX(this, 'closeBtn', { defaultNode: , params })。 params 为渲染节点时所需的参数\n */\nexport const renderTNodeJSX = (instance: ComponentPublicInstance, name: string, options?: OptionsType) => {\n // assemble params && defaultNode\n const params = getParams(options);\n const defaultNode = getDefaultNode(options);\n\n // 处理 props 类型的Node\n let propsNode;\n if (name in instance) {\n propsNode = instance[name];\n }\n\n // 是否静默日志\n // const isSilent = Boolean(isObject(options) && 'silent' in options && options.silent);\n // // 同名插槽和属性同时存在,则提醒用户只需要选择一种方式即可\n // if (instance.$slots[name] && propsNode && propsNode !== true && !isSilent) {\n // console.warn(`Both $slots.${name} and $props.${name} exist, $props.${name} is preferred`);\n // }\n\n // propsNode 为 false 不渲染\n if (propsNode === false || propsNode === null) return;\n if (propsNode === true && defaultNode) {\n return handleSlots(instance, params, name) || defaultNode;\n }\n\n // 同名 props 和 slot 优先处理 props\n if (isFunction(propsNode)) return propsNode(h, params);\n const isPropsEmpty = [undefined, params, ''].includes(propsNode);\n // Props 为空,但插槽存在\n if (isPropsEmpty && (instance.$slots[camelCase(name)] || instance.$slots[kebabCase(name)])) {\n return handleSlots(instance, params, name);\n }\n return propsNode;\n};\n\n/**\n * 通过JSX的方式渲染 TNode,props 和 插槽同时处理。与 renderTNodeJSX 区别在于 属性值为 undefined 时会渲染默认节点\n * @param vm 组件实例\n * @param name 插槽和属性名称\n * @example renderTNodeJSX(this, 'closeBtn')\n * @example renderTNodeJSX(this, 'closeBtn', )。this.closeBtn 为空时,则兜底渲染 \n * @example renderTNodeJSX(this, 'closeBtn', { defaultNode: , params }) 。params 为渲染节点时所需的参数\n */\nexport const renderTNodeJSXDefault = (vm: ComponentPublicInstance, name: string, options?: OptionsType) => {\n const defaultNode = getDefaultNode(options);\n return renderTNodeJSX(vm, name, options) || defaultNode;\n};\n\n/**\n * 用于处理相同名称的 TNode 渲染\n * @param vm 组件实例\n * @param name1 第一个名称,优先级高于 name2\n * @param name2 第二个名称\n * @param defaultNode 默认渲染内容:当 name1 和 name2 都为空时会启动默认内容渲染\n * @example renderContent(this, 'default', 'content')\n * @example renderContent(this, 'default', 'content', '我是默认内容')\n * @example renderContent(this, 'default', 'content', { defaultNode: '我是默认内容', params })\n */\nexport const renderContent = (vm: ComponentPublicInstance, name1: string, name2: string, options?: OptionsType) => {\n const params = getParams(options);\n const defaultNode = getDefaultNode(options);\n\n const toParams = params ? { params } : undefined;\n\n const node1 = renderTNodeJSX(vm, name1, toParams);\n const node2 = renderTNodeJSX(vm, name2, toParams);\n\n const res = isEmpty(node1) ? node2 : node1;\n return isEmpty(res) ? defaultNode : res;\n};\n","import { h, getCurrentInstance, ComponentInternalInstance, VNode } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { camelCase } from 'lodash-es';\nimport { kebabCase } from 'lodash-es';\nimport { getDefaultNode, getParams, OptionsType, JSXRenderContext, getSlotFirst } from '../utils/render-tnode';\nimport { hasOwn } from '@tdesign/common-js/utils/general';\n\n// 兼容处理插槽名称,同时支持驼峰命名和中划线命名,示例:value-display 和 valueDisplay\nfunction handleSlots(instance: ComponentInternalInstance, name: string, params: Record) {\n // 2023-08 new Function 触发部分使用场景安全策略问题(Chrome插件/eletron等)\n // // 每个 slots 需要单独的 h 函数 否则直接assign会重复把不同 slots 的 params 都注入\n // const finalParams = new Function('return ' + h.toString())();\n // if (params) {\n // Object.assign(finalParams, params);\n // }\n\n // 检查是否存在 驼峰命名 的插槽(过滤注释节点)\n let node = instance.slots[camelCase(name)]?.(params);\n if (node && node.filter((t) => t.type.toString() !== 'Symbol(v-cmt)').length) return node;\n // 检查是否存在 中划线命名 的插槽\n node = instance.slots[kebabCase(name)]?.(params);\n if (node && node.filter((t) => t.type.toString() !== 'Symbol(v-cmt)').length) return node;\n return null;\n}\n\n/**\n * 是否为空节点,需要过滤掉注释节点。注释节点也会被认为是空节点\n */\nfunction isEmptyNode(node: any) {\n if ([undefined, null, ''].includes(node)) return true;\n const innerNodes = node instanceof Array ? node : [node];\n const r = innerNodes.filter((node) => node?.type?.toString() !== 'Symbol(Comment)');\n return !r.length;\n}\n\n// TODO 可以把这里移动到 utils 中\n/**\n * 检查用户是否有主动传 prop\n * @param instance 组件实例\n * @param propName prop 名称\n * @returns boolean\n */\nfunction isPropExplicitlySet(instance: ComponentInternalInstance, propName: string) {\n const vProps = instance?.vnode.props || {};\n return hasOwn(vProps, camelCase(propName)) || hasOwn(vProps, kebabCase(propName));\n}\n\n/**\n/**\n * 通过 JSX 的方式渲染 TNode,props 和 插槽同时处理,也能处理默认值为 true 则渲染默认节点的情况\n * 优先级:用户注入的 props 值 > slot > 默认 props 值\n * 如果 props 值为 true ,则使用插槽渲染。如果也没有插槽的情况下,则使用 defaultNode 渲染\n * @example const renderTNodeJSX = useTNodeJSX()\n * @return () => {}\n * @param name 插槽和属性名称\n * @param options 值可能为默认渲染节点,也可能是默认渲染节点和参数的集合\n * @example renderTNodeJSX('closeBtn') 优先级 props function 大于 插槽\n * @example renderTNodeJSX('closeBtn', )。 当属性值为 true 时则渲染 \n * @example renderTNodeJSX('closeBtn', { defaultNode: , params })。 params 为渲染节点时所需的参数\n */\nexport const useTNodeJSX = () => {\n const instance = getCurrentInstance();\n return function (name: string, options?: OptionsType) {\n // 渲染节点时所需的参数\n const renderParams = getParams(options);\n // 默认渲染节点\n // TODO 这里需要讨论,这里的默认节点规则是什么呢? pp test:unit image-viewer pp test:unit Collapse\n const defaultNode = getDefaultNode(options);\n // 是否显示设置 slot 优先\n const isSlotFirst = getSlotFirst(options);\n // 插槽\n const renderSlot = instance.slots[camelCase(name)] || instance.slots[kebabCase(name)];\n\n if (isSlotFirst && renderSlot) {\n // 1. 如果显示设置了 slot 优先,并且存在 slot,那么优先使用 slot\n return handleSlots(instance, name, renderParams);\n } else {\n // 2. 否者按照 用户主动传入的 props 值 > slot > 默认 props 值\n // 2.1 处理主动传入的 prop\n if (isPropExplicitlySet(instance, name)) {\n // 2.1.1 如果有传,那么优先使用 prop 的值\n const propsNode = instance.props[camelCase(name)] || instance.props[kebabCase(name)];\n // 2.1.2 如果 prop 的值为 false 或者 null,那么直接不渲染\n if (propsNode === false || propsNode === null) return;\n // 2.1.3 如果 prop 的值为 true,那么使用 slot 渲染\n if (propsNode === true) {\n return handleSlots(instance, name, renderParams) || defaultNode;\n }\n // 2.1.4 如果 prop 的值为函数,那么执行函数\n if (isFunction(propsNode)) return propsNode(h, renderParams);\n // 2.1.5 如果 prop 的值为 undefined、'',那么使用插槽渲染\n const isPropsEmpty = [undefined, ''].includes(propsNode as any);\n if (isPropsEmpty && renderSlot) {\n return handleSlots(instance, name, renderParams);\n }\n // 2.1.6 如果 prop 的值为其他值,那么直接返回\n return propsNode;\n }\n // 2.2 如果未主动传入 prop,那么渲染 slot,当然前提是存在 slot\n if (renderSlot) {\n return handleSlots(instance, name, renderParams);\n }\n // 2.3 如果未主动传入 prop,也没有 slot,那么就走 prop\n const propsNode = instance.props[camelCase(name)] || instance.props[kebabCase(name)];\n if (propsNode === false || propsNode === null) return;\n if (propsNode === true) {\n return defaultNode;\n }\n if (isFunction(propsNode)) return propsNode(h, renderParams);\n return propsNode;\n }\n };\n};\n\n/**\n * 在setup中,通过JSX的方式 TNode,props 和 插槽同时处理。与 renderTNodeJSX 区别在于属性值为 undefined 时会渲染默认节点\n * @example const renderTNodeJSXDefault = useTNodeDefault()\n * @return () => {}\n * @param name 插槽和属性名称\n * @example renderTNodeJSXDefault('closeBtn')\n * @example renderTNodeJSXDefault('closeBtn', ) closeBtn 为空时,则兜底渲染 \n * @example renderTNodeJSXDefault('closeBtn', { defaultNode: , params }) 。params 为渲染节点时所需的参数\n */\nexport const useTNodeDefault = () => {\n const renderTNodeJSX = useTNodeJSX();\n return function (name: string, options?: VNode | JSXRenderContext) {\n const defaultNode = getDefaultNode(options);\n return renderTNodeJSX(name, options) || defaultNode;\n };\n};\n\n/**\n * 在setup中,用于处理相同名称的 TNode 渲染\n * @example const renderContent = useContent()\n * @return () => {}\n * @param name1 第一个名称,优先级高于 name2\n * @param name2 第二个名称\n * @param defaultNode 默认渲染内容:当 name1 和 name2 都为空时会启动默认内容渲染\n * @example renderContent('default', 'content')\n * @example renderContent('default', 'content', '我是默认内容')\n * @example renderContent('default', 'content', { defaultNode: '我是默认内容', params })\n */\nexport const useContent = () => {\n const renderTNodeJSX = useTNodeJSX();\n return function (name1: string, name2: string, options?: VNode | JSXRenderContext) {\n // assemble params && defaultNode\n const params = getParams(options);\n const defaultNode = getDefaultNode(options);\n\n const toParams = params ? { params } : undefined;\n\n const node1 = renderTNodeJSX(name1, toParams);\n const node2 = renderTNodeJSX(name2, toParams);\n\n const res = isEmptyNode(node1) ? node2 : node1;\n return isEmptyNode(res) ? defaultNode : res;\n };\n};\n","import { getSSRAttach, getAttach } from '../utils/dom';\nimport { computed, Ref, onMounted, ref, watch } from 'vue';\nimport { AttachNode } from '../common';\nimport { isFunction } from 'lodash-es';\n\n/**\n * @description 返回挂载的节点, 用于teleport\n * @param attach 既可以是一个函数, 也可以是一个ref\n * @param triggerNode 既可以是一个函数, 也可以是一个ref\n */\nconst useTeleport = (\n attach: (() => AttachNode) | Ref,\n triggerNode?: (() => any) | Ref,\n): Ref => {\n // 如果是函数, 则使用computed包裹 否则直接使用ref\n const to = isFunction(attach) ? computed(attach) : ref(attach);\n const innerTriggerNode = isFunction(triggerNode) ? computed(triggerNode) : ref(triggerNode);\n\n const element = ref();\n\n const getElement = () => {\n element.value = getSSRAttach() || getAttach(to.value, innerTriggerNode.value);\n };\n\n onMounted(() => getElement());\n\n watch([to, innerTriggerNode], () => getElement());\n\n return element;\n};\n\nexport default useTeleport;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * updated at 2021-12-12 19:17:30\n * */\n\nimport { TdLoadingProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 挂载元素,默认挂载到组件本身所在的位置。仅全屏加载模式下有效。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n attach: {\n type: [String, Function] as PropType,\n default: '',\n },\n /** 子元素 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 子元素,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 延迟显示加载效果的时间,用于防止请求速度过快引起的加载闪烁,单位:毫秒 */\n delay: {\n type: Number,\n default: 0,\n },\n /** 是否显示为全屏加载 */\n fullscreen: Boolean,\n /** 加载指示符,值为 true 显示默认指示符,值为 false 则不显示,也可以自定义指示符 */\n indicator: {\n type: [Boolean, Function] as PropType,\n default: true,\n },\n /** 是否继承父元素颜色 */\n inheritColor: Boolean,\n /** 是否处于加载状态 */\n loading: {\n type: Boolean,\n default: true,\n },\n /** 防止滚动穿透,全屏加载模式有效 */\n preventScrollThrough: {\n type: Boolean,\n default: true,\n },\n /** 是否需要遮罩层,遮罩层对包裹元素才有效 */\n showOverlay: {\n type: Boolean,\n default: true,\n },\n /** 尺寸,示例:small/medium/large/12px/56px/0.3em */\n size: {\n type: String,\n default: 'medium',\n },\n /** 加载提示文案 */\n text: {\n type: [String, Function] as PropType,\n },\n /** 消息通知层级,样式默认为 3500 */\n zIndex: {\n type: Number,\n },\n};\n","import { defineComponent, ref, computed, watch, onMounted, toRefs, CSSProperties, Teleport } from 'vue';\nimport GradientIcon from './icon/gradient';\nimport { addClass, removeClass } from '../utils/dom';\nimport { getPropertyValFromObj } from '@tdesign/common-js/utils/general';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport useTeleport from '../hooks/useTeleport';\nimport props from './props';\n\nconst useComponentClassName = () => {\n return {\n name: usePrefixClass('loading'),\n centerClass: usePrefixClass('loading--center'),\n fullscreenClass: usePrefixClass('loading__fullscreen'),\n lockClass: usePrefixClass('loading--lock'),\n overlayClass: usePrefixClass('loading__overlay'),\n relativeClass: usePrefixClass('loading__parent'),\n fullClass: usePrefixClass('loading--full'),\n inheritColorClass: usePrefixClass('loading--inherit-color'),\n };\n};\n\nexport default defineComponent({\n name: 'TLoading',\n inheritAttrs: false,\n props,\n setup(props, { slots, attrs }) {\n const delayShowLoading = ref(false);\n\n const { name, centerClass, fullscreenClass, lockClass, overlayClass, relativeClass, fullClass, inheritColorClass } =\n useComponentClassName();\n\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { SIZE } = useCommonClassName();\n\n const countDelay = () => {\n delayShowLoading.value = false;\n const timer = setTimeout(() => {\n delayShowLoading.value = true;\n clearTimeout(timer);\n }, props.delay);\n };\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n // 延时计时是否完成。用于控制延时计时结束前不能显示加载态\n const delayCounted = computed(() => Boolean(!props.delay || (props.delay && delayShowLoading.value)));\n\n // loading style\n const styles = computed(() => {\n const styles: CSSProperties = {};\n if (props.zIndex !== undefined) {\n styles.zIndex = props.zIndex;\n }\n if (!['small', 'medium', 'large'].includes(props.size)) {\n styles['font-size'] = props.size;\n }\n return styles;\n });\n\n const hasContent = computed(() => Boolean(props.default || slots.default || props.content || slots.content));\n const lockFullscreen = computed(() => props.preventScrollThrough && props.fullscreen);\n const showText = computed(() => Boolean(props.text || slots.text));\n const showWrapLoading = computed(() => hasContent.value && props.loading && delayCounted.value);\n const showFullScreenLoading = computed(() => props.fullscreen && props.loading && delayCounted.value);\n const showAttachedLoading = computed(() => props.attach && props.loading && delayCounted.value);\n const classes = computed(() => {\n const baseClasses = [\n centerClass.value,\n getPropertyValFromObj(SIZE.value, props.size),\n { [inheritColorClass.value]: props.inheritColor },\n ];\n const fullScreenClasses = [name.value, fullscreenClass.value, centerClass.value, overlayClass.value];\n\n return {\n baseClasses,\n attachClasses: baseClasses.concat([name.value, fullClass.value, { [overlayClass.value]: props.showOverlay }]),\n withContentClasses: baseClasses.concat([\n name.value,\n fullClass.value,\n {\n [overlayClass.value]: props.showOverlay,\n },\n ]),\n fullScreenClasses,\n normalClasses: baseClasses.concat([name.value]),\n };\n });\n\n const { loading } = toRefs(props);\n\n watch([loading], ([isLoading]) => {\n if (isLoading) {\n countDelay();\n lockFullscreen.value && addClass(document.body, lockClass.value);\n } else {\n lockFullscreen.value && removeClass(document.body, lockClass.value);\n }\n });\n\n onMounted(() => {\n props.delay && countDelay();\n });\n\n return () => {\n const { fullScreenClasses, baseClasses, withContentClasses, attachClasses, normalClasses } = classes.value;\n\n const defaultIndicator = ;\n const indicator = loading.value && renderTNodeJSX('indicator', defaultIndicator);\n const text = showText.value &&
{renderTNodeJSX('text')}
;\n\n // full screen loading\n if (props.fullscreen) {\n if (!showFullScreenLoading.value || !props.loading) return null;\n return (\n \n
\n
\n {indicator}\n {text}\n
\n
\n
\n );\n }\n\n // Loading is wrapping a HTMLElement.\n if (hasContent.value) {\n return (\n
\n {renderContent('default', 'content')}\n {showWrapLoading.value && (\n
\n {indicator}\n {text}\n
\n )}\n
\n );\n }\n\n // transfer parent node\n if (props.attach) {\n if (!showAttachedLoading.value || !loading.value) return null;\n return (\n \n
\n {indicator}\n {text}\n
\n
\n );\n }\n\n // Normal Loading without overlay or content\n return loading.value ? (\n
\n {indicator}\n {text}\n
\n ) : null;\n };\n },\n});\n","import { App, Plugin, createApp, defineComponent, h, reactive } from 'vue';\nimport { merge } from 'lodash-es';\nimport LoadingComponent from './loading';\nimport { getAttach, removeClass, addClass } from '../utils/dom';\nimport { TdLoadingProps, LoadingInstance, LoadingMethod } from './type';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nlet fullScreenLoadingInstance: LoadingInstance = null;\n\nfunction mergeDefaultProps(props: TdLoadingProps): TdLoadingProps {\n const options: TdLoadingProps = merge(\n {\n fullscreen: false,\n attach: 'body',\n loading: true,\n preventScrollThrough: true,\n },\n props,\n );\n\n return options;\n}\n\nfunction createLoading(props: TdLoadingProps): LoadingInstance {\n const mergedProps = mergeDefaultProps(props);\n\n if (mergedProps.fullscreen && fullScreenLoadingInstance) {\n return fullScreenLoadingInstance;\n }\n\n const component = defineComponent({\n setup() {\n const loadingOptions = reactive(mergedProps);\n return {\n loadingOptions,\n };\n },\n render() {\n return h(LoadingComponent, {\n ...this.loadingOptions,\n });\n },\n });\n\n const attach = getAttach(mergedProps.fullscreen ? 'body' : mergedProps.attach);\n\n const app = createApp(component);\n const loading = app.mount(document.createElement('div'));\n const parentRelativeClass = usePrefixClass('loading__parent--relative').value;\n const lockClass = usePrefixClass('loading--lock');\n const lockFullscreen = mergedProps.preventScrollThrough && mergedProps.fullscreen;\n\n if (lockFullscreen) {\n addClass(document.body, lockClass.value);\n }\n\n if (attach) {\n addClass(attach, parentRelativeClass);\n } else {\n console.error('attach is not exist');\n }\n\n const loadingInstance: LoadingInstance = {\n hide: () => {\n loading.loading = false;\n removeClass(attach, parentRelativeClass);\n removeClass(document.body, lockClass.value);\n app.unmount();\n },\n };\n return loadingInstance;\n}\n\nfunction produceLoading(props: boolean | TdLoadingProps): LoadingInstance {\n // 全屏加载\n if (props === true) {\n fullScreenLoadingInstance = createLoading({\n fullscreen: true,\n loading: true,\n attach: 'body',\n preventScrollThrough: true,\n });\n return fullScreenLoadingInstance;\n }\n\n if (props === false) {\n // 销毁全屏实例\n fullScreenLoadingInstance?.hide();\n fullScreenLoadingInstance = null;\n return;\n }\n return createLoading(props);\n}\n\nexport type LoadingPluginType = Plugin & LoadingMethod;\n\nexport const LoadingPlugin: LoadingPluginType = produceLoading as LoadingPluginType;\n\nLoadingPlugin.install = (app: App) => {\n // eslint-disable-next-line no-param-reassign\n app.config.globalProperties.$loading = produceLoading;\n};\n\nexport default LoadingPlugin;\n","import type { Directive, DirectiveBinding } from 'vue';\nimport { mapKeys, isObject } from 'lodash-es';\nimport { isEqual } from 'lodash-es';\nimport { TdLoadingProps } from './type';\nimport produceLoading from './plugin';\n\nconst INSTANCE_KEY = Symbol('TdLoading');\n\nconst createInstance = (el: HTMLElement, binding: DirectiveBinding) => {\n const { fullscreen, inheritColor } = binding.modifiers;\n const options: TdLoadingProps = {\n attach: () => el,\n fullscreen: fullscreen ?? false,\n inheritColor: inheritColor ?? false,\n loading: binding.value,\n };\n\n if (isObject(binding.value)) {\n mapKeys(binding.value, (value, key: keyof typeof options) => {\n options[key] = value;\n });\n }\n\n // @ts-ignore\n // TODO: unique symbol' can't be used to index type 'HTMLElement'\n el[INSTANCE_KEY] = {\n options,\n instance: produceLoading(options),\n };\n};\n\nexport const vLoading: Directive = {\n mounted(el, binding) {\n if (binding.value) {\n createInstance(el, binding);\n }\n },\n updated(el, binding) {\n const instance = el[INSTANCE_KEY];\n const { value, oldValue } = binding;\n if (!isEqual(value, oldValue)) {\n const loading = value?.loading ?? value;\n if (loading) {\n createInstance(el, binding);\n } else {\n instance?.instance.hide();\n }\n }\n },\n unmounted(el) {\n el[INSTANCE_KEY]?.instance.hide();\n },\n};\n\nexport default vLoading;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nexport default mapKeys;\n","import { App, Plugin, Component, Directive } from 'vue';\n\nfunction withInstall(\n comp: T,\n alias?: string,\n directive?: { name: string; comp: Directive },\n): T & Plugin {\n const componentPlugin = comp as T & Component & Plugin;\n\n componentPlugin.install = (app: App, name?: string) => {\n app.component(alias || name || componentPlugin.name, comp);\n directive && app.directive(directive.name, directive.comp);\n };\n\n return componentPlugin as T & Plugin;\n}\n\nexport default withInstall;\n","import { vLoading } from './directive';\nimport _Loading from './loading';\nimport withInstall from '../utils/withInstall';\nimport { TdLoadingProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport * from './plugin';\n\nexport type LoadingProps = TdLoadingProps;\n\nexport { default as LoadingPlugin } from './plugin';\nexport { default as LoadingDirective } from './directive';\n\nexport const Loading = withInstall(_Loading, _Loading.name, { name: 'loading', comp: vLoading });\nexport default Loading;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdButtonProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否为块级元素 */\n block: Boolean,\n /** 按钮内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 按钮内容 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 禁用状态。优先级:Button.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 原生的form属性,支持用于通过form属性对于id的form的表单事件 */\n form: {\n type: String,\n default: undefined,\n },\n /** 是否为幽灵按钮(镂空按钮) */\n ghost: Boolean,\n /** 跳转地址。href 存在时,按钮标签默认使用 `` 渲染;如果指定了 `tag` 则使用指定的标签渲染 */\n href: {\n type: String,\n default: '',\n },\n /** 按钮内部图标,可完全自定义 */\n icon: {\n type: Function as PropType,\n },\n /** 是否显示为加载状态 */\n loading: Boolean,\n /** 透传加载组件(Loading)全部属性 */\n loadingProps: {\n type: Object as PropType,\n },\n /** 按钮形状,有 4 种:长方形、正方形、圆角长方形、圆形 */\n shape: {\n type: String as PropType,\n default: 'rectangle' as TdButtonProps['shape'],\n validator(val: TdButtonProps['shape']): boolean {\n if (!val) return true;\n return ['rectangle', 'square', 'round', 'circle'].includes(val);\n },\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdButtonProps['size'],\n validator(val: TdButtonProps['size']): boolean {\n if (!val) return true;\n return ['extra-small', 'small', 'medium', 'large'].includes(val);\n },\n },\n /** 右侧内容,可用于定义右侧图标 */\n suffix: {\n type: Function as PropType,\n },\n /** 渲染按钮的 HTML 标签,默认使用标签 `
\n );\n };\n\n return () => {\n return props.theme === 'card' ? renderCardItem() : renderNormalItem();\n };\n },\n});\n","import { defineComponent, PropType, computed, VNode, nextTick, ref, watch, onMounted } from 'vue';\nimport tabProps from './props';\n\n// hooks\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useResizeObserver from '../hooks/useResizeObserver';\nimport { debounce } from 'lodash-es';\n\nexport default defineComponent({\n props: {\n navs: {\n type: Array as PropType,\n },\n placement: tabProps.placement,\n value: tabProps.value,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('tabs');\n const classPrefix = usePrefixClass();\n const barRef = ref();\n const navBarClass = computed(() => {\n return [`${COMPONENT_NAME.value}__bar`, `${classPrefix.value}-is-${props.placement}`];\n });\n const navBarStyle = ref(null);\n const getStyle = () => {\n const isVertical = ['left', 'right'].includes(props.placement.toLowerCase());\n const [sizePropName, offsetPropName] = isVertical ? ['height', 'top'] : ['width', 'left'];\n let offset = 0;\n let i = 0;\n for (; i < props.navs.length; i++) {\n if (props.navs[i].props.value === props.value) {\n break;\n }\n if (props.navs[i]?.el) {\n const sizeWithUnit = getComputedStyle(props.navs[i].el as Element)[sizePropName as 'width' | 'left'];\n const size = parseFloat(sizeWithUnit);\n offset += size;\n }\n }\n if (!props.navs[i]) return {};\n return {\n [offsetPropName]: `${offset}px`,\n [sizePropName]: props.navs[i].el\n ? getComputedStyle(props.navs[i].el as Element)[sizePropName as 'width' | 'left']\n : '0px',\n };\n };\n const update = () => (navBarStyle.value = getStyle());\n\n onMounted(() => {\n nextTick(() => {\n update();\n });\n });\n\n watch([() => props.navs, () => props.value, () => props.placement], () => {\n nextTick(() => {\n update();\n });\n });\n\n useResizeObserver(\n barRef,\n debounce(() => {\n update();\n // 数值大了动画不流畅,小了会频繁触发,所以在合适区间里选择一个值\n }, 35),\n );\n return () => {\n return
;\n };\n },\n});\n","import { onUnmounted } from 'vue';\n\nconst traversalTabNavs = (tabNavs: HTMLCollection, fn: { (itemNode: any): void; (tabNav: HTMLDivElement): void }) => {\n for (const itemNode of tabNavs) {\n if (itemNode.getAttribute('draggable')) {\n fn(itemNode);\n }\n }\n};\n\nconst handleTarget = (target: EventTarget, tabNavs: HTMLCollection): any => {\n let resultTarget;\n traversalTabNavs(tabNavs, (itemNode) => {\n if (itemNode.contains(target)) {\n resultTarget = itemNode;\n }\n });\n return resultTarget;\n};\n\nexport default function useDragSort(props: any) {\n let navsWrap: HTMLDivElement = null;\n\n // 获取当前正在拖动的tabNav节点\n let dragged: HTMLDivElement;\n const enterTargets: HTMLDivElement[] = [];\n\n const dragstart = (event: DragEvent) => {\n const target = event.target as HTMLDivElement;\n // const { target } = event;\n // 保存拖动元素的引用(ref.)\n dragged = target;\n // 使其半透明\n target.style.opacity = '0.5';\n };\n const dragend = (event: DragEvent) => {\n // 重置透明度\n (event.target as HTMLDivElement).style.opacity = '';\n };\n /* 放置目标元素时触发事件 */\n const dragover = (event: DragEvent) => {\n // 阻止默认动作以启用drop\n event.preventDefault();\n };\n // 当可拖动的元素进入可放置的目标时\n const dragenter = (event: DragEvent) => {\n // 高亮目标节点\n const target = handleTarget(event.target, navsWrap.children);\n if (target && target !== dragged && target.draggable) {\n target.firstChild.style.outline = '1px dashed #0052d9';\n // 进入的节点全部记录下来\n if (!enterTargets.includes(target)) {\n enterTargets.push(target);\n }\n }\n };\n // 当拖动元素离开可放置目标节点\n const dragleave = (event: DragEvent) => {\n const target = event.target as HTMLDivElement;\n // 重置其边框\n // const { target } = event;\n for (const enterTarget of enterTargets) {\n // 目标不在需要放入的节点内,则重置边框\n if (!enterTarget.contains(target)) {\n // 记录过的节点全部重置边框\n (enterTarget.firstChild as HTMLDivElement).style.outline = 'none';\n }\n }\n };\n const drop = (event: DragEvent) => {\n // 阻止默认动作(如打开一些元素的链接)\n event.preventDefault();\n\n traversalTabNavs(navsWrap.children, (tabNav) => {\n tabNav.firstChild.style.outline = 'none';\n });\n // 将拖动的元素到所选择的放置目标节点中\n let target = handleTarget(event.target, navsWrap.children);\n if (target && target.parentNode !== dragged && target.draggable) {\n // 获取拖拽元素index\n const dragIndex = [].indexOf.call(navsWrap.children, dragged);\n // 获取放入元素index\n const targetIndex = [].indexOf.call(navsWrap.children, target);\n if (targetIndex > dragIndex) {\n target = navsWrap.children[targetIndex + 1];\n }\n\n // 当props.theme === \"normal\" 会多出一个指示条为第一个dom节点,所以需要减1\n const currentIndex = props.theme === 'card' ? dragIndex : dragIndex - 1;\n const endIndex = props.theme === 'card' ? targetIndex : targetIndex - 1;\n props.onDragSort?.({\n currentIndex,\n current: props.panels[currentIndex].value,\n targetIndex: endIndex,\n target: props.panels[endIndex].value,\n });\n }\n };\n function setNavsWrap(val: HTMLDivElement) {\n navsWrap = val;\n navsWrap.addEventListener('dragstart', dragstart, false);\n navsWrap.addEventListener('dragend', dragend, false);\n navsWrap.addEventListener('dragover', dragover, false);\n navsWrap.addEventListener('dragenter', dragenter, false);\n document.addEventListener('dragleave', dragleave, false);\n document.addEventListener('mousemove', dragleave, false);\n navsWrap.addEventListener('drop', drop, false);\n }\n\n onUnmounted(() => {\n navsWrap.removeEventListener('dragstart', dragstart);\n navsWrap.removeEventListener('dragend', dragend);\n navsWrap.removeEventListener('dragover', dragover);\n navsWrap.removeEventListener('dragenter', dragenter);\n document.removeEventListener('dragleave', dragleave);\n document.removeEventListener('mousemove', dragleave);\n navsWrap.removeEventListener('drop', drop);\n });\n return { setNavsWrap };\n}\n","import { h, defineComponent, Transition, ref, computed, watch, onMounted, nextTick } from 'vue';\nimport { debounce } from 'lodash-es';\nimport {\n ChevronLeftIcon as TdChevronLeftIcon,\n ChevronRightIcon as TdChevronRightIcon,\n AddIcon as TdAddIcon,\n} from 'tdesign-icons-vue-next';\nimport { TdTabsProps } from './type';\nimport tabProps from './props';\nimport { calcMaxOffset, calcValidOffset, calculateOffset, calcPrevOrNextOffset } from '@tdesign/common-js/tabs/base';\n\n// 子组件\nimport TTabPanel from './tab-panel';\nimport TTabNavItem from './tab-nav-item';\nimport TTabNavBar from './tab-nav-bar';\n\n// hooks\nimport { useResize } from '../hooks/useListener';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport useDragSort from '../hooks/useDragSort';\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TTabNav',\n resizeObserver: null,\n props: {\n theme: tabProps.theme,\n panels: {\n type: Array as { new (): Array> },\n default: (): Array> => [] as Array>,\n },\n action: Array,\n value: tabProps.value,\n placement: tabProps.placement,\n scrollPosition: tabProps.scrollPosition,\n size: tabProps.size,\n disabled: tabProps.disabled,\n addable: tabProps.addable,\n onChange: tabProps.onChange,\n onAdd: tabProps.onAdd,\n onRemove: tabProps.onRemove,\n dragSort: tabProps.dragSort,\n onDragSort: tabProps.onDragSort,\n },\n setup(props) {\n const componentName = usePrefixClass('tabs');\n const { ChevronLeftIcon, ChevronRightIcon, AddIcon } = useGlobalIcon({\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n AddIcon: TdAddIcon,\n });\n const classPrefix = usePrefixClass();\n\n const { SIZE } = useCommonClassName();\n\n const scrollLeft = ref(0);\n\n // refs\n const navsContainerRef = ref();\n const navsWrapRef = ref();\n const leftOperationsRef = ref();\n const rightOperationsRef = ref();\n const toRightBtnRef = ref();\n const activeTabRef = ref();\n const maxScrollLeft = ref(0);\n\n const getRefs = () => ({\n navsContainer: navsContainerRef.value,\n navsWrap: navsWrapRef.value,\n leftOperations: leftOperationsRef.value,\n rightOperations: rightOperationsRef.value,\n toRightBtn: toRightBtnRef.value,\n activeTab: activeTabRef.value,\n });\n\n // left right位置 选项卡的位置是在左右侧垂直方向铺开的\n const isVerticalPlacement = computed(() => ['left', 'right'].includes(props.placement.toLowerCase()));\n\n // 展示操作按钮\n const canToLeft = computed(() => scrollLeft.value > 1);\n const canToRight = computed(() => scrollLeft.value < maxScrollLeft.value - 1);\n\n // style\n const wrapTransformStyle = computed(() => {\n if (isVerticalPlacement.value) return {};\n return {\n transform: `translate3d(${-scrollLeft.value}px, 0, 0)`,\n };\n });\n const navsContainerStyle = computed(() => {\n return props.addable ? { 'min-height': '48px' } : null;\n });\n\n // class\n const iconBaseClass = computed(() => {\n return {\n [`${componentName.value}__btn`]: true,\n [SIZE.value.medium]: props.size === 'medium',\n [SIZE.value.large]: props.size === 'large',\n };\n });\n const leftIconClass = computed(() => {\n return {\n [`${componentName.value}__btn--left`]: true,\n ...iconBaseClass.value,\n };\n });\n const rightIconClass = computed(() => {\n return {\n [`${componentName.value}__btn--right`]: true,\n ...iconBaseClass.value,\n };\n });\n const addIconClass = computed(() => {\n return {\n [`${componentName.value}__add-btn`]: true,\n ...iconBaseClass.value,\n };\n });\n const navContainerClass = computed(() => {\n return {\n [`${componentName.value}__nav-container`]: true,\n [`${componentName.value}__nav--card`]: props.theme === 'card',\n [`${classPrefix.value}-is-${props.placement}`]: true,\n [`${classPrefix.value}-is-addable`]: props.addable,\n };\n });\n const navScrollContainerClass = computed(() => {\n return {\n [`${componentName.value}__nav-scroll`]: true,\n [`${classPrefix.value}-is-scrollable`]: canToLeft.value || canToRight.value,\n };\n });\n\n const navsWrapClass = computed(() => {\n return [\n `${componentName.value}__nav-wrap`,\n `${classPrefix.value}-is-smooth`,\n { [`${classPrefix.value}-is-vertical`]: isVerticalPlacement.value },\n ];\n });\n\n const setOffset = (offset: number) => {\n scrollLeft.value = calcValidOffset(offset, maxScrollLeft.value);\n };\n\n const handleScroll = (action: 'prev' | 'next') => {\n setOffset(calcPrevOrNextOffset(getRefs(), scrollLeft.value, action));\n };\n\n const handleWheel = (event: WheelEvent) => {\n if (!canToLeft.value && !canToRight.value) return;\n\n event.preventDefault();\n const { deltaX, deltaY } = event;\n\n if (Math.abs(deltaX) > Math.abs(deltaY)) {\n setOffset(scrollLeft.value + deltaX);\n } else {\n setOffset(scrollLeft.value + deltaY);\n }\n };\n\n const handleActiveTabScroll = () => {\n setTimeout(() => {\n setOffset(calculateOffset(getRefs(), scrollLeft.value, props.scrollPosition));\n }, 0);\n };\n\n const getMaxScrollLeft = () => {\n nextTick(() => {\n maxScrollLeft.value = calcMaxOffset(getRefs());\n });\n };\n\n // watch\n watch([() => props.placement, () => props.panels], getMaxScrollLeft);\n watch([() => props.scrollPosition], handleActiveTabScroll);\n\n // life times\n useResize(debounce(getMaxScrollLeft), navsContainerRef.value);\n\n const handleAddTab = (e: MouseEvent) => {\n props.onAdd?.({ e });\n };\n\n const tabClick = (event: MouseEvent, nav: Partial>) => {\n const { value, disabled } = nav;\n if (disabled || props.value === value) {\n return false;\n }\n props.onChange(value);\n };\n const removeBtnClick = ({ e, value, index }: Parameters[0]) => {\n props.onRemove({ e, value, index });\n };\n const setActiveTab = (ref: any) => {\n if (!ref?.$el) return;\n if (ref?.value === props.value && activeTabRef.value !== ref.$el) {\n activeTabRef.value = ref.$el;\n handleActiveTabScroll();\n }\n };\n\n const { setNavsWrap } = useDragSort(props);\n\n onMounted(() => {\n setNavsWrap(navsWrapRef.value);\n getMaxScrollLeft();\n handleActiveTabScroll();\n });\n // renders\n const renderNavsContent = () => {\n return props.panels.map((panel, index) => {\n let label;\n if (panel?.children?.label) {\n label = panel.children.label();\n } else if (isFunction(panel.label)) {\n label = panel.label(h);\n } else {\n label = panel.label || `选项卡${index + 1}`;\n }\n let draggable = props.dragSort;\n if (draggable && panel.draggable === false) {\n draggable = panel.draggable;\n }\n return (\n tabClick(e, panel)}\n onRemove={removeBtnClick}\n />\n );\n });\n };\n const renderArrows = () => {\n return [\n \n \n {canToLeft.value ? (\n
handleScroll('prev')}>\n \n
\n ) : null}\n
\n ,\n \n \n {canToRight.value ? (\n
handleScroll('next')}>\n \n
\n ) : null}\n
\n {props.addable ? (\n
\n \n
\n ) : null}\n {props.action}\n ,\n ];\n };\n const renderNavs = () => {\n const navContent = renderNavsContent();\n return (\n
\n
\n
\n {props.theme !== 'card' && (\n \n )}\n {navContent}\n
\n
\n
\n );\n };\n\n return () => {\n return (\n
\n {renderArrows()}\n {renderNavs()}\n
\n );\n };\n },\n});\n","import { ComponentPublicInstance, defineComponent, provide, Ref, toRefs } from 'vue';\nimport TTabPanel from './tab-panel';\nimport TTabNav from './tab-nav';\nimport { TabValue, TdTabsProps } from './type';\nimport props from './props';\n\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport { isArray } from 'lodash-es';\n\nexport interface InjectTabs {\n value: Ref;\n}\n\nexport default defineComponent({\n name: 'TTabs',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('tabs');\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n const { value, modelValue } = toRefs(props);\n const [tabValue, setTabValue] = useVModel(value, modelValue, props.defaultValue || '', props.onChange);\n\n provide('tabs', { value: tabValue });\n\n // methods\n const onTabAdd = (context: { e: MouseEvent }) => {\n props.onAdd?.({ e: context.e });\n };\n const onTabChange = (value: TabValue) => {\n setTabValue(value);\n };\n const onTabRemove = ({ e, value, index }: Parameters[0]) => {\n props.onRemove?.({ value, index, e });\n };\n\n // render\n const getSlotPanels = () => {\n const content = renderTNodeJSX('default');\n if (!content) return [];\n\n const flatContent = (ct: any) => {\n return ct\n .map((item: ComponentPublicInstance) => {\n if (item.children && isArray(item.children)) return flatContent(item.children);\n return item;\n })\n .flat()\n .filter((item: ComponentPublicInstance) => {\n return item.type.name === 'TTabPanel';\n });\n };\n\n return flatContent(content);\n };\n const renderHeader = () => {\n const panels = (props.list?.length ? props.list : getSlotPanels()) || [];\n const actionContent = renderTNodeJSX('action');\n const panelsData = panels.map((item: ComponentPublicInstance) => {\n const selfItem = item;\n\n if (item.props) {\n Object.keys(item.props).forEach((key) => {\n selfItem[key] = item.props[key];\n });\n }\n\n return selfItem;\n });\n const tabNavProps = {\n theme: props.theme,\n value: tabValue.value,\n size: props.size,\n disabled: props.disabled,\n placement: props.placement,\n scrollPosition: props.scrollPosition,\n addable: props.addable,\n panels: panelsData,\n dragSort: props.dragSort,\n action: actionContent,\n };\n return (\n \n \n \n );\n };\n const renderContent = () => {\n const panels = getSlotPanels();\n if (props.list?.length) {\n return props.list.map((item) => );\n }\n if (panels && panels.length) {\n return
{panels}
;\n }\n };\n\n return () => {\n return (\n
\n {props.placement !== 'bottom' ? [renderHeader(), renderContent()] : [renderContent(), renderHeader()]}\n
\n );\n };\n },\n});\n","import _Tabs from './tabs';\nimport _TabPanel from './tab-panel';\nimport withInstall from '../utils/withInstall';\nimport { TdTabsProps, TdTabPanelProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TabsProps = TdTabsProps;\nexport type TabPanelProps = TdTabPanelProps;\n\nexport const Tabs = withInstall(_Tabs);\nexport const TabPanel = withInstall(_TabPanel);\nexport default Tabs;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSubmenuProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单项内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 菜单项内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用菜单项展开/收起/跳转等功能 */\n disabled: Boolean,\n /** 菜单项图标 */\n icon: {\n type: Function as PropType,\n },\n /** 透传 Popup 组件全部特性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 二级菜单内容 */\n title: {\n type: [String, Function] as PropType,\n },\n /** 菜单项唯一标识 */\n value: {\n type: [String, Number] as PropType,\n },\n};\n","import { defineComponent, PropType, computed, CSSProperties } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\n\n// 统一使用的翻转箭头组件\nexport default defineComponent({\n name: 'TFakeArrow',\n props: {\n // 是否active状态 active状态下箭头向上翻转\n isActive: {\n type: Boolean as PropType,\n },\n overlayClassName: {\n type: [String, Object, Array],\n },\n overlayStyle: {\n type: Object || (String as PropType),\n },\n },\n\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('fake-arrow');\n const classes = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--active`]: props.isActive,\n },\n props.overlayClassName,\n ]);\n\n return () => (\n \n \n \n );\n },\n});\n","import {\n defineComponent,\n computed,\n inject,\n ref,\n provide,\n onMounted,\n getCurrentInstance,\n watch,\n Slots,\n toRefs,\n reactive,\n nextTick,\n Transition,\n} from 'vue';\nimport props from './submenu-props';\nimport { TdMenuInterface, TdSubMenuInterface, TdMenuItem } from './types';\nimport FakeArrow from '../common-components/fake-arrow';\nimport useRipple from '../hooks/useRipple';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { Popup, PopupPlacement } from '../popup';\nimport { isFunction } from 'lodash-es';\nimport { TdSubmenuProps } from './type';\nimport useCollapseAnimation from '../hooks/useCollapseAnimation';\n\nexport default defineComponent({\n name: 'TSubmenu',\n props,\n setup(props: TdSubmenuProps, { attrs, slots }) {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n\n const instance = getCurrentInstance();\n const menu = inject('TdMenu');\n const { value } = toRefs(props);\n const { theme, activeValues, expandValues, isHead, open } = menu;\n const submenu = inject('TdSubmenu', {});\n const { setSubPopup, closeParentPopup } = submenu;\n const mode = computed(() => attrs.expandType || menu.mode.value);\n\n const menuItems = ref([]); // 因composition-api的缺陷,不用reactive, 详见:https://github.com/vuejs/composition-api/issues/637\n const isActive = computed(() => activeValues.value.indexOf(props.value) > -1);\n const popupVisible = ref(false);\n const isCursorInPopup = ref(false);\n const rippleColor = computed(() => (theme.value === 'light' ? '#E7E7E7' : '#383838'));\n const isOpen = computed(() => {\n if (mode.value === 'popup') {\n return popupVisible.value;\n }\n return expandValues ? expandValues.value?.includes(props.value) : false;\n });\n const isNested = ref(false); // 是否嵌套\n\n const popupWrapperRef = ref();\n const subPopupRef = ref();\n const submenuRef = ref();\n const transitionClass = usePrefixClass('slide-down');\n useRipple(submenuRef, rippleColor);\n\n const classes = computed(() => [\n `${classPrefix.value}-submenu`,\n {\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n [`${classPrefix.value}-is-opened`]: isOpen.value,\n },\n ]);\n const overlayInnerClassName = computed(() => [\n `${classPrefix.value}-menu__popup`,\n `${classPrefix.value}-is-${isHead ? 'horizontal' : 'vertical'}`,\n {\n [`${classPrefix.value}-is-opened`]: popupVisible.value,\n },\n props.popupProps?.overlayInnerClassName,\n ]);\n const overlayClassName = computed(() => [\n `${classPrefix.value}-menu--${theme.value}`,\n isHead && `${classPrefix.value}-is-head-menu`,\n { [`${classPrefix.value}-menu-is-nested`]: isNested.value },\n props.popupProps?.overlayClassName,\n ]);\n const submenuClass = computed(() => [\n `${classPrefix.value}-menu__item`,\n `${classPrefix.value}-menu__item-spacer`,\n `${classPrefix.value}-menu__item-spacer--${isHead && !isNested.value ? 'bottom' : 'right'}`,\n {\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n [`${classPrefix.value}-is-opened`]: isOpen.value,\n [`${classPrefix.value}-is-active`]: isActive.value,\n },\n ]);\n const subClass = computed(() => [\n `${classPrefix.value}-menu__sub`,\n {\n [`${classPrefix.value}-is-opened`]: isOpen.value,\n },\n ]);\n const arrowClass = computed(() => [\n {\n [`${classPrefix.value}-fake-arrow--active`]: isOpen.value,\n },\n ]);\n\n provide(\n 'TdSubmenu',\n reactive({\n value,\n addMenuItem: (item: TdMenuItem) => {\n menuItems.value.push(item);\n if (submenu) {\n submenu.addMenuItem(item);\n }\n },\n setSubPopup: (ref: HTMLElement) => {\n subPopupRef.value = ref;\n },\n closeParentPopup: (e: MouseEvent) => {\n const related = e.relatedTarget as HTMLElement;\n if (loopInPopup(related)) return;\n handleMouseLeavePopup(e);\n },\n }),\n );\n\n const passSubPopupRefToParent = (val: HTMLElement) => {\n if (isFunction(setSubPopup)) {\n setSubPopup(val);\n }\n };\n\n // methods\n const handleMouseEnter = () => {\n if (props.disabled) return;\n setTimeout(() => {\n if (!popupVisible.value) {\n open(props.value);\n\n // popupVisible设置为TRUE之后打开popup,因此需要在nextTick中确保可以拿到ref值\n nextTick().then(() => {\n passSubPopupRefToParent(popupWrapperRef.value);\n });\n }\n popupVisible.value = true;\n }, 0);\n };\n\n const targetInPopup = (el: HTMLElement) => el?.classList.contains(`${classPrefix.value}-menu__popup`);\n const loopInPopup = (el: HTMLElement): boolean => {\n if (!el) return false;\n return targetInPopup(el) || loopInPopup(el.parentElement);\n };\n\n const handleMouseLeave = (e: MouseEvent) => {\n setTimeout(() => {\n const inPopup = targetInPopup(e.relatedTarget as HTMLElement);\n\n if (isCursorInPopup.value || inPopup) return;\n popupVisible.value = false;\n }, 0);\n };\n\n const handleMouseLeavePopup = (e: any) => {\n const { toElement, relatedTarget } = e;\n let target = toElement || relatedTarget;\n\n if (target === subPopupRef.value) return;\n\n const isSubmenu = (el: Element) => el === submenuRef.value;\n while (target !== null && target !== document && !isSubmenu(target)) {\n target = target.parentNode;\n }\n\n isCursorInPopup.value = false;\n\n if (!isSubmenu(target)) {\n popupVisible.value = false;\n }\n\n closeParentPopup?.(e);\n };\n const handleEnterPopup = () => {\n isCursorInPopup.value = true;\n };\n\n const handleSubmenuItemClick = () => {\n if (props.disabled) return;\n open(props.value);\n };\n\n const renderPopup = (triggerElement: Slots[]) => {\n let placement: PopupPlacement = 'right-top';\n if (!isNested.value && isHead) {\n placement = 'bottom-left';\n }\n\n const popupWrapper = (\n \n
    {renderContent('default', 'content')}
\n \n );\n\n const slots = {\n content: () => popupWrapper,\n };\n\n const realPopup = (\n \n
\n {triggerElement}\n
\n \n );\n\n return realPopup;\n };\n\n const renderHeadSubmenu = () => {\n const icon = renderTNodeJSX('icon');\n const normalSubmenu = [\n
\n {icon}\n {renderTNodeJSX('title', { silent: true })}\n
,\n
    {renderContent('default', 'content')}
,\n ];\n\n const needRotate = mode.value === 'popup' && isNested.value;\n\n const triggerElement = [\n icon,\n {renderTNodeJSX('title', { silent: true })},\n ,\n ];\n\n return mode.value === 'normal' ? normalSubmenu : renderPopup(triggerElement);\n };\n\n const renderSubmenu = () => {\n const hasContent = slots.content || slots.default;\n const icon = renderTNodeJSX('icon');\n const child = renderContent('default', 'content');\n let parent = instance.parent;\n let paddingLeft = 44;\n\n while (parent && parent.type.name !== 'TMenu') {\n if (parent.type.name === 'TSubmenu') {\n paddingLeft += 16;\n }\n parent = parent.parent;\n }\n\n const { beforeEnter, enter, afterEnter, beforeLeave, leave, afterLeave } = useCollapseAnimation();\n\n const needRotate = mode.value === 'popup' && isNested.value;\n\n const normalSubmenu = [\n
\n {icon}\n {renderTNodeJSX('title', { silent: true })}\n {hasContent && (\n \n )}\n
,\n \n
    \n {child}\n
\n ,\n ];\n\n const triggerElement = [\n icon,\n {renderTNodeJSX('title', { silent: true })},\n ,\n ];\n\n return mode.value === 'normal' ? normalSubmenu : renderPopup(triggerElement);\n };\n\n watch(popupVisible, (visible) => {\n menu.open(props.value, visible ? 'add' : 'remove');\n });\n\n watch(popupWrapperRef, () => {\n // 第一次触发nextTick会取空值,导致subPopupRef拿不到对应的DOM\n passSubPopupRefToParent(popupWrapperRef.value);\n });\n\n onMounted(() => {\n menu?.vMenu?.add({ value: props.value, parent: submenu?.value, vnode: slots.default });\n let node = instance.parent;\n\n while (node && !/^t(head)?menu/i.test(node?.type.name)) {\n if (/submenu/i.test(node?.type.name)) {\n isNested.value = true;\n break;\n }\n node = node?.parent;\n }\n });\n\n return () => {\n let child = null;\n let events = {};\n\n if (mode.value === 'popup') {\n events = {\n onMouseenter: handleMouseEnter,\n onMouseleave: handleMouseLeave,\n };\n }\n if (Object.keys(slots).length > 0) {\n child = isHead ? renderHeadSubmenu() : renderSubmenu();\n }\n\n return (\n
  • \n {child}\n
  • \n );\n };\n },\n});\n","export default function useCollapseAnimation() {\n const beforeEnter = (el: HTMLElement) => {\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n\n el.style.height = '0';\n el.style.paddingTop = '0';\n el.style.paddingBottom = '0';\n };\n const enter = (el: HTMLElement) => {\n el.dataset.oldOverflow = el.style.overflow;\n el.style.height = `${el.scrollHeight}px`;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n el.style.overflow = 'hidden';\n };\n const afterEnter = (el: HTMLElement) => {\n el.style.height = '';\n el.style.overflow = el.dataset.oldOverflow;\n };\n const beforeLeave = (el: HTMLElement) => {\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n el.dataset.oldOverflow = el.style.overflow;\n\n el.style.height = `${el.scrollHeight}px`;\n el.style.overflow = 'hidden';\n };\n const leave = (el: HTMLElement) => {\n if (el.scrollHeight !== 0) {\n el.style.height = '0';\n el.style.paddingTop = '0';\n el.style.paddingBottom = '0';\n }\n };\n const afterLeave = (el: HTMLElement) => {\n el.style.height = '';\n el.style.overflow = el.dataset.oldOverflow;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n };\n\n return {\n beforeEnter,\n enter,\n afterEnter,\n beforeLeave,\n leave,\n afterLeave,\n };\n}\n","import {\n defineComponent,\n computed,\n provide,\n ref,\n reactive,\n watch,\n onMounted,\n watchEffect,\n toRefs,\n h,\n VNode,\n Component,\n getCurrentInstance,\n} from 'vue';\nimport { EllipsisIcon } from 'tdesign-icons-vue-next';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport log from '@tdesign/common-js/log/log';\nimport props from './head-menu-props';\nimport { MenuValue } from './type';\nimport { TdMenuInterface, TdOpenType } from './types';\nimport { Tabs, TabPanel } from '../tabs';\nimport Submenu from './submenu';\nimport { VMenu } from './utils';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport useDefaultValue from '../hooks/useDefaultValue';\n\nexport default defineComponent({\n name: 'THeadMenu',\n props,\n setup(props, ctx) {\n const classPrefix = usePrefixClass();\n const { proxy } = getCurrentInstance();\n watchEffect(() => {\n if (ctx.slots.options) {\n log.warnOnce('TMenu', '`options` slot is going to be deprecated, please use `operations` for slot instead.');\n }\n });\n const { value, modelValue, expanded } = toRefs(props);\n const [activeValue, setActiveValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [expandValues, setExpanded] = useDefaultValue(expanded, props.defaultExpanded, props.onExpand, 'expanded');\n const activeValues = ref([]);\n const theme = computed(() => props.theme);\n const menuClass = computed(() => [\n `${classPrefix.value}-menu`,\n `${classPrefix.value}-head-menu`,\n `${classPrefix.value}-menu--${props.theme}`,\n ]);\n const mode = ref(props.expandType);\n const submenu = reactive([]);\n const vMenu = new VMenu({ isMutex: true, expandValues: expandValues.value });\n\n provide('TdMenu', {\n mode,\n theme,\n vMenu,\n isHead: true,\n expandValues,\n activeValue,\n activeValues,\n select: (value: MenuValue) => {\n setActiveValue(value);\n },\n open: (value: MenuValue, type: TdOpenType) => {\n const expanded = [...expandValues.value];\n const index = expanded.indexOf(value);\n\n if (mode.value === 'popup') {\n if (type === 'add') {\n if (index === -1) {\n // 可能初始expanded里包含了该value\n expanded.push(value);\n }\n } else if (type === 'remove') {\n expanded.splice(index, 1);\n }\n } else if (mode.value === 'normal' && value !== undefined) {\n expanded.splice(0, 1);\n if (index === -1) {\n expanded.push(value);\n }\n }\n setExpanded(expanded);\n },\n });\n\n // methods\n const handleTabChange = (value: MenuValue) => {\n setActiveValue(value);\n handleClickSubMenuItem(value);\n };\n\n const handleSubmenuExpand = (value: MenuValue) => {\n const ans = vMenu.getChild(value);\n submenu.length = 0;\n submenu.push(...ans);\n };\n\n // watch\n watch(expandValues, (value) => {\n if (mode.value === 'normal') {\n handleSubmenuExpand(value[0]);\n }\n });\n const updateActiveValues = (value: MenuValue) => {\n activeValues.value = vMenu.select(value);\n };\n watch(activeValue, updateActiveValues);\n watch(\n () => props.expandType,\n (value) => {\n mode.value = value;\n },\n );\n\n onMounted(() => {\n activeValues.value = vMenu.select(activeValue.value);\n if (expandValues.value?.length > 0) {\n handleSubmenuExpand(expandValues.value[0]); // 顶部导航只能同时展开一个子菜单\n }\n });\n\n const handleClickSubMenuItem = (value: MenuValue) => {\n const activeMenuItem = submenu.find((v) => v.value === value);\n activeMenuItem.onClick?.({ value });\n const { to, href, replace } = activeMenuItem;\n if (href) {\n window.location.href = activeMenuItem.href;\n }\n const router = activeMenuItem.router || proxy.$router;\n if (to && router) {\n replace ? router.replace(to) : router.push(to);\n }\n };\n // setup返回的render函数中无法访问methods属性中的类容,移动此方法到setup中\n const renderNormalSubmenu = () => {\n if (submenu.length === 0) return null;\n return (\n
      \n {\n \n {submenu.map((item) => (\n \n ))}\n \n }\n
    \n );\n };\n\n const menuRef = ref();\n const innerRef = ref();\n const logoRef = ref();\n const operationRef = ref();\n\n const getComputedCss = (el: Element, cssProperty: keyof CSSStyleDeclaration) =>\n getComputedStyle(el)[cssProperty] ?? '';\n\n const getComputedCssValue = (el: Element, cssProperty: keyof CSSStyleDeclaration) =>\n Number.parseInt(String(getComputedCss(el, cssProperty)), 10);\n\n const calcMenuWidth = () => {\n const menuPaddingLeft = getComputedCssValue(menuRef.value, 'paddingLeft');\n const menuPaddingRight = getComputedCssValue(menuRef.value, 'paddingRight');\n let totalWidth = innerRef.value.clientWidth;\n if (logoRef.value) {\n const logoMarginLeft = getComputedCssValue(logoRef.value, 'marginLeft');\n const logoMarginRight = getComputedCssValue(logoRef.value, 'marginRight');\n totalWidth = totalWidth - logoRef.value.offsetWidth - logoMarginLeft - logoMarginRight;\n }\n\n if (operationRef.value) {\n const operationMarginLeft = getComputedCssValue(operationRef.value, 'marginLeft');\n const operationMarginRight = getComputedCssValue(operationRef.value, 'marginRight');\n totalWidth = totalWidth - operationRef.value.offsetWidth - operationMarginLeft - operationMarginRight;\n }\n\n return totalWidth - menuPaddingLeft - menuPaddingRight;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const formatContent = () => {\n let slot = ctx.slots.default?.() || ctx.slots.content?.() || [];\n\n if (menuRef.value && innerRef.value) {\n const validNodes = Array.from(menuRef.value.childNodes ?? []).filter(\n (item) => item.nodeName !== '#text' || item.nodeValue,\n ) as HTMLElement[];\n\n const menuWidth = calcMenuWidth();\n const menuItemMinWidth = 104;\n\n let remainWidth = menuWidth;\n let sliceIndex = validNodes.length;\n\n for (let index = 0; index < validNodes.length; index++) {\n const element = validNodes[index];\n remainWidth -= element.offsetWidth || 0;\n if (remainWidth < menuItemMinWidth) {\n sliceIndex = index;\n break;\n }\n }\n\n const defaultSlot = slot.slice(0, sliceIndex);\n const subMore = slot.slice(sliceIndex);\n\n if (subMore.length) {\n slot = defaultSlot.concat(\n }>\n {subMore}\n ,\n );\n }\n }\n return slot;\n };\n\n const initVMenu = (slots: VNode[], parentValue?: string) => {\n slots.forEach((node) => {\n const nodeValue = node.props?.value;\n if ((node.type as Component)?.name === 'TSubmenu' || (node.type as Component)?.name === 'TMenuItem') {\n vMenu.add({ value: nodeValue, parent: parentValue, vnode: (node.children as any).default, ...node.props });\n }\n if (isFunction((node.children as any)?.default)) {\n initVMenu((node.children as any).default(), nodeValue);\n return;\n }\n if (isArray(node.children)) {\n initVMenu(node.children as VNode[], nodeValue);\n }\n });\n };\n initVMenu(ctx.slots.default?.() || ctx.slots.content?.() || []);\n\n return () => {\n const logo = props.logo?.(h) || ctx.slots.logo?.();\n const operations = props.operations?.(h) || ctx.slots.operations?.() || ctx.slots.options?.();\n\n // TODO: 判断逻辑不够完善 影响封装组件的子菜单样式渲染 暂时先不执行 待调整实现方案\n // const content = formatContent();\n const content = ctx.slots.default?.() || ctx.slots.content?.() || [];\n\n return (\n
    \n
    \n {logo && (\n
    \n {logo}\n
    \n )}\n
      \n {content}\n
    \n {operations && (\n
    \n {operations}\n
    \n )}\n
    \n {mode.value === 'normal' && renderNormalSubmenu()}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdMenuItemProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单项内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 菜单项内容,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用菜单项展开/收起/跳转等功能 */\n disabled: Boolean,\n /** 跳转链接,菜单项渲染为a标签,当routerLink为true时将使用Router进行路由跳转 */\n href: {\n type: String,\n default: '',\n },\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 路由跳转是否采用覆盖的方式(覆盖后将没有浏览器历史记录) */\n replace: Boolean,\n /** 路由对象。如果项目存在 Router,则默认使用 Router。 */\n router: {\n type: Object as PropType,\n },\n /**\n * 菜单项内容是否渲染为使用Router进行跳转的a标签,当且仅当 Router 存在时,该 API 有效\n */\n routerLink: Boolean,\n /** 链接或路由跳转方式 */\n target: {\n type: String as PropType,\n default: '_self' as TdMenuItemProps['target'],\n validator(val: TdMenuItemProps['target']): boolean {\n if (!val) return true;\n return ['_blank', '_self', '_parent', '_top'].includes(val);\n },\n },\n /** 路由跳转目标,当且仅当 Router 存在时,该 API 有效 */\n to: {\n type: [String, Object] as PropType,\n },\n /** 菜单项唯一标识 */\n value: {\n type: [String, Number] as PropType,\n },\n /** 点击时触发 */\n onClick: Function as PropType,\n};\n","import { defineComponent, computed, inject, onMounted, ref, toRefs, getCurrentInstance } from 'vue';\nimport props from './menu-item-props';\nimport { TdMenuInterface, TdSubMenuInterface } from './types';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport useRipple from '../hooks/useRipple';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport Tooltip from '../tooltip';\n\nexport default defineComponent({\n name: 'TMenuItem',\n props,\n emits: ['click'],\n setup(props, ctx) {\n const { href, target, to, disabled, value, onClick, routerLink, replace } = toRefs(props);\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n\n const menu = inject('TdMenu');\n const itemRef = ref();\n const instance = getCurrentInstance();\n\n useRipple(itemRef);\n const submenu = inject('TdSubmenu', null);\n const active = computed(() => menu.activeValue.value === props.value);\n const collapsed = computed(() => menu.collapsed?.value);\n const classes = computed(() => [\n `${classPrefix.value}-menu__item`,\n {\n [`${classPrefix.value}-is-active`]: active.value,\n [`${classPrefix.value}-is-disabled`]: props.disabled,\n [`${classPrefix.value}-menu__item--plain`]: !ctx.slots.icon && !props.icon,\n [`${classPrefix.value}-submenu__item`]: !!submenu && !menu.isHead,\n },\n ]);\n const router = computed(() => props.router || instance?.proxy.$router);\n\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n if (disabled.value) return;\n menu.select(value.value);\n ctx.emit('click', { e, value: value.value });\n onClick.value?.({ e, value: value.value });\n if (to.value || (routerLink.value && href.value)) {\n const methods: string = replace.value ? 'replace' : 'push';\n router.value[methods](to.value || href.value).catch((err: Error) => {\n // vue-router 3.1.0+ push/replace cause NavigationDuplicated error\n // https://github.com/vuejs/vue-router/issues/2872\n // 当前path和目标path相同时,会抛出NavigationDuplicated的错误\n if (\n err.name !== 'NavigationDuplicated' &&\n !err.message.includes('Avoided redundant navigation to current location')\n ) {\n throw err;\n }\n });\n }\n submenu?.closeParentPopup?.(e);\n };\n\n // lifetimes\n onMounted(() => {\n menu?.vMenu?.add({ value: props.value, parent: submenu?.value, vnode: ctx.slots.default, ...props });\n });\n\n return () => {\n const liContent = (\n
  • \n {renderTNodeJSX('icon')}\n {routerLink.value ? (\n e.preventDefault()}\n >\n {renderContent('default', 'content')}\n \n ) : href.value ? (\n disabled.value && e.preventDefault()}\n >\n {renderContent('default', 'content')}\n \n ) : (\n {renderContent('default', 'content')}\n )}\n
  • \n );\n\n const node = instance?.parent;\n // 菜单收起,且只有本身为一级菜单才需要显示 tooltip\n if (collapsed.value && /tmenu/i.test(node?.type.name)) {\n return (\n renderContent('default', 'content')} placement=\"right\">\n {liContent}\n \n );\n }\n return liContent;\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdMenuGroupProps } from '../menu/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 菜单组标题 */\n title: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './menu-group-props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nexport default defineComponent({\n name: 'TMenuGroup',\n props,\n setup() {\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n return () => (\n
    \n
    {renderTNodeJSX('title', { silent: false })}
    \n {renderTNodeJSX('default')}\n
    \n );\n },\n});\n","import _Menu from './menu';\nimport _HeadMenu from './head-menu';\nimport _Submenu from './submenu';\nimport _MenuItem from './menu-item';\nimport _MenuGroup from './menu-group';\nimport withInstall from '../utils/withInstall';\nimport { TdMenuProps, TdHeadMenuProps, TdSubmenuProps, TdMenuItemProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type MenuProps = TdMenuProps;\nexport type HeadMenuProps = TdHeadMenuProps;\nexport type SubmenuProps = TdSubmenuProps;\nexport type MenuItemProps = TdMenuItemProps;\n\nexport const Menu = withInstall(_Menu);\nexport const HeadMenu = withInstall(_HeadMenu);\nexport const Submenu = withInstall(_Submenu);\nexport const MenuItem = withInstall(_MenuItem);\nexport const MenuGroup = withInstall(_MenuGroup);\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 文本内容位置,居左/居中/居右 */\n align: {\n type: String as PropType,\n default: 'left' as TdInputProps['align'],\n validator(val: TdInputProps['align']): boolean {\n if (!val) return true;\n return ['left', 'center', 'right'].includes(val);\n },\n },\n /** 超出 `maxlength` 或 `maxcharacter` 之后是否允许继续输入 */\n allowInputOverMax: Boolean,\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 是否开启自动填充功能,HTML5 原生属性,[点击查看详情](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) */\n autocomplete: {\n type: String,\n default: undefined,\n },\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 是否开启无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 是否禁用输入框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 指定输入框展示值的格式。注意 `type=number` 时请勿使用,此功能建议更为使用 `InputNumber` 组件 */\n format: {\n type: Function as PropType,\n },\n /** t-input 同级类名,示例:'name1 name2 name3' 或 `['name1', 'name2']` 或 `[{ 'name1': true }]` */\n inputClass: {\n type: [String, Object, Array] as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度。`maxcharacter` 和 `maxlength` 二选一使用 */\n maxcharacter: {\n type: Number,\n },\n /** 用户最多可以输入的文本长度,一个中文等于一个计数长度。默认为空,不限制输入长度。`maxcharacter` 和 `maxlength` 二选一使用 */\n maxlength: {\n type: [String, Number] as PropType,\n },\n /** 名称 */\n name: {\n type: String,\n default: '',\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 输入框内容为空时,悬浮状态是否显示清空按钮,默认不显示 */\n showClearIconOnEmpty: Boolean,\n /** 是否在输入框右侧显示字数统计 */\n showLimitNumber: Boolean,\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdInputProps['size'],\n validator(val: TdInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 是否开启拼写检查,HTML5 原生属性,[点击查看详情](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/spellcheck) */\n spellCheck: Boolean,\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdInputProps['status'],\n validator(val: TdInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 输入框类型。`type=number` 仅支持最基础的数字输入功能,更多功能建议使用 `InputNumber` 组件 */\n type: {\n type: String as PropType,\n default: 'text' as TdInputProps['type'],\n validator(val: TdInputProps['type']): boolean {\n if (!val) return true;\n return ['text', 'number', 'url', 'tel', 'password', 'search', 'submit', 'hidden'].includes(val);\n },\n },\n /** 输入框的值 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdInputProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdInputProps['value'],\n },\n /** 输入框的值,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入框值发生变化时触发。参数 `trigger=initial` 表示传入的数据不符合预期,组件自动处理后触发 change 告知父组件。如:初始值长度超过 `maxlength` 限制 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 点击组件时触发 */\n onClick: Function as PropType,\n /** 中文输入结束时触发 */\n onCompositionend: Function as PropType,\n /** 中文输入开始时触发 */\n onCompositionstart: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n /** 粘贴事件,`pasteValue` 表示粘贴板的内容 */\n onPaste: Function as PropType,\n /** 字数超出限制时触发 */\n onValidate: Function as PropType,\n /** 输入框中滚动鼠标时触发 */\n onWheel: Function as PropType,\n};\n","import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { isBoolean } from 'lodash-es';\nimport { TdFormProps } from '../form/type';\n\nexport interface FormReadonlyProvider {\n readonly: Ref;\n}\n\nexport interface ReadonlyContext {\n beforeReadonly?: Ref;\n afterReadonly?: Ref;\n}\n\n/**\n * 用于实现组件全局只读状态的hook\n * 优先级:(beforeReadonly) > Component.readonly > ComponentGroup.readonly(afterReadonly) > Form.readonly\n * @returns\n */\nexport function useReadonly(context?: ReadonlyContext) {\n const currentInstance = getCurrentInstance();\n const componentReadonly = computed(() => currentInstance.props.readonly as boolean);\n\n const formReadonly = inject('formReadonly', Object.create(null));\n\n return computed(() => {\n if (isBoolean(context?.beforeReadonly?.value)) return context.beforeReadonly.value;\n // Component\n if (isBoolean(componentReadonly?.value)) return componentReadonly.value;\n // ComponentGroup\n if (isBoolean(context?.afterReadonly?.value)) return context.afterReadonly.value;\n // Form\n if (isBoolean(formReadonly.readonly?.value)) return formReadonly.readonly.value;\n\n return false;\n });\n}\n","import { computed, InjectionKey } from 'vue';\nimport { FormItemValidateResult } from '../form-item';\nimport {\n AllValidateResult,\n Data,\n FormItemValidateMessage,\n FormRule,\n TdFormItemProps,\n TdFormProps,\n ValidateResultType,\n ValidateTriggerType,\n} from '../type';\nimport { usePrefixClass, useTNodeJSX } from '../../hooks';\n\n// 允许 Form 统一控制的表单\nexport const FORM_CONTROL_COMPONENTS = [\n 'TInput',\n 'TInputNumber',\n 'TTextarea',\n 'TCascader',\n 'TSelect',\n 'TOption',\n 'TSwitch',\n 'TCheckbox',\n 'TCheckboxGroup',\n 'TRadio',\n 'TRadioGroup',\n 'TTreeSelect',\n 'TDatePicker',\n 'TTimePicker',\n 'TUpload',\n 'TTransfer',\n 'TSlider',\n];\n\nexport const useCLASSNAMES = () => {\n const classPrefix = usePrefixClass();\n\n return computed(() => {\n const form = `${classPrefix.value}-form`;\n const input = `${classPrefix.value}-input`;\n const is = `${classPrefix.value}-is`;\n\n return {\n form,\n label: `${form}__label`,\n labelTop: `${form}__label--top`,\n inline: `${form}-inline`,\n formItem: `${form}__item`,\n formItemWithHelp: `${form}__item-with-help`,\n formItemWithExtra: `${form}__item-with-extra`,\n controls: `${form}__controls`,\n controlsContent: `${form}__controls-content`,\n status: `${form}__status`,\n extra: `${input}__extra`,\n help: `${input}__help`,\n success: `${is}-success`,\n successBorder: `${form}--success-border`,\n error: `${is}-error`,\n warning: `${is}-warning`,\n };\n });\n};\n\nexport const enum ValidateStatus {\n TO_BE_VALIDATED = 'not',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport type ErrorListType =\n | {\n result: false;\n message: string;\n type: 'error' | 'warning';\n }\n | ValidateResultType;\n\nexport type SuccessListType =\n | {\n result: true;\n message: string;\n type: 'success';\n }\n | ValidateResultType;\n\nexport interface AnalysisValidateResult {\n successList?: SuccessListType[];\n errorList?: ErrorListType[];\n rules: FormRule[];\n resultList: AllValidateResult[];\n allowSetValue: boolean;\n}\n\nexport interface FormItemContext {\n name: TdFormItemProps['name'];\n resetHandler: () => void;\n resetField: (resetType?: 'initial' | 'empty') => Promise;\n validate: (\n trigger: ValidateTriggerType,\n showErrorMessage?: boolean,\n ) => Promise>;\n validateOnly: (trigger: ValidateTriggerType) => Promise>;\n setValidateMessage: (validateMessage: FormItemValidateMessage[]) => void;\n}\n\nexport const FormInjectionKey: InjectionKey<{\n showErrorMessage: TdFormProps['showErrorMessage'];\n labelWidth: TdFormProps['labelWidth'];\n labelAlign: TdFormProps['labelAlign'];\n data: TdFormProps['data'];\n colon: TdFormProps['colon'];\n requiredMark: TdFormProps['requiredMark'];\n rules: TdFormProps['rules'];\n errorMessage: TdFormProps['errorMessage'];\n resetType: TdFormProps['resetType'];\n children: FormItemContext[];\n renderContent: ReturnType;\n}> = Symbol('FormProvide');\n\nexport const FormItemInjectionKey: InjectionKey<{\n handleBlur: () => Promise;\n}> = Symbol('FormItemProvide');\n","import { computed, ComputedRef, onMounted, watch } from 'vue';\nimport { TdInputProps } from './../type';\nimport log from '@tdesign/common-js/log/index';\nimport { getCharacterLength, getUnicodeLength, limitUnicodeMaxLength } from '@tdesign/common-js/utils/helper';\nimport { isNumber, isObject } from 'lodash-es';\n\nexport interface UseLengthLimitParams {\n value: string;\n maxlength: number;\n maxcharacter: number;\n allowInputOverMax: boolean;\n status: TdInputProps['status'];\n onValidate: TdInputProps['onValidate'];\n}\n\nexport function useLengthLimit(params: ComputedRef) {\n // 文本超出数量限制时,是否允许继续输入\n const getValueByLimitNumber = (inputValue: string) => {\n const { allowInputOverMax, maxlength, maxcharacter } = params.value;\n if (!(maxlength || maxcharacter) || allowInputOverMax || !inputValue) return inputValue;\n if (maxlength) {\n // input value could be unicode 😊\n return limitUnicodeMaxLength(inputValue, maxlength);\n }\n if (maxcharacter) {\n const r = getCharacterLength(inputValue, maxcharacter);\n if (isObject(r)) {\n return r.characters;\n }\n }\n };\n\n const limitNumber = computed(() => {\n const { maxlength, maxcharacter, value } = params.value;\n if (isNumber(value)) return String(value);\n if (maxlength && maxcharacter) {\n log.warn('Input', 'Pick one of maxlength and maxcharacter please.');\n }\n if (maxlength) {\n const length = value?.length ? getUnicodeLength(value) : 0;\n return `${length}/${maxlength}`;\n }\n if (maxcharacter) {\n return `${getCharacterLength(value || '')}/${maxcharacter}`;\n }\n return '';\n });\n\n const innerStatus = computed(() => {\n if (limitNumber.value) {\n const [current, total] = limitNumber.value.split('/');\n return Number(current) > Number(total) ? 'error' : '';\n }\n return '';\n });\n\n const tStatus = computed(() => {\n const { status } = params.value;\n return status || innerStatus.value;\n });\n\n const onValidateChange = () => {\n params.value.onValidate?.({\n error: innerStatus.value ? 'exceed-maximum' : undefined,\n });\n };\n\n watch(innerStatus, onValidateChange);\n\n onMounted(() => {\n innerStatus.value && onValidateChange();\n });\n\n return {\n tStatus,\n limitNumber,\n getValueByLimitNumber,\n };\n}\n","import { ref, computed, watch, nextTick, toRefs, inject } from 'vue';\nimport { InputValue, TdInputProps } from './../type';\nimport { FormItemInjectionKey } from '../../form/consts';\nimport useVModel from '../../hooks/useVModel';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useLengthLimit } from './useLengthLimit';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nexport function getOutputValue(val: InputValue, type: TdInputProps['type']) {\n if (type === 'number') {\n return val || val === 0 ? Number(val) : undefined;\n }\n return val;\n}\n\nexport interface ExtendsTdInputProps extends TdInputProps {\n showInput: boolean;\n keepWrapperWidth: boolean;\n}\n\nexport function useInput(props: ExtendsTdInputProps, expose: (exposed: Record) => void) {\n const { value, modelValue } = toRefs(props);\n const inputValue = ref();\n const isComposition = ref(false);\n const compositionValue = ref();\n const clearIconRef = ref(null);\n const innerClickElement = ref();\n const disabled = useDisabled();\n const readonly = useReadonly();\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const isHover = ref(false);\n const focused = ref(false);\n const renderType = ref(props.type);\n const inputRef = ref(null);\n\n const limitParams = computed(() => ({\n value: [undefined, null].includes(innerValue.value) ? undefined : String(innerValue.value),\n status: props.status,\n maxlength: Number(props.maxlength),\n maxcharacter: props.maxcharacter,\n allowInputOverMax: props.allowInputOverMax,\n onValidate: props.onValidate,\n }));\n const { limitNumber, getValueByLimitNumber, tStatus } = useLengthLimit(limitParams);\n\n const showClear = computed(() => {\n return (\n ((innerValue.value && !disabled.value && props.clearable && !readonly.value) || props.showClearIconOnEmpty) &&\n isHover.value\n );\n });\n\n const focus = () => {\n focused.value = true;\n inputRef.value?.focus();\n };\n\n const blur = () => {\n focused.value = false;\n inputRef.value?.blur();\n };\n\n const emitFocus = (e: FocusEvent) => {\n if (isHover.value && focused.value) return;\n inputValue.value = innerValue.value;\n if (props.disabled) return;\n focused.value = true;\n props.onFocus?.(innerValue.value, { e });\n };\n\n const emitClear = ({ e }: { e: MouseEvent }) => {\n const val = props.type === 'number' ? undefined : '';\n setInnerValue(val, { e, trigger: 'clear' });\n props.onClear?.({ e });\n };\n\n const onClearIconMousedown = (e: MouseEvent) => {\n innerClickElement.value = e.target;\n };\n\n const emitPassword = () => {\n if (disabled.value) return;\n const toggleType = renderType.value === 'password' ? 'text' : 'password';\n renderType.value = toggleType;\n };\n\n const setInputElValue = (v: InputValue = '') => {\n const inputEl = inputRef.value as HTMLInputElement;\n if (!inputEl) return;\n const sV = String(v);\n if (!inputEl.value) {\n return;\n }\n if (inputEl.value !== sV) {\n inputEl.value = sV;\n }\n };\n const inputValueChangeHandle = (e: InputEvent | CompositionEvent) => {\n const { target } = e;\n let val = (target as HTMLInputElement).value;\n // over length: allow delete; not add\n if (props.type !== 'number' && typeof innerValue.value === 'string' && val.length > innerValue.value?.length) {\n val = getValueByLimitNumber(val);\n }\n setInnerValue(getOutputValue(val, props.type), { e, trigger: 'input' });\n // 受控\n nextTick(() => {\n // type = 'number'时, 解决小数点后面有 0 自动删除的问题\n if (props.type === 'number' && /\\.(\\d+)?0$/.test(val)) {\n setInputElValue(val);\n } else {\n setInputElValue(innerValue.value);\n }\n });\n };\n\n const handleInput = (e: InputEvent) => {\n const checkInputType = e.inputType && e.inputType === 'insertCompositionText';\n const {\n currentTarget: { value: val },\n }: any = e;\n if (checkInputType || isComposition.value) {\n compositionValue.value = val;\n return;\n }\n inputValueChangeHandle(e);\n };\n\n const isClearIcon = () => {\n let tmp = innerClickElement.value;\n if (!tmp || !tmp.tagName || !clearIconRef.value?.$el || !['path', 'svg'].includes(tmp.tagName)) return false;\n while (tmp) {\n if (clearIconRef.value?.$el === tmp) {\n return true;\n }\n tmp = tmp.parentNode;\n }\n return false;\n };\n\n const formItem = inject(FormItemInjectionKey, undefined);\n const formatAndEmitBlur = (e: FocusEvent) => {\n if (!isClearIcon()) {\n if (props.format) {\n inputValue.value =\n typeof innerValue.value === 'number' || props.type === 'number'\n ? innerValue.value\n : props.format(innerValue.value);\n }\n focused.value = false;\n props.onBlur?.(innerValue.value, { e });\n formItem?.handleBlur();\n } else {\n focus();\n }\n };\n\n const onHandleCompositionend = (e: CompositionEvent) => {\n isComposition.value = false;\n compositionValue.value = '';\n inputValueChangeHandle(e);\n props.onCompositionend?.(String(innerValue.value), { e });\n };\n\n const onHandleCompositionstart = (e: CompositionEvent) => {\n isComposition.value = true;\n const {\n currentTarget: { value },\n }: any = e;\n compositionValue.value = value;\n props.onCompositionstart?.(String(innerValue.value), { e });\n };\n\n const onRootClick = (e: MouseEvent) => {\n inputRef.value?.focus();\n props.onClick?.({ e });\n };\n\n watch(\n () => props.autofocus,\n (value) => {\n if (value === true) {\n nextTick(() => {\n inputRef.value?.focus();\n });\n }\n },\n { immediate: true },\n );\n\n watch(\n innerValue,\n (val, oldVal) => {\n const isNumberType = props.type === 'number';\n // 初始化时,如果有 format 函数,需要对 value 进行格式化\n if (oldVal === undefined && props.format && typeof val !== 'number' && !isNumberType) {\n inputValue.value = props.format(val);\n } else {\n inputValue.value = val;\n }\n // limit props value\n const newVal = typeof val === 'number' ? val : getValueByLimitNumber(val);\n if (newVal !== val && !isNumberType) {\n setInnerValue(newVal, { trigger: 'initial' });\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.type,\n (v) => {\n renderType.value = v;\n },\n { immediate: true },\n );\n\n expose({\n inputRef,\n focus,\n blur,\n });\n\n return {\n isHover,\n focused,\n renderType,\n showClear,\n inputRef,\n clearIconRef,\n inputValue,\n isComposition,\n compositionValue,\n limitNumber,\n tStatus,\n emitFocus,\n formatAndEmitBlur,\n onHandleCompositionend,\n onHandleCompositionstart,\n onRootClick,\n emitPassword,\n handleInput,\n emitClear,\n onClearIconMousedown,\n innerValue,\n };\n}\n","import { onMounted, Ref, ref, watch, nextTick, onBeforeUnmount, toRefs } from 'vue';\nimport useResizeObserver from '../../hooks/useResizeObserver';\nimport { InputValue, TdInputProps } from './../type';\n\nconst ANIMATION_TIME = 100;\n\nexport function useInputWidth(props: TdInputProps, inputRef: Ref, innerValue: Ref) {\n const { autoWidth, placeholder } = toRefs(props);\n const inputPreRef = ref(null);\n const observerTimer = ref(null);\n\n const updateInputWidth = () => {\n if (!inputPreRef.value || !inputRef.value) return;\n // 使用 getComputedStyle 规避 transform 带来的影响\n inputRef.value.style.width = getComputedStyle(inputPreRef.value).width;\n };\n\n useResizeObserver(inputPreRef, () => {\n if (autoWidth.value) {\n observerTimer.value = setTimeout(() => {\n updateInputWidth();\n clearTimeout(observerTimer.value);\n }, ANIMATION_TIME);\n }\n });\n\n onBeforeUnmount(() => {\n clearTimeout(observerTimer.value);\n });\n\n const addListeners = () => {\n watch(\n [innerValue, placeholder],\n () => {\n if (!autoWidth.value) return;\n nextTick(() => {\n updateInputWidth();\n });\n },\n { immediate: true },\n );\n };\n\n onMounted(() => {\n if (autoWidth.value) {\n addListeners();\n }\n });\n\n return {\n inputPreRef,\n };\n}\n","import { defineComponent, computed } from 'vue';\nimport {\n BrowseIcon as TdBrowseIcon,\n BrowseOffIcon as TdBrowseOffIcon,\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport props from './props';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useConfig, usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useInput, useInputEventHandler, useInputWidth } from './hooks';\nimport { getValidAttrs } from '@tdesign/common-js/utils/helper';\n\nexport default defineComponent({\n name: 'TInput',\n props: {\n ...props,\n /**\n * 非公开 API,随时可能变动,请勿使用。控制透传readonly同时是否展示input 默认保留 因为正常Input需要撑开宽度\n */\n showInput: {\n type: Boolean,\n default: true,\n },\n /**\n * 非公开 API,随时可能变动,请勿使用。控制透传autoWidth之后是否容器宽度也自适应 多选等组件需要用到自适应但也需要保留宽度\n */\n keepWrapperWidth: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { expose }) {\n const { globalConfig } = useConfig('input');\n const { BrowseIcon, BrowseOffIcon, CloseCircleFilledIcon } = useGlobalIcon({\n BrowseIcon: TdBrowseIcon,\n BrowseOffIcon: TdBrowseOffIcon,\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n });\n const readonly = useReadonly();\n const disabled = useDisabled();\n\n const COMPONENT_NAME = usePrefixClass('input');\n const INPUT_WRAP_CLASS = usePrefixClass('input__wrap');\n const INPUT_TIPS_CLASS = usePrefixClass('input__tips');\n const { STATUS, SIZE } = useCommonClassName();\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n const {\n isHover,\n tStatus,\n inputRef,\n renderType,\n showClear,\n focused,\n inputValue,\n isComposition,\n compositionValue,\n innerValue,\n limitNumber,\n ...inputHandle\n } = useInput(props, expose);\n\n const { inputPreRef } = useInputWidth(props, inputRef, innerValue);\n\n const inputEventHandler = useInputEventHandler(props, isHover);\n\n const tPlaceholder = computed(() => props.placeholder ?? globalConfig.value.placeholder);\n const inputAttrs = computed(() => {\n const value = {\n autofocus: props.autofocus,\n disabled: disabled.value,\n readonly: readonly.value,\n placeholder: tPlaceholder.value,\n name: props.name || undefined,\n type: renderType.value,\n autocomplete: props.autocomplete ?? (globalConfig.value.autocomplete || undefined),\n unselectable: readonly.value ? 'on' : 'off',\n spellcheck: props.spellCheck,\n // 不要传给 input 原生元素 maxlength,浏览器默认行为会按照 unicode 进行限制,与 maxLength API 违背\n // https://github.com/Tencent/tdesign-vue-next/issues/4413\n // 参见: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/maxlength,提到了字符串长度的计算方法,就是 str.length\n } as const;\n return getValidAttrs(value);\n });\n\n const wrapClasses = computed(() => [\n INPUT_WRAP_CLASS.value,\n {\n [`${COMPONENT_NAME.value}--auto-width`]: props.autoWidth && !props.keepWrapperWidth,\n },\n ]);\n\n const inputEvents = getValidAttrs({\n onFocus: inputHandle.emitFocus,\n onBlur: inputHandle.formatAndEmitBlur,\n onKeydown: inputEventHandler.handleKeydown,\n onKeyup: inputEventHandler.handleKeyUp,\n onKeypress: inputEventHandler.handleKeypress,\n onPaste: inputEventHandler.onHandlePaste,\n onCompositionend: inputHandle.onHandleCompositionend,\n onCompositionstart: inputHandle.onHandleCompositionstart,\n });\n\n return () => {\n const prefixIcon = renderTNodeJSX('prefixIcon');\n let suffixIcon = renderTNodeJSX('suffixIcon');\n let passwordIcon = renderTNodeJSX('passwordIcon');\n const label = renderTNodeJSX('label', { silent: true });\n const suffix = renderTNodeJSX('suffix');\n const limitNode =\n limitNumber.value && props.showLimitNumber ? (\n \n {limitNumber.value}\n \n ) : null;\n\n const labelContent = label ?
    {label}
    : null;\n const suffixContent =\n suffix || limitNode ? (\n
    \n {suffix}\n {limitNode}\n
    \n ) : null;\n\n if (props.type === 'password') {\n const passwordClass = [{ [`${COMPONENT_NAME.value}__suffix-clear`]: !disabled.value }];\n if (renderType.value === 'password') {\n suffixIcon = ;\n } else if (renderType.value === 'text') {\n suffixIcon = ;\n }\n }\n\n if (showClear.value) {\n // 如果类型为 password 则使用 passwordIcon 显示 clear\n if (props.type === 'password') {\n passwordIcon = (\n \n );\n } else {\n suffixIcon = (\n \n );\n }\n }\n\n const classes = [\n COMPONENT_NAME.value,\n props.inputClass,\n {\n [SIZE.value[props.size]]: props.size !== 'medium',\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.focused]: disabled.value ? false : focused.value,\n [`${classPrefix.value}-is-${tStatus.value}`]: tStatus.value && tStatus.value !== 'default',\n [`${classPrefix.value}-align-${props.align}`]: props.align !== 'left',\n [`${classPrefix.value}-is-readonly`]: readonly.value,\n [`${COMPONENT_NAME.value}--prefix`]: prefixIcon || labelContent,\n [`${COMPONENT_NAME.value}--suffix`]: suffixIcon || suffixContent,\n [`${COMPONENT_NAME.value}--borderless`]: props.borderless,\n [`${COMPONENT_NAME.value}--focused`]: focused.value,\n },\n ];\n\n const tips = renderTNodeJSX('tips');\n\n const tipsClasses = [\n INPUT_TIPS_CLASS.value,\n `${classPrefix.value}-tips`,\n `${classPrefix.value}-is-${tStatus.value || 'default'}`,\n ];\n\n return (\n
    \n \n {prefixIcon ? (\n \n {prefixIcon}\n \n ) : null}\n {labelContent}\n {/* input element must exist, or other select components can not focus by keyboard operation */}\n inputHandle.handleInput(e as InputEvent)}\n />\n {props.autoWidth && (\n \n {isComposition.value ? compositionValue.value ?? '' : innerValue.value || tPlaceholder.value}\n \n )}\n {suffixContent}\n {passwordIcon ? (\n \n {passwordIcon}\n \n ) : null}\n {suffixIcon ? (\n \n {suffixIcon}\n \n ) : null}\n
    \n {tips &&
    {tips}
    }\n \n );\n };\n },\n});\n","import { Ref } from 'vue';\nimport { TdInputProps } from './../type';\nimport { getOutputValue } from './useInput';\n\nexport function useInputEventHandler(props: TdInputProps, isHover: Ref) {\n const handleKeydown = (e: KeyboardEvent) => {\n if (props.disabled) return;\n const { code } = e;\n const tmpValue = getOutputValue((e.currentTarget as HTMLInputElement).value, props.type);\n if (/enter/i.test(code) || /enter/i.test(e.key)) {\n props.onEnter?.(tmpValue, { e });\n } else {\n props.onKeydown?.(tmpValue, { e });\n }\n };\n\n const handleKeyUp = (e: KeyboardEvent) => {\n if (props.disabled) return;\n const tmpValue = getOutputValue((e.currentTarget as HTMLInputElement).value, props.type);\n props.onKeyup?.(tmpValue, { e });\n };\n\n const handleKeypress = (e: KeyboardEvent) => {\n if (props.disabled) return;\n const tmpValue = getOutputValue((e.currentTarget as HTMLInputElement).value, props.type);\n props.onKeypress?.(tmpValue, { e });\n };\n\n const onHandlePaste = (e: ClipboardEvent) => {\n if (props.disabled) return;\n // @ts-ignore\n const clipData = e.clipboardData || window.clipboardData;\n props.onPaste?.({ e, pasteValue: clipData?.getData('text/plain') });\n };\n\n const mouseEvent = (v: boolean) => (isHover.value = v);\n\n const onHandleMousewheel = (e: WheelEvent) => props.onWheel?.({ e });\n\n const onInputMouseenter = (e: MouseEvent) => {\n mouseEvent(true);\n props.onMouseenter?.({ e });\n };\n\n const onInputMouseleave = (e: MouseEvent) => {\n mouseEvent(false);\n props.onMouseleave?.({ e });\n };\n\n return {\n isHover,\n handleKeydown,\n handleKeyUp,\n handleKeypress,\n onHandlePaste,\n onHandleMousewheel,\n onInputMouseenter,\n onInputMouseleave,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nexport default {\n /** 多个输入框之间是否需要间隔 */\n separate: Boolean,\n};\n","import { defineComponent, computed } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport inputGroupProps from './input-group-props';\n\nexport default defineComponent({\n name: 'TInputGroup',\n props: inputGroupProps,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('input-group');\n const renderTNodeJSX = useTNodeJSX();\n const CLASS = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--separate`]: props.separate,\n },\n ]);\n return () =>
    {renderTNodeJSX('default')}
    ;\n },\n});\n","import _Input from './input';\nimport _InputGroup from './input-group';\nimport withInstall from '../utils/withInstall';\nimport { InputValue, TdInputProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type InputProps = TdInputProps;\nexport type InputBlurEventParams = Parameters;\nexport type InputFocusEventParams = Parameters;\nexport type StrInputProps = TdInputProps;\nexport type NumberInputProps = TdInputProps;\n\nexport const Input = withInstall(_Input);\nexport const InputGroup = withInstall(_InputGroup);\n\nexport default Input;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdInputNumberProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 文本内容位置,居左/居中/居右 */\n align: {\n type: String as PropType,\n validator(val: TdInputNumberProps['align']): boolean {\n if (!val) return true;\n return ['left', 'center', 'right'].includes(val);\n },\n },\n /** 是否允许输入超过 `max` `min` 范围外的数字。为保障用户体验,仅在失去焦点时进行数字范围矫正。默认允许超出,数字超出范围时,输入框变红提醒 */\n allowInputOverLimit: {\n type: Boolean,\n default: true,\n },\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** [小数位数](https://en.wiktionary.org/wiki/decimal_place) */\n decimalPlaces: {\n type: [Number, Object] as PropType,\n default: undefined as TdInputNumberProps['decimalPlaces'],\n },\n /** 禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 格式化输入框展示值。第二个事件参数 `context.fixedNumber` 表示处理过小数位数 `decimalPlaces` 的数字 */\n format: {\n type: Function as PropType,\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否作为大数使用。JS 支持的最大数字位数是 16 位,超过 16 位的数字需作为字符串大数处理。此时,数据类型必须保持为字符串,否则会丢失数据 */\n largeNumber: Boolean,\n /** 最大值。如果是大数,请传入字符串 */\n max: {\n type: [String, Number] as PropType,\n default: Infinity as TdInputNumberProps['max'],\n },\n /** 最小值。如果是大数,请传入字符串 */\n min: {\n type: [String, Number] as PropType,\n default: -Infinity as TdInputNumberProps['min'],\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdInputNumberProps['size'],\n validator(val: TdInputNumberProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 文本框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdInputNumberProps['status'],\n validator(val: TdInputNumberProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 数值改变步数,可以是小数。如果是大数,请保证数据类型为字符串 */\n step: {\n type: [String, Number] as PropType,\n default: 1 as TdInputNumberProps['step'],\n },\n /** 后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 按钮布局 */\n theme: {\n type: String as PropType,\n default: 'row' as TdInputNumberProps['theme'],\n validator(val: TdInputNumberProps['theme']): boolean {\n if (!val) return true;\n return ['column', 'row', 'normal'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 数字输入框的值。当值为 '' 时,输入框显示为空 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdInputNumberProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdInputNumberProps['value'],\n },\n /** 数字输入框的值。当值为 '' 时,输入框显示为空,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 值变化时触发,`type` 表示触发本次变化的来源 */\n onChange: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 获取焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 最大值或最小值校验结束后触发,`exceed-maximum` 表示超出最大值,`below-minimum` 表示小于最小值 */\n onValidate: Function as PropType,\n};\n","import { isString, isNumber, isObject } from 'lodash-es';\nimport log from '../log/log';\n\nexport type InputNumberDecimalPlaces = number | { enableRound: boolean, places: number };\n\nexport function fillZero(length: number) {\n return new Array(length).fill(0).join('');\n}\n\n/**\n * 大数,是否是一个数字,数字字符包括 - . e [0-9]\n */\nexport function isInputNumber(num: number | string): boolean {\n if (!num) return true;\n if (isNumber(num)) return !Number.isNaN(num);\n const r = /^[0-9|e|E|-]+\\.*[0-9|e|E|-]*$/.test(num);\n if (!r) return false;\n // only allow one [.e] and two [-]\n let eCount = 0;\n let negativeCount = 0;\n let dotCount = 0;\n for (let i = 0, len = num.length; i < len; i++) {\n if (num[i] === '.') {\n dotCount += 1;\n if (dotCount > 1) return false;\n }\n if (/(e|E)+/.test(num[i])) {\n eCount += 1;\n if (eCount > 1) return false;\n }\n if (num[i] === '-') {\n negativeCount += 1;\n if (negativeCount > 2) return false;\n }\n }\n return true;\n}\n\n// 整数,去除前面的无效 0(本身是 0 除外);小数去除末尾的无效 0\nexport function removeInvalidZero(num: string, decimal = false) {\n if (num.indexOf('.') !== -1) {\n log.error('InputNumber', 'num is not a integer number.');\n return num;\n }\n if (!num || (num === '0' && decimal)) return '';\n if (num === '0') return num;\n return (decimal ? num.replace(/0+$/, '') : num.replace(/^0+/, '')) || '0';\n}\n\n/**\n * 大数加法,仅支持正整数(没有精度问题)\n * @param num1 被加数\n * @param num2 加数\n */\nexport function largeIntNumberAdd(num1: string, num2: string, decimal = false): string {\n const number1 = removeInvalidZero(num1, decimal);\n const number2 = removeInvalidZero(num2, decimal);\n const isFirstLarger = number1.length > number2.length;\n const maxNumber = isFirstLarger ? number1 : number2;\n const minNumber = isFirstLarger ? number2 : number1;\n const newNumber: string[] = [];\n const step = [];\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\n const len = decimal ? minNumber.length : maxNumber.length;\n for (let i = len - 1; i >= 0; i--) {\n const minIndex = i - diff;\n // 第一个数,加第二个数,加进位\n const count = Number(maxNumber[i]) + (Number(minNumber[minIndex]) || 0) + (step[i] || 0);\n if (count >= 10) {\n step[i - 1] = 1;\n }\n newNumber.unshift(String(count % 10));\n }\n // 999 + 1 = 1000,之类的进位\n if (step[-1]) {\n newNumber.unshift('1');\n }\n if (decimal) {\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join('');\n }\n return newNumber.join('');\n}\n\n/**\n * 大数加法,支持小数和整数(没有精度问题)\n * @param num1 被加数\n * @param num2 加数\n */\nexport function largePositiveNumberAdd(num1: string, num2: string): string {\n const [intNumber1 = '0', decimalNumber1 = '0'] = num1.split('.');\n const [intNumber2 = '0', decimalNumber2 = '0'] = num2.split('.');\n const integerSum = largeIntNumberAdd(intNumber1, intNumber2);\n // 如果不存在小数,则直接返回整数相加结果\n if (decimalNumber1 === '0' && decimalNumber2 === '0') return integerSum;\n const newDecimalNumber1 = removeInvalidZero(decimalNumber1, true);\n const newDecimalNumber2 = removeInvalidZero(decimalNumber2, true);\n // 小数点相加\n const decimalNumberSum = largeIntNumberAdd(newDecimalNumber1, newDecimalNumber2, true);\n // 组合整数部分和小数部分\n const decimalLength = decimalNumberSum.length;\n // 如果小数相加进位\n if (decimalLength > newDecimalNumber1.length && decimalLength > newDecimalNumber2.length) {\n return [\n removeInvalidZero(largeIntNumberAdd(integerSum, '1')),\n removeInvalidZero(decimalNumberSum.slice(1), true),\n ].filter((v: string) => v).join('.');\n }\n return [\n removeInvalidZero(integerSum),\n removeInvalidZero(decimalNumberSum, true)\n ].filter((v: string) => v).join('.');\n}\n\n/**\n * 比较两个大数的大小,仅正整数有效\n */\nfunction compareLargeIntegerNumber(num1: string, num2: string): 1 | -1 | 0 {\n const number1 = removeInvalidZero(num1);\n const number2 = removeInvalidZero(num2);\n if (number1.length === number2.length) {\n for (let i = 0, len = number1.length; i < len; i++) {\n if (number1[i] > number2[i]) return 1;\n if (number1[i] < number2[i]) return -1;\n }\n return 0;\n }\n return number1.length > number2.length ? 1 : -1;\n}\n\nfunction compareLargeDecimalNumber(num1: string, num2: string) {\n const number1 = num1 && num1 !== '0' ? num1.replace(/0+$/, '') : '0';\n const number2 = num2 && num2 !== '0' ? num2.replace(/0+$/, '') : '0';\n const maxLength = Math.max(number1.length, number2.length);\n for (let i = 0, len = maxLength; i < len; i++) {\n if ((number1[i] || 0) > (number2[i] || 0)) return 1;\n if ((number1[i] || 0) < (number2[i] || 0)) return -1;\n }\n return 0;\n}\n\n/**\n * 2e3 => 2000\n * 0.2e3 => 200\n */\nexport function formatENumber(num: string): string {\n const [num1, num2] = num.split('e');\n if (!num2) return num;\n const [integer, initDecimal = ''] = num.split('.');\n const zeroCount = Number(num2);\n const [decimal] = initDecimal.split('e');\n if (zeroCount > decimal.length) {\n const multipleZero = fillZero(zeroCount - decimal.length);\n return num1.replace(/(^0+|\\.)/g, '') + multipleZero;\n }\n const n1 = integer.replace(/^0+/, '') + decimal.slice(0, zeroCount);\n const d2 = decimal.slice(zeroCount);\n return d2 ? [n1, d2].join('.') : n1;\n}\n\n/**\n * 比较两个大数的大小\n */\nexport function compareLargeNumber(\n num1: string,\n num2: string,\n): 1 | -1 | 0 {\n const [integer1, decimal1] = formatENumber(num1).split('.');\n const [integer2, decimal2] = formatENumber(num2).split('.');\n const result = compareLargeIntegerNumber(integer1.replace('-', ''), integer2.replace('-', ''));\n const integer1IsNegative = integer1.includes('-');\n const integer2IsNegative = integer2.includes('-');\n if (integer1IsNegative && !integer2IsNegative) return -1;\n if (!integer1IsNegative && integer2IsNegative) return 1;\n if (integer1IsNegative && integer2IsNegative) {\n if (result === 0) return 0;\n return result > 0 ? -1 : 1;\n }\n if (result === 0) {\n return compareLargeDecimalNumber(decimal1, decimal2);\n }\n return result;\n}\n\n// 确认是否为无限大/小\nexport function isInfinity(num: number| string) {\n return [-Infinity, Infinity].includes(Number(num));\n}\n\n// 确认是否是大数\nexport function isSafeNumber(num: string | number) {\n return Number(num) < Number.MAX_SAFE_INTEGER && Number(num) > Number.MIN_SAFE_INTEGER;\n}\n\n/**\n * 比较两个数的大小\n */\nexport function compareNumber(\n num1: string | number,\n num2: string | number,\n largeNumber?: boolean,\n) {\n const isSafeNumberCompare = isSafeNumber(num1) && isSafeNumber(num2) && !largeNumber;\n const isInfinityCompare = isInfinity(num1) || isInfinity(num2);\n if (isSafeNumberCompare || isInfinityCompare) {\n // 比较两个非大数或涉及无穷的大小\n if (Number(num1) === Number(num2)) return 0;\n return Number(num1) > Number(num2) ? 1 : -1;\n }\n // 比较两个大数的大小\n return compareLargeNumber(String(num1), String(num2));\n}\n\n/**\n * 大数减法,仅支持整数\n * @param num1 被减数\n * @param num2 减数\n * @param decimal 是否为小数位相减\n */\nexport function largeIntegerNumberSubtract(\n num1: string, num2: string, p?: { decimal?: boolean, stayZero?: boolean }\n): string {\n if (num1 === num2) return '0';\n const { decimal, stayZero } = p || {};\n const number1 = removeInvalidZero(num1);\n const number2 = removeInvalidZero(num2);\n const isFirstLarger = compareLargeIntegerNumber(number1, number2) > 0;\n const maxNumber = isFirstLarger ? number1 : number2;\n const minNumber = isFirstLarger ? number2 : number1;\n const newNumber: string[] = [];\n // step 存储借位信息\n const step = [];\n const diff = decimal ? 0 : maxNumber.length - minNumber.length;\n const len = decimal ? minNumber.length : maxNumber.length;\n for (let i = len - 1; i >= 0; i--) {\n const minIndex = i - diff;\n // 第一个数,减第二个数,减借位\n let count = Number(maxNumber[i]) - (Number(minNumber[minIndex]) || 0) - (step[i] || 0);\n if (count < 0) {\n step[i - 1] = 1;\n count += 10;\n }\n newNumber.unshift(String(count));\n }\n if (decimal) {\n return newNumber.concat(maxNumber.slice(len, maxNumber.length)).join('');\n }\n let finalNumber = newNumber.join('');\n if (!stayZero) {\n finalNumber = finalNumber.replace(/^0+/, '');\n }\n return removeInvalidZero(isFirstLarger ? finalNumber : `-${finalNumber}`);\n}\n\n/**\n * 大数减法,支持整数和小数(无精度问题)\n * @param num1 被减数\n * @param num2 减数\n * @param decimal 是否为小数位相减\n */\nexport function largePositiveNumberSubtract(num1: string, num2: string): string {\n if (num1 === num2) return '0';\n const isFirstLarger = compareNumber(num1, num2, true) > 0;\n const maxNumber = isFirstLarger ? num1 : num2;\n const minNumber = isFirstLarger ? num2 : num1;\n // 整数部分和小数部分分开处理\n const [intNumber1, decimalNumber1 = '0'] = maxNumber.split('.');\n const [intNumber2, decimalNumber2 = '0'] = minNumber.split('.');\n let integerNumber = largeIntegerNumberSubtract(intNumber1, intNumber2);\n // 如果不存在小数,则直接返回整数相加结果\n if (decimalNumber1 === '0' && decimalNumber2 === '0') {\n return isFirstLarger ? integerNumber : `-${integerNumber}`;\n }\n // 小数点相减\n let decimalNumber = '';\n let addOneNumber = decimalNumber1;\n // 第一个数字的小数位数比第二个少,需补足 0\n if (decimalNumber1.length < decimalNumber2.length) {\n addOneNumber = `${decimalNumber1}${fillZero(decimalNumber2.length - decimalNumber1.length)}`;\n }\n // 第一个小数位更小,是否需要借位\n if (compareLargeDecimalNumber(addOneNumber, decimalNumber2) >= 0) {\n decimalNumber = largeIntegerNumberSubtract(addOneNumber, decimalNumber2, { decimal: true });\n } else {\n if (decimalNumber1.length < decimalNumber2.length || decimalNumber1 === '0') {\n decimalNumber = largeIntegerNumberSubtract(`1${addOneNumber}`, decimalNumber2, { stayZero: true });\n decimalNumber = fillZero(decimalNumber2.length - decimalNumber.length) + decimalNumber;\n } else {\n decimalNumber = largeIntegerNumberSubtract(decimalNumber1, decimalNumber2, { decimal: true });\n }\n integerNumber = largeIntegerNumberSubtract(integerNumber, '1');\n }\n const finalNumber = decimalNumber ? [integerNumber, decimalNumber].join('.') : integerNumber;\n return isFirstLarger ? finalNumber : `-${finalNumber}`;\n}\n\n/**\n * -0.6 - 0.8 => -(0.6 + 0.8)\n * -0.6 - (-0.8) => 0.8 - 0.6\n * 0.6 - (-0.8) => 0.6 + 0.8\n * 0.6 - 0.8 => 0.6 - 0.8\n */\nexport function largeNumberSubtract(num1: string, num2: string): string {\n const isFirstNegative = num1[0] === '-';\n const isSecondNegative = num2[0] === '-';\n if (isFirstNegative && !isSecondNegative) {\n const r = largePositiveNumberAdd(num1.slice(1), num2);\n return `-${r}`;\n }\n if (isFirstNegative && isSecondNegative) {\n return largePositiveNumberSubtract(num2.slice(1), num1.slice(1));\n }\n if (!isFirstNegative && isSecondNegative) {\n return largePositiveNumberAdd(num1, num2.slice(1));\n }\n return largePositiveNumberSubtract(num1, num2);\n}\n\n/**\n * -0.6 + 0.8 => 0.8 - 0.6\n * -0.6 + (-0.8) => -(0.6 + 0.8)\n * 0.6 + (-0.8) => 0.6 - 0.8\n * 0.6 + 0.8 => 0.6 + 0.8\n */\nexport function largeNumberAdd(num1: string, num2: string): string {\n const isFirstNegative = num1[0] === '-';\n const isSecondNegative = num2[0] === '-';\n if (isFirstNegative && !isSecondNegative) {\n return largePositiveNumberSubtract(num2, num1.slice(1));\n }\n if (isFirstNegative && isSecondNegative) {\n const r = largePositiveNumberAdd(num2.slice(1), num1.slice(1));\n return `-${r}`;\n }\n if (!isFirstNegative && isSecondNegative) {\n return largePositiveNumberSubtract(num1, num2.slice(1));\n }\n return largePositiveNumberAdd(num1, num2);\n}\n\n/**\n * 格式化小数,并且可以控制小数点后的位数和是否进行四舍五入。\n *\n * @param {number} num - 要格式化的数字。\n * @param {number} places - 小数点后的位数。\n * @param {boolean} rounding - 是否进行四舍五入。\n * @returns {string} 格式化后的数字字符串。\n */\nexport function formatDecimal(num: number, places: number, enableRound: boolean = true) {\n // 开启四舍五入 直接用 toFixed\n if (enableRound) {\n return num.toFixed(places);\n }\n\n const [integer, decimal] = num.toString().split('.');\n // 保留 0 位小数\n if (places === 0) {\n return integer;\n }\n // 补足小数位数\n if (decimal) {\n let decimalNumber = decimal.slice(0, places);\n if (decimal.length < places) {\n decimalNumber += fillZero(places - decimal.length);\n }\n return [integer, decimalNumber].join('.');\n }\n\n return [integer, fillZero(places)].join('.');\n}\n\nexport function decimalPlacesToFixedNum(num: number, decimalPlaces: InputNumberDecimalPlaces) {\n if (isObject(decimalPlaces)) {\n return formatDecimal(num, decimalPlaces.places, decimalPlaces.enableRound ?? true);\n }\n return formatDecimal(num, decimalPlaces, true);\n}\n\n/**\n * 大数保留 N 位小数(没有精度问题)\n * @param {String} number 大数(只能使用字符串表示)\n * @param {Number} decimalPlaces 保留的小数位数\n * @param {Boolean} largeNumber 是否为大数\n */\nexport function largeNumberToFixed(\n number: string | number,\n decimalPlaces: InputNumberDecimalPlaces = 0,\n largeNumber: boolean = true,\n): string {\n if (Number.isNaN(Number(number))) return '';\n if (!largeNumber) {\n return decimalPlacesToFixedNum(Number(number), decimalPlaces);\n }\n const places = isObject(decimalPlaces) ? decimalPlaces.places : decimalPlaces;\n const enableRound = isObject(decimalPlaces) ? (decimalPlaces.enableRound ?? true) : true;\n if (!isString(number)) return String(number);\n // eslint-disable-next-line prefer-const\n let [num1, num2] = number.split('.');\n // 如果不存在小数点,则补足位数\n if (!num2) {\n return (places > 0 && enableRound) ? [number, (fillZero(places))].join('.') : number;\n }\n // 存在小数点,保留 0 位小数,灵活配置四舍五入\n if (places === 0) {\n return (enableRound && Number(num2[0]) >= 5) ? largePositiveNumberAdd(num1, '1') : num1;\n }\n // 存在小数点,保留 > 0 位小数,灵活配置四舍五入\n let decimalNumber = num2.slice(0, places);\n if (num2.length < places) {\n decimalNumber += (fillZero(places - num2.length));\n } else if (enableRound) {\n // 用于判断是否处于 1.08 这种小数为0开始的边界情况\n const leadZeroNum = decimalNumber.match(/^0+/)?.[0].length;\n // 用于判断是否处于 0.99/1.99 等需要往非0位进位的场景\n const leadNineNum = decimalNumber.match(/^9+/);\n // 决定是否需要四舍五入\n const needAdded = Number(num2[places]) >= 5;\n\n // 四舍五入后的结果\n decimalNumber = needAdded\n ? largePositiveNumberAdd(decimalNumber, '1')\n : decimalNumber;\n\n // 边界场景1(1.08 这种小数为0开始的边界情况):计算后有误判的可能,如008 +1 误判为 8+1,需要手动补 0\n if (\n leadZeroNum\n && needAdded\n && leadZeroNum + decimalNumber.length >= places\n ) {\n decimalNumber = `${fillZero(\n places - decimalNumber.length\n )}${decimalNumber}`;\n }\n // 边界场景2:(0.99 这种可能进位的边界情况):计算后有误判的可能,如995 四舍五入后需进位\n if (leadNineNum && decimalNumber.length > places) {\n num1 = (Number(num1) + 1).toString();\n decimalNumber = fillZero(places);\n }\n }\n return [num1, decimalNumber].join('.');\n}\n","import { isUndefined, isString, isNumber } from 'lodash-es';\n/** 普通数相关方法 */\nimport {\n compareNumber,\n formatENumber,\n largeNumberToFixed,\n isInputNumber,\n largeNumberAdd,\n largeNumberSubtract,\n} from './large-number';\nimport log from '../log';\nimport type { InputNumberDecimalPlaces } from './large-number';\n\nexport * from './large-number';\n\nexport type NumberType = number | string;\n\n// 小于最大值,才允许继续添加\nexport function canAddNumber(\n num: NumberType,\n max: NumberType,\n largeNumber = false\n): boolean {\n if (!num && num !== 0) return true;\n if (largeNumber && isString(num)) {\n return compareNumber(num, max, largeNumber) < 0;\n }\n return num < max;\n}\n\n// 大于最小值,才允许继续减少\nexport function canReduceNumber(\n num: NumberType,\n min: NumberType,\n largeNumber = false\n): boolean {\n if (!num && num !== 0) return true;\n if (largeNumber && isString(num)) {\n return compareNumber(num, min, largeNumber) > 0;\n }\n return num > min;\n}\n\n/**\n * 将数字控制在 max 和 min 之间\n */\nexport function putInRangeNumber(\n val: NumberType,\n params: {\n max?: NumberType;\n min?: NumberType;\n lastValue?: NumberType;\n largeNumber?: boolean;\n }\n) {\n if (val === '') return undefined;\n const { max, min, lastValue, largeNumber } = params;\n if (!isInputNumber(val)) return lastValue;\n if (largeNumber && (isString(max) || max === Infinity) && (isString(min) || min === -Infinity)) {\n if (compareNumber(max, val, largeNumber) < 0) return max;\n if (compareNumber(min, val, largeNumber) > 0) return min;\n return val;\n }\n return Math.max(Number(min), Math.min(Number(max), Number(val)));\n}\n\n/**\n * 仅支持正数,小数加法精度处理,小数部分和整数部分分开处理\n */\nexport function positiveAdd(num1: number, num2: number): number {\n if (!num1 || !num2) return (num1 || 0) + (num2 || 0);\n const r1 = num1.toString().split('.')[1]?.length || 0;\n const r2 = num2.toString().split('.')[1]?.length || 0;\n // 整数不存在精度问题,直接返回\n if (!r1 && !r2) return num1 + num2;\n let newNumber1 = num1;\n let newNumber2 = num2;\n const diff = Math.abs(r1 - r2);\n const digit = 10 ** Math.max(r1, r2);\n if (diff > 0) {\n const cm = 10 ** diff;\n if (r1 > r2) {\n newNumber1 = Number(num1.toString().replace('.', ''));\n newNumber2 = Number(num2.toString().replace('.', '')) * cm;\n } else {\n newNumber1 = Number(num1.toString().replace('.', '')) * cm;\n newNumber2 = Number(num2.toString().replace('.', ''));\n }\n } else {\n newNumber1 = Number(num1.toString().replace('.', ''));\n newNumber2 = Number(num2.toString().replace('.', ''));\n }\n return (newNumber1 + newNumber2) / digit;\n}\n\n/**\n * 正数,小数减法精度处理,小数部分和整数部分分开处理\n */\nexport function positiveSubtract(num1: number, num2: number): number {\n if (!num1 || !num2) return (num1 || 0) - (num2 || 0);\n const r1 = num1.toString().split('.')[1]?.length || 0;\n const r2 = num2.toString().split('.')[1]?.length || 0;\n const digit = 10 ** Math.max(r1, r2);\n const n = r1 >= r2 ? r1 : r2;\n return Number(((num1 * digit - num2 * digit) / digit).toFixed(n));\n}\n\n/**\n * 支持正数、负数、小数等全部数字的加法\n * -0.766 + 1 => 1 - 0.766\n * -1 + (-0.766) => - (1 + 0.766)\n * 1 + (-0.766) => 1 - 0.766\n * 1 + 0.766 => 1 + 0.766\n */\nexport function add(num1: number, num2: number): number {\n if (num1 < 0 && num2 > 0) return positiveSubtract(num2, Math.abs(num1));\n if (num1 < 0 && num2 < 0) return positiveAdd(Math.abs(num1), Math.abs(num2)) * -1;\n if (num1 > 0 && num2 < 0) return positiveSubtract(num1, Math.abs(num2));\n return positiveAdd(num1, num2);\n}\n\n/**\n * 支持正数、负数、小数等全部数字的减法\n * -0.766 - 1 => - (1 + 0.766)\n * -1 - (-0.766) => 0.766 - 1\n * 1 - (-0.766) => 1 + 0.766\n * 1 - 0.766 => 1 - 0.766\n */\nexport function subtract(num1: number, num2: number): number {\n if (num1 < 0 && num2 > 0) return positiveAdd(Math.abs(num1), num2) * -1;\n if (num1 < 0 && num2 < 0) return positiveSubtract(Math.abs(num2), Math.abs(num1));\n if (num1 > 0 && num2 < 0) return positiveAdd(num1, Math.abs(num2));\n return positiveSubtract(num1, num2);\n}\n\nexport function getStepValue(p: {\n op: 'add' | 'reduce';\n step: NumberType;\n max?: NumberType;\n min?: NumberType;\n lastValue?: NumberType;\n largeNumber?: boolean;\n}) {\n const { op, step, lastValue, max, min, largeNumber } = p;\n if (Number(step) <= 0) {\n log.error('InputNumber', 'step must be larger than 0.');\n return lastValue;\n }\n const tStep = isNumber(step) ? String(step) : step;\n let newVal;\n if (op === 'add') {\n if (largeNumber && isString(lastValue)) {\n newVal = largeNumberAdd(String(lastValue), String(tStep));\n } else {\n newVal = add(Number(lastValue || 0), Number(step));\n }\n } else if (op === 'reduce') {\n if (largeNumber && isString(lastValue)) {\n newVal = largeNumberSubtract(String(lastValue), String(tStep));\n } else {\n newVal = subtract(Number(lastValue || 0), Number(step));\n }\n }\n if (isUndefined(lastValue)) {\n newVal = putInRangeNumber(newVal, { max, min, lastValue, largeNumber });\n }\n return largeNumber ? newVal : Number(newVal);\n}\n\nexport type InputNumberErrorType =\n | 'exceed-maximum'\n | 'below-minimum'\n | undefined;\n\n/**\n * 最大值和最小值校验\n */\nexport function getMaxOrMinValidateResult(p: {\n largeNumber: boolean;\n value: NumberType;\n max: NumberType;\n min: NumberType;\n}): InputNumberErrorType {\n const { largeNumber, value, max, min } = p;\n if (isUndefined(value) || isUndefined(largeNumber)) return undefined;\n if (largeNumber && isNumber(value)) {\n log.warn('InputNumber', 'largeNumber value must be a string.');\n }\n let error: InputNumberErrorType;\n if (compareNumber(value, max, largeNumber) > 0) {\n error = 'exceed-maximum';\n } else if (compareNumber(value, min, largeNumber) < 0) {\n error = 'below-minimum';\n } else {\n error = undefined;\n }\n return error;\n}\n\nexport const specialCode = ['-', '.', 'e', 'E', '+'];\n\n/**\n * 是否允许输入当前字符,输入字符校验\n * 1.23E+08 就表示 1.23 乘 10 的 8 次方\n * 2e3 表示 2 乘 10 的 3 次方\n */\nexport function canInputNumber(number: string, largeNumber: boolean) {\n if (['', null, undefined].includes(number)) return true;\n // 数字最前方不允许出现连续的两个 0\n if (number.slice(0, 2) === '00') return false;\n // 不能出现空格\n if (number.match(/\\s/g)) return false;\n // 只能出现一个点(.)\n if (number.match(/\\./g)?.length > 1) return false;\n // 只能出现一个e(e)\n if (number.match(/e/g)?.length > 1) return false;\n // 只能出现一个负号(-)或 一个正号(+),并且在第一个位置;但允许 3e+10 这种形式\n const tmpNumber = number.slice(1);\n if (/(\\+|-)/.test(tmpNumber) && !/e+/i.test(tmpNumber)) return false;\n // 允许输入数字字符\n const isNumber = (largeNumber && isInputNumber(number)) || !Number.isNaN(Number(number));\n if (!isNumber && !specialCode.includes(number.slice(-1))) return false;\n if (/e/i.test(number) && !/\\de/i.test(number)) return false;\n return true;\n}\n\n/**\n * 是否允许设置组件新值,触发 onChange 事件\n */\nexport function canSetValue(number: string, lastNumber: number) {\n return parseFloat(number) !== lastNumber && !Number.isNaN(Number(number));\n}\n\n/**\n * 1. 格式化未输入完成的数字,如:如:2e/2+/2.等\n * 2. 处理小数点 decimalPlaces\n * 3. 格式化大数字 formatENumber\n */\nexport function formatUnCompleteNumber(\n number: string,\n extra: {\n decimalPlaces?: InputNumberDecimalPlaces;\n largeNumber?: boolean;\n isToFixed?: boolean;\n } = {}\n): number | string {\n if (['', null, undefined].includes(number) || !/\\d+/.test(number)) return undefined;\n const { decimalPlaces, largeNumber, isToFixed } = extra;\n let newNumber = number.replace(/[.|+|\\-|e]$/, '');\n if (largeNumber) {\n newNumber = formatENumber(newNumber);\n }\n if (decimalPlaces !== undefined) {\n newNumber = largeNumberToFixed(newNumber, decimalPlaces, largeNumber);\n }\n if (largeNumber) return newNumber;\n return isToFixed ? newNumber : parseFloat(newNumber);\n}\n\n/**\n * 对千分位进行处理 111,111,222 -> 111111222\n */\nexport function formatThousandths(number: string) {\n const thousandthsRegExp = /^[-+]?\\d{1,3}(,\\d{3})*(\\.(\\d*))?$/;\n if (thousandthsRegExp.test(number)) return number.replace(/,/g, '');\n return number;\n}\n","import { computed, ref, toRefs, watch } from 'vue';\nimport useCommonClassName from '../../hooks/useCommonClassName';\nimport useVModel from '../../hooks/useVModel';\nimport { InputNumberValue, TdInputNumberProps } from '../type';\nimport { useReadonly } from '../../hooks/useReadonly';\n\n// 计算逻辑,统一到 common 中,方便各框架复用(如超过 16 位的大数处理)\nimport {\n canAddNumber,\n canInputNumber,\n canReduceNumber,\n getMaxOrMinValidateResult,\n getStepValue,\n formatThousandths,\n canSetValue,\n formatUnCompleteNumber,\n largeNumberToFixed,\n} from '@tdesign/common-js/input-number/number';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { StrInputProps } from '../../input';\n\n/**\n * 独立一个组件 Hook 方便用户直接使用相关逻辑 自定义任何样式的数字输入框\n */\nexport default function useInputNumber(props: TdInputNumberProps) {\n const { classPrefix, sizeClassNames, statusClassNames } = useCommonClassName();\n const { value, modelValue, max, min } = toRefs(props);\n // 统一处理受控、非受控、语法糖 v-model 等\n const [tValue, setTValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const inputRef = ref();\n const userInput = ref('');\n\n const tDisabled = useDisabled();\n\n const isReadonly = useReadonly();\n\n const isError = ref<'exceed-maximum' | 'below-minimum'>();\n\n const disabledReduce = computed(\n () => tDisabled.value || !canReduceNumber(tValue.value, props.min, props.largeNumber),\n );\n\n const disabledAdd = computed(() => tDisabled.value || !canAddNumber(tValue.value, props.max, props.largeNumber));\n\n const wrapClasses = computed(() => [\n `${classPrefix.value}-input-number`,\n sizeClassNames[props.size],\n {\n [statusClassNames.disabled]: tDisabled.value,\n [`${classPrefix.value}-is-controls-right`]: props.theme === 'column',\n [`${classPrefix.value}-input-number--${props.theme}`]: props.theme,\n [`${classPrefix.value}-input-number--auto-width`]: props.autoWidth,\n },\n ]);\n\n const reduceClasses = computed(() => [\n `${classPrefix.value}-input-number__decrease`,\n { [statusClassNames.disabled]: disabledReduce.value },\n ]);\n\n const addClasses = computed(() => [\n `${classPrefix.value}-input-number__increase`,\n { [statusClassNames.disabled]: disabledAdd.value },\n ]);\n\n const getUserInput = (value: InputNumberValue) => {\n if (!value && value !== 0) return '';\n let inputStr = value || value === 0 ? String(value) : '';\n if (!inputRef.value?.inputRef?.contains(document.activeElement)) {\n const num = formatUnCompleteNumber(inputStr, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber,\n isToFixed: true,\n });\n inputStr = num || num === 0 ? String(num) : '';\n if (props.format) {\n inputStr = String(props.format(value, { fixedNumber: inputStr }));\n }\n }\n return inputStr;\n };\n\n watch(\n tValue,\n (val) => {\n const { largeNumber, decimalPlaces } = props;\n const inputValue = [undefined, null].includes(val) ? '' : String(val);\n // userInput.value 为非合法数字,则表示用户正在输入,此时无需处理\n if (!largeNumber && !Number.isNaN(userInput.value)) {\n if (parseFloat(userInput.value) !== val) {\n userInput.value = getUserInput(inputValue);\n }\n const fixedNumber = Number(largeNumberToFixed(inputValue, decimalPlaces, largeNumber));\n if (\n decimalPlaces !== undefined &&\n ![undefined, null].includes(val) &&\n Number(fixedNumber) !== Number(tValue.value)\n ) {\n setTValue(fixedNumber, { type: 'props', e: undefined });\n }\n }\n if (largeNumber) {\n userInput.value = getUserInput(inputValue);\n\n if (decimalPlaces !== undefined && largeNumberToFixed(inputValue, decimalPlaces, largeNumber) !== val) {\n let completeValue = inputValue;\n if (!inputRef.value?.inputRef?.contains(document.activeElement)) {\n // isToFixed为true 只可能是string\n completeValue = formatUnCompleteNumber(completeValue, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber,\n isToFixed: true,\n }) as string;\n }\n setTValue(completeValue, { type: 'props', e: undefined });\n }\n }\n },\n { immediate: true },\n );\n\n watch(\n [tValue, max, min],\n () => {\n // @ts-ignore 没有输入完成,则无需校验\n if ([undefined, '', null].includes(tValue.value)) return;\n const { max, min, largeNumber } = props;\n const error = getMaxOrMinValidateResult({\n value: tValue.value,\n largeNumber,\n max,\n min,\n });\n isError.value = error;\n props.onValidate?.({ error });\n },\n { immediate: true },\n );\n\n const handleStepValue = (op: 'add' | 'reduce') => {\n const newValue = getStepValue({\n op,\n step: props.step,\n max: props.max,\n min: props.min,\n lastValue: tValue.value,\n largeNumber: props.largeNumber,\n });\n const { largeNumber, max, min } = props;\n const overLimit = getMaxOrMinValidateResult({\n value: newValue,\n largeNumber,\n max,\n min,\n });\n return {\n overLimit,\n newValue,\n };\n };\n\n const handleReduce = (e: KeyboardEvent | MouseEvent) => {\n if (disabledReduce.value || isReadonly.value) return;\n const r = handleStepValue('reduce');\n if (r.overLimit && !props.allowInputOverLimit) return;\n setTValue(r.newValue, { type: 'reduce', e });\n };\n\n const handleAdd = (e: KeyboardEvent | MouseEvent) => {\n if (disabledAdd.value || isReadonly.value) return;\n const r = handleStepValue('add');\n if (r.overLimit && !props.allowInputOverLimit) return;\n setTValue(r.newValue, { type: 'add', e });\n };\n\n const onInnerInputChange: StrInputProps['onChange'] = (inputValue, { e }) => {\n // 千分位处理\n const val = formatThousandths(inputValue);\n if (!canInputNumber(val, props.largeNumber)) return;\n\n userInput.value = val;\n\n if (props.largeNumber) {\n setTValue(val, { type: 'input', e });\n return;\n }\n\n if (canSetValue(String(val), Number(tValue.value))) {\n const newVal = val === '' ? undefined : Number(val);\n setTValue(newVal, { type: 'input', e });\n }\n };\n\n const handleBlur = (value: string, ctx: { e: FocusEvent }) => {\n const { largeNumber, max, min, decimalPlaces } = props;\n if (!props.allowInputOverLimit && tValue.value !== undefined) {\n const r = getMaxOrMinValidateResult({ value: tValue.value, largeNumber, max, min });\n if (r === 'below-minimum') {\n setTValue(min, { type: 'blur', e: ctx.e });\n props.onBlur?.(min, ctx);\n return;\n }\n if (r === 'exceed-maximum') {\n setTValue(max, { type: 'blur', e: ctx.e });\n props.onBlur?.(max, ctx);\n return;\n }\n }\n const newValue = formatUnCompleteNumber(value, {\n decimalPlaces,\n largeNumber,\n });\n userInput.value = getUserInput(newValue);\n\n if (newValue !== tValue.value) {\n setTValue(newValue, { type: 'blur', e: ctx.e });\n }\n props.onBlur?.(newValue, ctx);\n };\n\n const handleFocus = (value: string, ctx: { e: FocusEvent }) => {\n userInput.value = tValue.value || tValue.value === 0 ? String(tValue.value) : '';\n props.onFocus?.(value, ctx);\n };\n\n const handleKeydown = (value: string, ctx: { e: KeyboardEvent }) => {\n if (tDisabled.value) return;\n const { e } = ctx;\n const keyEvent = {\n ArrowUp: handleAdd,\n ArrowDown: handleReduce,\n };\n const code = (e.code || e.key) as keyof typeof keyEvent;\n if (keyEvent[code] !== undefined) {\n keyEvent[code](e);\n }\n props.onKeydown?.(value, ctx);\n };\n\n const handleKeyup = (value: string, ctx: { e: KeyboardEvent }) => {\n props.onKeyup?.(value, ctx);\n };\n\n const handleKeypress = (value: string, ctx: { e: KeyboardEvent }) => {\n props.onKeypress?.(value, ctx);\n };\n\n const handleEnter = (value: string, ctx: { e: KeyboardEvent }) => {\n userInput.value = getUserInput(value);\n const newValue = formatUnCompleteNumber(value, {\n decimalPlaces: props.decimalPlaces,\n largeNumber: props.largeNumber,\n });\n if (newValue !== value && String(newValue) !== value) {\n setTValue(newValue, { type: 'enter', e: ctx.e });\n }\n props.onEnter?.(newValue, ctx);\n };\n\n const focus = () => {\n if (tDisabled.value || isReadonly.value) return;\n (inputRef.value as any).focus();\n };\n\n const blur = () => {\n (inputRef.value as any).blur();\n };\n\n const listeners = {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onKeydown: handleKeydown,\n onKeyup: handleKeyup,\n onKeypress: handleKeypress,\n onEnter: handleEnter,\n onClick: focus,\n };\n\n return {\n classPrefix,\n wrapClasses,\n reduceClasses,\n addClasses,\n tDisabled,\n isError,\n listeners,\n userInput,\n tValue,\n inputRef,\n focus,\n blur,\n handleReduce,\n handleAdd,\n onInnerInputChange,\n isReadonly,\n };\n}\n","import { defineComponent, SetupContext } from 'vue';\nimport {\n AddIcon as TdAddIcon,\n RemoveIcon as TdRemoveIcon,\n ChevronDownIcon as TdChevronDownIcon,\n ChevronUpIcon as TdChevronUpIcon,\n} from 'tdesign-icons-vue-next';\nimport TButton from '../button';\nimport TInput from '../input';\nimport props from './props';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { TdInputNumberProps } from './type';\nimport useInputNumber from './hooks/useInputNumber';\nimport { useTNodeJSX } from '../hooks';\n\nexport default defineComponent({\n name: 'TInputNumber',\n props,\n // 保持纯净(逻辑和节点渲染分开)\n setup(props: TdInputNumberProps, context: SetupContext) {\n const renderTNodeJSX = useTNodeJSX();\n const { AddIcon, RemoveIcon, ChevronDownIcon, ChevronUpIcon } = useGlobalIcon({\n AddIcon: TdAddIcon,\n RemoveIcon: TdRemoveIcon,\n ChevronDownIcon: TdChevronDownIcon,\n ChevronUpIcon: TdChevronUpIcon,\n });\n const p = useInputNumber(props);\n const { inputRef } = p;\n\n context.expose({ ...p });\n\n return () => {\n const reduceIcon =\n props.theme === 'column' ? : ;\n const addIcon = props.theme === 'column' ? : ;\n const status = p.isError.value ? 'error' : props.status;\n const classPrefix = p.classPrefix.value;\n const tipsNode = renderTNodeJSX('tips');\n\n return (\n
    \n {props.theme !== 'normal' && (\n reduceIcon}\n />\n )}\n \n {props.theme !== 'normal' && (\n addIcon}\n />\n )}\n {tipsNode && (\n
    {tipsNode}
    \n )}\n
    \n );\n };\n },\n});\n","import _InputNumber from './input-number';\nimport withInstall from '../utils/withInstall';\nimport { TdInputNumberProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type InputNumberProps = TdInputNumberProps;\n\nexport const InputNumber = withInstall(_InputNumber);\nexport default InputNumber;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSelectInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入 */\n allowInput: Boolean,\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 标签过多的情况下,折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 `collapsedItems` 自定义。`value` 表示所有标签值,`collapsedSelectedItems` 表示折叠标签值,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否禁用 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined as TdSelectInputProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n },\n /** 定义字段别名,示例:`{ label: 'text', value: 'id', children: 'list' }` */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否处于加载状态 */\n loading: Boolean,\n /** 最小折叠数量,用于标签数量过多的情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否为多选模式,默认为单选 */\n multiple: Boolean,\n /** 下拉框内容,可完全自定义 */\n panel: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: '',\n },\n /** 透传 Popup 浮层组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示下拉框,非受控属性 */\n defaultPopupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdSelectInputProps['size'],\n validator(val: TdSelectInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdSelectInputProps['status'],\n validator(val: TdSelectInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 多选场景下,自定义选中标签的内部内容。注意和 `valueDisplay` 区分,`valueDisplay` 是用来定义全部标签内容,而非某一个标签 */\n tag: {\n type: [String, Function] as PropType,\n },\n /** 透传 TagInput 组件全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 全部标签值。值为数组表示多个标签,值为非数组表示单个数值 */\n value: {\n type: [String, Number, Boolean, Object, Array, Date] as PropType,\n default: undefined as TdSelectInputProps['value'],\n },\n /** 自定义值呈现的全部内容,参数为所有标签的值 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 失去焦点时触发,`context.inputValue` 表示输入框的值;`context.tagInputValue` 表示标签输入框的值 */\n onBlur: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 按键按下 Enter 时触发 */\n onEnter: Function as PropType,\n /** 聚焦时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发等 */\n onInputChange: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n /** 粘贴事件,`pasteValue` 表示粘贴板的内容 */\n onPaste: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 值变化时触发,参数 `context.trigger` 表示数据变化的触发来源;`context.index` 指当前变化项的下标;`context.item` 指当前变化项;`context.e` 表示事件参数 */\n onTagChange: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTagInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 标签过多的情况下,折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedSelectedItems` 表示折叠的标签,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否禁用标签输入框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 拖拽调整标签顺序 */\n dragSort: Boolean,\n /** 标签超出时的呈现方式,有两种:横向滚动显示 和 换行显示 */\n excessTagsDisplayType: {\n type: String as PropType,\n default: 'break-line' as TdTagInputProps['excessTagsDisplayType'],\n validator(val: TdTagInputProps['excessTagsDisplayType']): boolean {\n if (!val) return true;\n return ['scroll', 'break-line'].includes(val);\n },\n },\n /** 透传 Input 输入框组件全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined as TdTagInputProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n default: '' as TdTagInputProps['defaultInputValue'],\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 最大允许输入的标签数量 */\n max: {\n type: Number,\n },\n /** 最小折叠数量,用于标签数量过多的情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏标签移除按钮和输入框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTagInputProps['size'],\n validator(val: TdTagInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n validator(val: TdTagInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 自定义标签的内部内容,每一个标签的当前值。注意和 `valueDisplay` 区分,`valueDisplay` 是用来定义全部标签内容,而非某一个标签 */\n tag: {\n type: [String, Function] as PropType,\n },\n /** 透传 Tag 组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 值 */\n value: {\n type: Array as PropType,\n default: undefined as TdTagInputProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTagInputProps['value'],\n },\n /** 值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdTagInputProps['defaultValue'] => [],\n },\n /** 自定义值呈现的全部内容,参数为所有标签的值 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 值变化时触发,参数 `context.trigger` 表示数据变化的触发来源;`context.index` 指当前变化项的下标;`context.item` 指当前变化项;`context.e` 表示事件参数 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 点击组件时触发 */\n onClick: Function as PropType,\n /** 【开发中】拖拽排序时触发 */\n onDragSort: Function as PropType,\n /** 按键按下 Enter 时触发 */\n onEnter: Function as PropType,\n /** 聚焦时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、回车键触发等 */\n onInputChange: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n /** 粘贴事件,`pasteValue` 表示粘贴板的内容 */\n onPaste: Function as PropType,\n /** 移除单个标签时触发 */\n onRemove: Function as PropType,\n};\n","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\nfunction _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n}\nfunction _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nvar matchers = function () {\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n}();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n}\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTagProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 标签是否可关闭 */\n closable: Boolean,\n /** 自定义标签颜色 */\n color: {\n type: String,\n default: '',\n },\n /** 组件子元素 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 组件子元素,同 `content` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态 */\n disabled: Boolean,\n /** 标签中的图标,可自定义图标呈现 */\n icon: {\n type: Function as PropType,\n default: undefined,\n },\n /** 标签最大宽度,宽度超出后会出现省略号。示例:'50px' / 80 */\n maxWidth: {\n type: [String, Number] as PropType,\n },\n /** 标签类型,有三种:方形、圆角方形、标记型 */\n shape: {\n type: String as PropType,\n default: 'square' as TdTagProps['shape'],\n validator(val: TdTagProps['shape']): boolean {\n if (!val) return true;\n return ['square', 'round', 'mark'].includes(val);\n },\n },\n /** 标签尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTagProps['size'],\n validator(val: TdTagProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 组件风格,用于描述组件不同的应用场景 */\n theme: {\n type: String as PropType,\n default: 'default' as TdTagProps['theme'],\n validator(val: TdTagProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'primary', 'warning', 'danger', 'success'].includes(val);\n },\n },\n /** 标签标题,在标签hover时展示,默认为标签内容 */\n title: {\n type: String,\n default: '',\n },\n /** 标签风格变体 */\n variant: {\n type: String as PropType,\n default: 'dark' as TdTagProps['variant'],\n validator(val: TdTagProps['variant']): boolean {\n if (!val) return true;\n return ['dark', 'light', 'outline', 'light-outline'].includes(val);\n },\n },\n /** 点击时触发 */\n onClick: Function as PropType,\n /** 如果关闭按钮存在,点击关闭按钮时触发 */\n onClose: Function as PropType,\n};\n","import { computed, defineComponent, getCurrentInstance, h, VNode } from 'vue';\nimport { CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\nimport { isString } from 'lodash-es';\nimport tinycolor from 'tinycolor2';\n\nimport props from './props';\nimport { useConfig, usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { Styles } from '../common';\n\nexport default defineComponent({\n name: 'TTag',\n props,\n setup(props) {\n const { globalConfig: tagGlobalConfig } = useConfig('tag');\n const COMPONENT_NAME = usePrefixClass('tag');\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const { SIZE } = useCommonClassName();\n const { vnode } = getCurrentInstance();\n\n const tagClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}--${props.theme}`,\n `${COMPONENT_NAME.value}--${props.variant}`,\n {\n [`${COMPONENT_NAME.value}--ellipsis`]: props.maxWidth,\n [`${COMPONENT_NAME.value}--close`]: props.closable,\n [`${COMPONENT_NAME.value}--disabled`]: props.disabled,\n [SIZE.value[props.size]]: props.size !== 'medium',\n },\n props.shape !== 'square' && `${COMPONENT_NAME.value}--${props.shape}`,\n ];\n });\n const tagStyle = computed(() => {\n return getTagColorStyle();\n });\n\n const textStyle = computed(() => {\n if (!props.maxWidth) return {};\n\n return {\n maxWidth: isNaN(Number(props.maxWidth)) ? String(props.maxWidth) : `${props.maxWidth}px`,\n };\n });\n\n const getTagColorStyle = () => {\n const { color, variant } = props;\n if (!color) return {};\n\n const luminance = tinycolor(color).getLuminance();\n\n const style: Styles = {\n color: luminance > 0.5 ? 'black' : 'white',\n };\n\n if (variant === 'outline' || variant === 'light-outline') {\n style.borderColor = color;\n }\n if (variant !== 'outline') {\n const getLightestShade = () => {\n const { r, g, b } = tinycolor(color).toRgb();\n // alpha 0.1 is designed by @wen1kang\n return `rgba(${r}, ${g}, ${b}, 0.1)`;\n };\n style.backgroundColor = variant === 'dark' ? color : getLightestShade();\n }\n if (variant !== 'dark') {\n style.color = color;\n }\n return style;\n };\n\n const handleClick = (e: MouseEvent) => {\n if (props.disabled) return;\n props.onClick?.({ e });\n };\n\n const getCloseIcon = () => {\n if (!props.closable) return null;\n const iconClassName = `${COMPONENT_NAME.value}__icon-close`;\n if (tagGlobalConfig.value.closeIcon) {\n return h(tagGlobalConfig.value.closeIcon(h) as VNode, { class: iconClassName });\n }\n return (\n {\n if (e) e.stopPropagation();\n props.onClose?.({ e });\n }}\n class={iconClassName}\n />\n );\n };\n\n const renderTitle = (tagContent: string) => {\n if (!props.maxWidth) {\n return undefined;\n }\n\n const vProps = vnode.props || {};\n if (Reflect.has(vProps, 'title')) {\n return vProps.title || undefined;\n }\n\n if (tagContent) {\n return tagContent;\n }\n\n return undefined;\n };\n\n return () => {\n // 关闭按钮 自定义组件使用 nativeOnClick 绑定事件\n const closeIcon = getCloseIcon();\n // 标签内容\n const tagContent = renderContent('default', 'content');\n // 图标\n const icon = renderTNodeJSX('icon');\n\n const title = renderTitle(isString(tagContent) ? tagContent : '');\n\n return (\n
    \n {icon}\n \n {tagContent}\n \n {!props.disabled && closeIcon}\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckTagProps } from '../tag/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 标签选中的状态,默认风格(theme=default)才有选中态 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 标签选中的状态,默认风格(theme=default)才有选中态,非受控属性 */\n defaultChecked: Boolean,\n /** 透传标签选中态属性 */\n checkedProps: {\n type: Object as PropType,\n },\n /** 组件子元素;传入数组时:[选中内容,非选中内容] */\n content: {\n type: [String, Number, Array, Function] as PropType,\n },\n /** 组件子元素,默认插槽 */\n default: {\n type: [String, Function] as PropType,\n },\n /** 标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态 */\n disabled: Boolean,\n /** 标签尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCheckTagProps['size'],\n validator(val: TdCheckTagProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 透传标签未选态属性 */\n uncheckedProps: {\n type: Object as PropType,\n },\n /** 标签唯一标识,一般用于标签组场景,单个可选择标签无需设置 */\n value: {\n type: [String, Number] as PropType,\n },\n /** 状态切换时触发 */\n onChange: Function as PropType,\n /** 点击标签时触发 */\n onClick: Function as PropType,\n};\n","export type PlainObject = { [key: string]: any };\n\nexport type OptionData = {\n label?: string;\n value?: string | number;\n} & PlainObject;\n\nexport type TreeOptionData = {\n children?: Array> | boolean;\n /** option label content */\n label?: any;\n /** option search text */\n text?: string;\n /** option value */\n value?: T;\n} & PlainObject;\n\nexport type SizeEnum = 'small' | 'medium' | 'large';\n\nexport type HorizontalAlignEnum = 'left' | 'center' | 'right';\n\nexport type VerticalAlignEnum = 'top' | 'middle' | 'bottom';\n\nexport type ClassName = { [className: string]: any } | ClassName[] | string;\n\nexport type CSSSelector = string;\n\nexport interface Styles {\n [css: string]: string | number;\n}\n\nexport enum EKeyboardDirection {\n left = 37,\n up = 38,\n right = 39,\n down = 40,\n}\n\nexport const ARROW_DOWN_REG = /^ArrowDown$/i;\nexport const ARROW_UP_REG = /^ArrowUp$/i;\nexport const ARROW_LEFT_REG = /^ArrowLeft$/i;\nexport const ARROW_RIGHT_REG = /^ArrowRight$/i;\nexport const ESCAPE_REG = /^Escape$/i;\nexport const SPACE_REG = /^Space$/i;\nexport const ENTER_REG = /^Enter$/i;\nexport const SHIFT_REG = /^(Shift|ShiftLeft|ShiftRight)$/i;\nexport const CLEAR_REG = /^KeyC$/i;\nexport const ALL_REG = /^(KeyA|KeyL)$/i;\nexport const CHECKED_CODE_REG = /^(Enter|Space)$/i;\n","import { defineComponent, computed, toRefs } from 'vue';\nimport props from './check-tag-props';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport { useContent } from '../hooks/tnode';\nimport Tag from './tag';\nimport { TdCheckTagProps, TdTagProps } from './type';\nimport { ENTER_REG, SPACE_REG } from '@tdesign/common-js/common';\n\nexport default defineComponent({\n name: 'TCheckTag',\n props,\n setup(props: TdCheckTagProps) {\n const componentName = usePrefixClass('tag');\n const { SIZE } = useCommonClassName();\n const renderContent = useContent();\n\n const { checked, modelValue } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const tagClass = computed(() => {\n return [\n `${componentName.value}`,\n `${componentName.value}--check`,\n SIZE.value[props.size],\n {\n [`${componentName.value}--checked`]: innerChecked.value,\n [`${componentName.value}--disabled`]: props.disabled,\n },\n ];\n });\n\n const checkTagProps = computed(() => {\n const checkedProps: TdTagProps = { theme: 'primary', ...props.checkedProps };\n const uncheckedProps: TdTagProps = { ...props.uncheckedProps };\n return innerChecked.value ? checkedProps : uncheckedProps;\n });\n\n const handleClick = ({ e }: { e: MouseEvent }) => {\n if (!props.disabled) {\n props.onClick?.({ e });\n setInnerChecked(!innerChecked.value, { e, value: props.value });\n }\n };\n\n const keyboardEventListener = (e: KeyboardEvent) => {\n const code = e.code || e.key?.trim();\n const isCheckedCode = SPACE_REG.test(code) || ENTER_REG.test(code);\n if (isCheckedCode) {\n e.preventDefault();\n setInnerChecked(!innerChecked.value, { e, value: props.value });\n }\n };\n\n const onCheckboxFocus = (e: FocusEvent) => {\n e.currentTarget.addEventListener('keydown', keyboardEventListener);\n };\n\n const onCheckboxBlur = (e: FocusEvent) => {\n e.currentTarget.removeEventListener('keydown', keyboardEventListener);\n };\n\n return () => {\n const tagContent = renderContent('default', 'content');\n return (\n \n {tagContent}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckTagGroupProps } from '../tag/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 透传标签选中态属性 */\n checkedProps: {\n type: Object as PropType,\n },\n /** 是否支持选中多个标签 */\n multiple: Boolean,\n /** 标签选项列表 */\n options: {\n type: Array as PropType,\n },\n /** 透传标签未选态属性 */\n uncheckedProps: {\n type: Object as PropType,\n },\n /** 选中标签值 */\n value: {\n type: Array as PropType,\n default: undefined as TdCheckTagGroupProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdCheckTagGroupProps['value'],\n },\n /** 选中标签值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdCheckTagGroupProps['defaultValue'] => [],\n },\n /** null */\n onChange: Function as PropType,\n};\n","import { computed, defineComponent, toRefs, h } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport props from './check-tag-group-props';\nimport CheckTag from './check-tag';\nimport useVModel from '../hooks/useVModel';\nimport { CheckTagGroupOption, CheckTagGroupValue, TdCheckTagProps } from './type';\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TCheckTagGroup',\n props,\n setup(props, context) {\n const { value, modelValue, options } = toRefs(props);\n const componentName = usePrefixClass('check-tag-group');\n const checkTagGroupClasses = computed(() => [componentName.value]);\n\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const onCheckTagChange: TdCheckTagProps['onChange'] = (checked, ctx) => {\n const value = ctx.value;\n if (checked) {\n if (props.multiple) {\n setInnerValue(innerValue.value.concat(value), { e: ctx.e, type: 'check', value });\n } else {\n setInnerValue([value], { e: ctx.e, type: 'check', value });\n }\n } else {\n let newValue: CheckTagGroupValue = [];\n if (props.multiple) {\n newValue = innerValue.value.filter((t) => t !== value);\n }\n setInnerValue(newValue, { e: ctx.e, type: 'uncheck', value });\n }\n };\n\n const getTagContent = (option: CheckTagGroupOption) => {\n if (context.slots.option) return context.slots.option(option);\n if (context.slots.label) return context.slots.label(option);\n if (option.label) {\n return isFunction(option.label) ? option.label(h) : option.label;\n }\n if (option.content && isFunction(option.content)) return option.content(h);\n if (option.default && isFunction(option.default)) return option.default(h);\n return option.value;\n };\n\n return () => {\n return (\n
    \n {(options.value || []).map((option) => (\n \n {getTagContent(option)}\n \n ))}\n
    \n );\n };\n },\n});\n","import _Tag from './tag';\nimport _CheckTag from './check-tag';\nimport _CheckTagGroup from './check-tag-group';\nimport withInstall from '../utils/withInstall';\nimport { TdTagProps, TdCheckTagProps, TdCheckTagGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TagProps = TdTagProps;\nexport type CheckTagProps = TdCheckTagProps;\nexport type CheckTagGroupProps = TdCheckTagGroupProps;\n\nexport const Tag = withInstall(_Tag);\nexport const CheckTag = withInstall(_CheckTag);\nexport const CheckTagGroup = withInstall(_CheckTagGroup);\n\nexport default Tag;\n","import { defineComponent, computed, toRefs, ref, nextTick, reactive, watch } from 'vue';\nimport { CloseCircleFilledIcon as TdCloseCircleFilledIcon } from 'tdesign-icons-vue-next';\nimport TInput, { InputProps, StrInputProps, TdInputProps } from '../input';\nimport { TdTagInputProps } from './type';\nimport props from './props';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTagScroll, useHover, useDragSorter, useTagList } from './hooks';\nimport useDefault from '../hooks/useDefaultValue';\nimport { isArray } from 'lodash-es';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nconst useComponentClassName = () => {\n return {\n NAME_CLASS: usePrefixClass('tag-input'),\n CLEAR_CLASS: usePrefixClass('tag-input__suffix-clear'),\n BREAK_LINE_CLASS: usePrefixClass('tag-input--break-line'),\n };\n};\n\nexport default defineComponent({\n name: 'TTagInput',\n props,\n setup(props: TdTagInputProps, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n const { NAME_CLASS, CLEAR_CLASS, BREAK_LINE_CLASS } = useComponentClassName();\n const { CloseCircleFilledIcon } = useGlobalIcon({ CloseCircleFilledIcon: TdCloseCircleFilledIcon });\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n const { inputValue, inputProps, borderless, size, tips, status, suffix, autoWidth, onPaste } = toRefs(props);\n const [tInputValue, setTInputValue] = useDefault(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const { excessTagsDisplayType, clearable, placeholder } = toRefs(props);\n const { isHover, addHover, cancelHover } = useHover({\n readonly: isReadonly.value,\n disabled: isDisabled.value,\n onMouseenter: props.onMouseenter,\n onMouseleave: props.onMouseleave,\n });\n const isComposition = ref(false);\n const { classPrefix } = useConfig();\n const isFocused = ref(false);\n\n // 这里不需要响应式,因此直接传递参数\n const { getDragProps } = useDragSorter({\n ...props,\n sortOnDraggable: props.dragSort,\n onDragOverCheck: {\n x: true,\n targetClassNameRegExp: new RegExp(`^${classPrefix.value}-tag`),\n },\n });\n const { scrollToRight, onWheel, scrollToRightOnEnter, scrollToLeftOnLeave, tagInputRef, isScrollable } =\n useTagScroll(props);\n // handle tag add and remove\n // 需要响应式,为了尽量的和 react 版本做法相同,这里进行响应式处理\n const { tagValue, onInnerEnter, onInputBackspaceKeyUp, onInputBackspaceKeyDown, clearAll, renderLabel, onClose } =\n useTagList(\n reactive({\n ...toRefs(props),\n getDragProps,\n }),\n );\n\n const classes = computed(() => {\n const isEmpty = !(isArray(tagValue.value) && tagValue.value.length);\n return [\n NAME_CLASS.value,\n {\n [BREAK_LINE_CLASS.value]: excessTagsDisplayType.value === 'break-line',\n [`${classPrefix.value}-is-empty`]: isEmpty,\n [`${classPrefix.value}-tag-input--with-tag`]: !isEmpty,\n },\n ];\n });\n\n const tagInputPlaceholder = computed(() => (!tagValue.value?.length ? placeholder.value : ''));\n\n const showClearIcon = computed(() =>\n Boolean(\n !isReadonly.value &&\n !isDisabled.value &&\n clearable.value &&\n isHover.value &&\n (tagValue.value?.length || tInputValue.value),\n ),\n );\n\n const onInputEnter = (value: string, context: { e: KeyboardEvent }) => {\n // 阻止 Enter 默认行为,避免在 Form 中触发 submit 事件\n context.e?.preventDefault?.();\n setTInputValue('', { e: context.e, trigger: 'enter' });\n !isComposition.value && onInnerEnter(value, context);\n nextTick(() => {\n scrollToRight();\n isComposition.value = false;\n });\n };\n\n const onInputCompositionstart = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = true;\n inputProps.value?.onCompositionstart?.(value, context);\n };\n\n const onInputCompositionend = (value: string, context: { e: CompositionEvent }) => {\n isComposition.value = false;\n inputProps.value?.onCompositionend?.(value, context);\n };\n\n const onClick: TdInputProps['onClick'] = (ctx) => {\n if (isDisabled.value) return;\n isFocused.value = true;\n tagInputRef.value?.focus();\n props.onClick?.(ctx);\n };\n\n const onClearClick = (context: { e: MouseEvent }) => {\n clearAll(context);\n setTInputValue('', { e: context.e, trigger: 'clear' });\n props.onClear?.(context);\n };\n\n const onMouseEnter: InputProps['onMouseenter'] = (context) => {\n addHover(context);\n scrollToRightOnEnter();\n };\n\n const onMouseLeave: InputProps['onMouseleave'] = (context) => {\n cancelHover(context);\n scrollToLeftOnLeave();\n };\n\n const onInnerFocus: InputProps['onFocus'] = (inputValue: string, context: { e: MouseEvent }) => {\n if (isFocused.value) return;\n isFocused.value = true;\n props.onFocus?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerBlur: InputProps['onFocus'] = (inputValue: string, context: { e: MouseEvent }) => {\n isFocused.value = false;\n setTInputValue('', { e: context.e, trigger: 'blur' });\n props.onBlur?.(tagValue.value, { e: context.e, inputValue });\n };\n\n const onInnerChange: StrInputProps['onChange'] = (val, context) => {\n setTInputValue(val, { ...context, trigger: 'input' });\n };\n\n watch(\n () => isScrollable.value,\n (v) => {\n if (props.excessTagsDisplayType !== 'scroll') return;\n const scrollElementClass = `${classPrefix.value}-input__prefix`;\n const scrollElement = tagInputRef.value.$el.querySelector(`.${scrollElementClass}`);\n if (v) scrollElement.classList.add(`${scrollElementClass}--scrollable`);\n else scrollElement.classList.remove(`${scrollElementClass}--scrollable`);\n },\n );\n\n return () => {\n const suffixIconNode = showClearIcon.value ? (\n \n ) : (\n renderTNodeJSX('suffixIcon')\n );\n const prefixIconNode = renderTNodeJSX('prefixIcon');\n const suffixClass = `${classPrefix.value}-tag-input__with-suffix-icon`;\n if (suffixIconNode && !classes.value.includes(suffixClass)) {\n classes.value.push(suffixClass);\n }\n // 自定义 Tag 节点\n const displayNode = renderTNodeJSX('valueDisplay', {\n params: {\n value: tagValue.value,\n onClose: (index: number) => onClose({ index }),\n },\n });\n // 左侧文本\n const label = renderTNodeJSX('label', { silent: true });\n // const inputProps = inputProps as TdTagInputProps['inputProps'];\n const readonly = isReadonly.value || inputProps.value?.readonly;\n\n return (\n renderLabel({ displayNode, label })}\n class={classes.value}\n tips={tips.value}\n status={status.value}\n placeholder={tagInputPlaceholder.value}\n suffix={suffix.value}\n suffixIcon={() => suffixIconNode}\n prefixIcon={() => prefixIconNode}\n keepWrapperWidth={!autoWidth.value}\n onWheel={onWheel}\n onChange={onInnerChange}\n onPaste={onPaste.value}\n onEnter={onInputEnter}\n onKeyup={onInputBackspaceKeyUp}\n onKeydown={onInputBackspaceKeyDown}\n onMouseenter={onMouseEnter}\n onMouseleave={onMouseLeave}\n onFocus={onInnerFocus}\n onBlur={onInnerBlur}\n onClick={onClick}\n onCompositionstart={onInputCompositionstart}\n onCompositionend={onInputCompositionend}\n {...inputProps.value}\n />\n );\n };\n },\n});\n","import { ref } from 'vue';\n\nexport interface UseHoverParams {\n readonly: boolean;\n disabled: boolean;\n onMouseenter: (context: { e: MouseEvent }) => void;\n onMouseleave: (context: { e: MouseEvent }) => void;\n}\n\nexport function useHover(props: UseHoverParams) {\n const { disabled, readonly, onMouseenter, onMouseleave } = props;\n const isHover = ref(false);\n\n const addHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = true;\n onMouseenter?.(context);\n };\n\n const cancelHover = (context: { e: MouseEvent }) => {\n if (readonly || disabled) return;\n isHover.value = false;\n onMouseleave?.(context);\n };\n\n return { isHover, addHover, cancelHover };\n}\n","import { ref, reactive } from 'vue';\nimport { DragSortProps, DragSortInnerProps } from '../types';\n\nexport function useDragSorter(props: DragSortProps): DragSortInnerProps {\n const { sortOnDraggable, onDragSort, onDragOverCheck } = props;\n const draggingIndex = ref(-1);\n const dragStartData = ref(null);\n const isDropped = ref(null);\n const startInfo = reactive({ nodeX: 0, nodeWidth: 0, mouseX: 0 });\n\n const onDragOver = (e: DragEvent, index: number, record: T) => {\n e.preventDefault();\n if (draggingIndex.value === index || draggingIndex.value === -1) return;\n const target = e.target as HTMLElement;\n if (onDragOverCheck?.targetClassNameRegExp && !onDragOverCheck?.targetClassNameRegExp.test(target.className)) {\n return;\n }\n\n if (onDragOverCheck?.x && target) {\n if (!startInfo.nodeWidth) return;\n\n const { x, width } = target.getBoundingClientRect();\n const targetNodeMiddleX = x + width / 2;\n const draggingNodeLeft = e.clientX - (startInfo.mouseX - startInfo.nodeX);\n const draggingNodeRight = draggingNodeLeft + startInfo.nodeWidth;\n\n let overlap = false;\n if (draggingNodeLeft > x && draggingNodeLeft < x + width) {\n overlap = draggingNodeLeft < targetNodeMiddleX;\n } else {\n overlap = draggingNodeRight > targetNodeMiddleX;\n }\n\n if (!overlap) return;\n }\n\n onDragSort?.({\n currentIndex: draggingIndex.value,\n current: dragStartData,\n target: record,\n targetIndex: index,\n });\n\n draggingIndex.value = index;\n };\n\n if (!sortOnDraggable) {\n return {};\n }\n\n function onDragStart(e: DragEvent, index: number, record: T) {\n draggingIndex.value = index;\n dragStartData.value = record;\n const target = e.target as HTMLElement;\n if (onDragOverCheck && target) {\n const { x, width } = target.getBoundingClientRect();\n startInfo.nodeX = x;\n startInfo.nodeWidth = width;\n startInfo.mouseX = e.clientX;\n }\n }\n\n function onDrop() {\n isDropped.value = true;\n }\n\n function onDragEnd() {\n if (!isDropped.value) {\n // 取消排序,待扩展 api,输出 dragStartData\n }\n isDropped.value = false;\n draggingIndex.value = -1;\n dragStartData.value = null;\n }\n\n function getDragProps(index: number, record: T) {\n if (sortOnDraggable) {\n return {\n draggable: true,\n onDragstart: (e: DragEvent) => {\n onDragStart(e, index, record);\n },\n onDragover: (e: DragEvent) => {\n onDragOver(e, index, record);\n },\n onDrop: () => {\n onDrop();\n },\n onDragend: () => {\n onDragEnd();\n },\n };\n }\n return {};\n }\n\n return { onDragStart, onDragOver, onDrop, onDragEnd, getDragProps, dragging: draggingIndex.value !== -1 };\n}\n","/**\n * 当标签数量过多时,输入框显示不下,则需要滚动查看,以下为滚动逻辑\n * 如果标签过多时的处理方式,是标签省略,则不需要此功能\n */\n\nimport { isFunction } from 'lodash-es';\nimport { onMounted, onUnmounted, ref, toRefs } from 'vue';\nimport { TdTagInputProps } from '../type';\n\nexport function useTagScroll(props: TdTagInputProps) {\n const tagInputRef = ref();\n const { excessTagsDisplayType, readonly, disabled } = toRefs(props);\n // 允许向右滚动的最大距离\n const scrollDistance = ref(0);\n const scrollElement = ref();\n const mouseEnterTimer = ref();\n const isScrollable = ref(false); // 设置可滚动\n\n const updateScrollElement = (element: HTMLElement) => {\n const inputElement = element.children[0] as HTMLElement;\n scrollElement.value = inputElement;\n };\n\n const updateScrollDistance = () => {\n scrollDistance.value = scrollElement.value.scrollWidth - scrollElement.value.clientWidth;\n };\n\n const scrollTo = (distance: number) => {\n if (!isFunction(scrollElement.value?.scroll)) return;\n scrollElement.value.scroll({ left: distance, behavior: 'smooth' });\n };\n\n const scrollToRight = () => {\n updateScrollDistance();\n scrollTo(scrollDistance.value);\n setTimeout(() => {\n isScrollable.value = true;\n }, 200);\n };\n\n const scrollToLeft = () => {\n scrollTo(0);\n };\n\n // TODO:MAC 电脑横向滚动,Windows 纵向滚动。当前只处理了横向滚动\n const onWheel = ({ e }: { e: WheelEvent }) => {\n if (readonly.value || disabled.value) return;\n if (!scrollElement.value) return;\n if (e.deltaX > 0) {\n const distance = Math.min(scrollElement.value.scrollLeft + 120, scrollDistance.value);\n scrollTo(distance);\n } else {\n const distance = Math.max(scrollElement.value.scrollLeft - 120, 0);\n scrollTo(distance);\n }\n };\n\n // 鼠标 hover,自动滑动到最右侧,以便输入新标签\n const scrollToRightOnEnter = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n // 一闪而过的 mousenter 不需要执行\n mouseEnterTimer.value = setTimeout(() => {\n scrollToRight();\n clearTimeout(mouseEnterTimer.value);\n }, 100);\n };\n\n const scrollToLeftOnLeave = () => {\n if (excessTagsDisplayType.value !== 'scroll') return;\n isScrollable.value = false; // 离开焦点不可滚动\n scrollTo(0);\n clearTimeout(mouseEnterTimer.value);\n };\n\n const init = () => {\n const element = tagInputRef.value?.$el;\n if (!element) return;\n updateScrollElement(element);\n };\n\n const clear = () => {\n clearTimeout(mouseEnterTimer.value);\n };\n\n onMounted(init);\n\n onUnmounted(clear);\n\n return {\n tagInputRef,\n scrollElement,\n scrollDistance,\n scrollTo,\n scrollToRight,\n scrollToLeft,\n updateScrollElement,\n updateScrollDistance,\n onWheel,\n scrollToRightOnEnter,\n scrollToLeftOnLeave,\n isScrollable,\n };\n}\n","import { ref, toRefs } from 'vue';\nimport { TagInputValue, TagInputChangeContext } from '../type';\nimport { TagInputProps } from '../types';\nimport { InputValue } from '../../input';\nimport Tag from '../../tag';\nimport useVModel from '../../hooks/useVModel';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nexport type ChangeParams = [TagInputChangeContext];\n\n// handle tag add and remove\nexport function useTagList(props: TagInputProps) {\n const renderTNode = useTNodeJSX();\n const classPrefix = usePrefixClass();\n const { value, modelValue, onRemove, max, minCollapsedNum, size, tagProps, getDragProps } = toRefs(props);\n // handle controlled property and uncontrolled property\n const [tagValue, setTagValue] = useVModel(value, modelValue, props.defaultValue || [], props.onChange);\n const oldInputValue = ref();\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // 点击标签关闭按钮,删除标签\n const onClose = (p: { e?: MouseEvent; index: number }) => {\n const arr = [...tagValue.value];\n const [item] = arr.splice(p.index, 1); // 当前删除的item无需参数传递\n setTagValue(arr, { trigger: 'tag-remove', ...p, item });\n onRemove.value?.({ ...p, item, trigger: 'tag-remove', value: arr });\n };\n\n const clearAll = (context: { e: MouseEvent }) => {\n setTagValue([], { trigger: 'clear', e: context.e });\n };\n\n // 按下 Enter 键,新增标签\n const onInnerEnter = (value: string, context: { e: KeyboardEvent }) => {\n const valueStr = value ? String(value).trim() : '';\n const isLimitExceeded = max && tagValue.value?.length >= max.value;\n let newValue: TagInputValue = tagValue.value;\n if (!isLimitExceeded && valueStr) {\n newValue = tagValue.value instanceof Array ? tagValue.value.concat(String(valueStr)) : [valueStr];\n setTagValue(newValue, {\n trigger: 'enter',\n index: newValue.length - 1,\n item: valueStr,\n e: context.e,\n });\n }\n props?.onEnter?.(newValue, { ...context, inputValue: value });\n };\n\n // 按下回退键,删除标签\n const onInputBackspaceKeyUp = (value: InputValue) => {\n if (!tagValue.value || !tagValue.value.length) return;\n oldInputValue.value = value;\n };\n // 按下回退键,删除标签\n const onInputBackspaceKeyDown = (value: InputValue, context: { e: KeyboardEvent }) => {\n const { e } = context;\n if (!tagValue.value || !tagValue.value.length || e.key === 'Process' || isReadonly.value) return;\n // 回车键删除,输入框值为空时,才允许 Backspace 删除标签\n const isDelete = /(Backspace|NumpadDelete)/i.test(e.code) || /(Backspace|NumpadDelete)/i.test(e.key);\n if (!value && isDelete) {\n const index = tagValue.value.length - 1;\n const item = tagValue.value[index];\n const trigger = 'backspace';\n const newValue = tagValue.value.slice(0, -1);\n setTagValue(newValue, { e, index, item, trigger });\n onRemove.value?.({ e, index, item, trigger, value: newValue });\n }\n oldInputValue.value = value;\n };\n\n const renderLabel = ({ displayNode, label }: { displayNode: any; label: any }) => {\n const newList = minCollapsedNum.value ? tagValue.value.slice(0, minCollapsedNum.value) : tagValue.value;\n const list = displayNode\n ? [displayNode]\n : newList?.map?.((item, index) => {\n const tagContent = renderTNode('tag', { params: { value: item } });\n return (\n onClose({ e: context.e, index })}\n closable={!isReadonly.value && !isDisabled.value}\n {...getDragProps.value?.(index, item)}\n {...tagProps.value}\n >\n {tagContent ?? item}\n \n );\n }) || [];\n if (![null, undefined, ''].includes(label)) {\n list.unshift(\n
    \n {label}\n
    ,\n );\n }\n // 超出省略\n if (newList.length !== (tagValue.value || []).length) {\n const len = tagValue.value.length - newList.length;\n const more = renderTNode('collapsedItems', {\n params: {\n value: tagValue.value,\n count: tagValue.value.length - minCollapsedNum.value,\n collapsedTags: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n collapsedSelectedItems: tagValue.value.slice(minCollapsedNum.value, tagValue.value.length),\n onClose,\n },\n });\n list.push(\n more ?? (\n \n +{len}\n \n ),\n );\n }\n return list;\n };\n\n return {\n tagValue,\n clearAll,\n onClose,\n onInnerEnter,\n onInputBackspaceKeyUp,\n onInputBackspaceKeyDown,\n renderLabel,\n };\n}\n","import _TagInput from './tag-input';\nimport withInstall from '../utils/withInstall';\nimport { TdTagInputProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TagInputProps = TdTagInputProps;\n\nexport const TagInput = withInstall(_TagInput);\n\nexport default TagInput;\n","import { SetupContext, computed, ref, toRefs, Ref } from 'vue';\nimport { isObject } from 'lodash-es';\nimport { TdSelectInputProps, SelectInputChangeContext, SelectInputKeys } from '../type';\nimport { SelectInputCommonProperties } from '../types';\nimport TagInput, { TagInputValue, TagInputProps } from '../../tag-input';\nimport Loading from '../../loading';\nimport useDefault from '../../hooks/useDefaultValue';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useReadonly } from '../../hooks/useReadonly';\nimport { PopupInstanceFunctions } from '../../popup';\n\nexport interface RenderSelectMultipleParams {\n commonInputProps: SelectInputCommonProperties;\n onInnerClear: (context: { e: MouseEvent }) => void;\n popupVisible: boolean;\n allowInput: boolean;\n}\n\nconst DEFAULT_KEYS = {\n label: 'label',\n key: 'key',\n children: 'children',\n};\n\nexport function useMultiple(props: TdSelectInputProps, context: SetupContext, popupRef: Ref) {\n const { inputValue } = toRefs(props);\n const classPrefix = usePrefixClass();\n const tagInputRef = ref();\n const isMultipleFocus = ref(props.autofocus);\n const [tInputValue, setTInputValue] = useDefault(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const iKeys = computed(() => ({ ...DEFAULT_KEYS, ...props.keys }));\n const tags = computed(() => {\n if (!(props.value instanceof Array)) {\n // TODO: replace isObject as isPlainObject\n return isObject(props.value) ? [(props.value as Record)[iKeys.value.label]] : [props.value];\n }\n return props.value.map((item) => (isObject(item) ? (item as Record)[iKeys.value.label] : item));\n });\n\n const tPlaceholder = computed(() => (!tags.value || !tags.value.length ? props.placeholder : ''));\n\n const onTagInputChange = (val: TagInputValue, context: SelectInputChangeContext) => {\n // 避免触发浮层的显示或隐藏\n if (context.trigger === 'tag-remove') {\n context.e?.stopPropagation();\n }\n props.onTagChange?.(val, context);\n };\n\n const onInputChange: TagInputProps['onInputChange'] = (val, ctx) => {\n if (ctx.trigger === 'enter' || ctx.trigger === 'blur') return;\n setTInputValue(val, { trigger: ctx.trigger, e: ctx.e });\n };\n\n /**\n * 筛选器统一特性:\n * 1. 筛选器按下回车时不清空输入框;\n * 2. SelectInput 的失焦不等于 TagInput。如点击下拉面板时,TagInput 失去焦点,但 SelectInput 依旧保持聚焦,允许继续选择。\n */\n const onBlur: TagInputProps['onBlur'] = (val, ctx) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (overlayState?.hover) return;\n isMultipleFocus.value = false;\n props.onBlur?.(props.value, { ...ctx, tagInputValue: val });\n };\n\n const onFocus: TagInputProps['onFocus'] = (val, ctx) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (isMultipleFocus.value || overlayState?.hover) return;\n isMultipleFocus.value = true;\n const params = { ...ctx, tagInputValue: val };\n props.onFocus?.(props.value, params);\n };\n\n const onEnter: TagInputProps['onEnter'] = (val, ctx) => {\n const params = { ...ctx, tagInputValue: val };\n props.onEnter?.(props.value, params);\n };\n\n const renderSelectMultiple = (p: RenderSelectMultipleParams) => {\n const tagInputProps = {\n ...p.commonInputProps,\n tagProps: props.tagProps,\n label: props.label,\n autoWidth: props.autoWidth,\n readonly: isReadonly.value,\n placeholder: tPlaceholder.value,\n minCollapsedNum: props.minCollapsedNum,\n collapsedItems: props.collapsedItems,\n tag: props.tag,\n value: tags.value,\n valueDisplay: props.valueDisplay,\n inputValue: p.popupVisible && p.allowInput ? tInputValue.value : '',\n inputProps: {\n readonly: !props.allowInput || isReadonly.value,\n inputClass: {\n [`${classPrefix.value}-input--focused`]: p.popupVisible,\n },\n ...props.inputProps,\n },\n suffixIcon: !disable.value && props.loading ? () => : props.suffixIcon,\n ...props.tagInputProps,\n };\n\n const { tips: _tips, ...slots } = context.slots;\n return (\n \n );\n };\n\n return {\n tags,\n tPlaceholder,\n tagInputRef,\n isMultipleFocus,\n multipleInputValue: tInputValue,\n renderSelectMultiple,\n };\n}\n","import { ref, toRefs, computed, CSSProperties } from 'vue';\nimport { isObject } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { TdSelectInputProps } from '../type';\nimport { TdPopupProps, PopupVisibleChangeContext } from '../../popup';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nexport type overlayInnerStyleProps = Pick<\n TdSelectInputProps,\n 'popupProps' | 'autoWidth' | 'readonly' | 'onPopupVisibleChange' | 'disabled' | 'allowInput' | 'popupVisible'\n>;\n\n// 单位:px\nconst MAX_POPUP_WIDTH = 1000;\n// 避免因滚动条出现文本省略,预留宽度 8\nconst RESERVE_WIDTH = 0;\n\nexport function useOverlayInnerStyle(props: overlayInnerStyleProps) {\n const { popupProps, autoWidth } = toRefs(props);\n const innerPopupVisible = ref(false);\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const matchWidthFunc = (triggerElement: HTMLElement, popupElement: HTMLElement) => {\n const SCROLLBAR_WIDTH = popupElement.scrollHeight > popupElement.offsetHeight ? RESERVE_WIDTH : 0;\n const width =\n popupElement.offsetWidth + SCROLLBAR_WIDTH >= triggerElement.offsetWidth\n ? popupElement.offsetWidth\n : triggerElement.offsetWidth;\n let otherOverlayInnerStyle: CSSProperties = {};\n if (\n popupProps.value &&\n typeof popupProps.value.overlayInnerStyle === 'object' &&\n !popupProps.value.overlayInnerStyle.width\n ) {\n otherOverlayInnerStyle = popupProps.value.overlayInnerStyle;\n }\n return {\n width: `${Math.min(width, MAX_POPUP_WIDTH)}px`,\n ...otherOverlayInnerStyle,\n };\n };\n\n const onInnerPopupVisibleChange = (visible: boolean, ctx: PopupVisibleChangeContext) => {\n if (disable.value || isReadonly.value) return;\n // 如果点击触发元素(输入框)且为可输入状态,则继续显示下拉框\n const newVisible = ctx.trigger === 'trigger-element-click' && props.allowInput ? true : visible;\n // 重复点击触发元素时,下拉框展示状态不变,不重复触发事件\n if (props.popupVisible !== newVisible) {\n innerPopupVisible.value = newVisible;\n props.onPopupVisibleChange?.(newVisible, ctx);\n }\n };\n\n const getAutoWidthPopupStyleWidth = (triggerElement: HTMLElement, popupElement: HTMLElement) => {\n return {\n width: `${Math.max(triggerElement.offsetWidth, popupElement.offsetWidth)}px`,\n ...popupProps.value?.overlayInnerStyle,\n };\n };\n\n const tOverlayInnerStyle = computed(() => {\n let result: TdPopupProps['overlayInnerStyle'] = {};\n const overlayInnerStyle = popupProps.value?.overlayInnerStyle || {};\n if (isFunction(overlayInnerStyle) || (isObject(overlayInnerStyle) && overlayInnerStyle.width)) {\n result = overlayInnerStyle;\n } else {\n if (autoWidth.value) {\n result = getAutoWidthPopupStyleWidth;\n } else {\n result = matchWidthFunc;\n }\n }\n return result;\n });\n\n return {\n tOverlayInnerStyle,\n innerPopupVisible,\n onInnerPopupVisibleChange,\n };\n}\n","import { SetupContext, ref, computed, toRefs, Ref } from 'vue';\nimport { isObject } from 'lodash-es';\nimport { pick } from 'lodash-es';\nimport Input, { StrInputProps } from '../../input';\nimport Loading from '../../loading';\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { useReadonly } from '../../hooks/useReadonly';\nimport { PopupInstanceFunctions } from '../../popup';\nimport { TdSelectInputProps } from '../type';\nimport { SelectInputCommonProperties } from '../types';\n\n// single 和 multiple 共有特性\nconst COMMON_PROPERTIES = [\n 'status',\n 'clearable',\n 'disabled',\n 'label',\n 'placeholder',\n 'readonly',\n 'prefixIcon',\n 'suffix',\n 'suffixIcon',\n 'onPaste',\n 'onMouseenter',\n 'onMouseleave',\n 'size',\n 'autofocus',\n];\n\nconst DEFAULT_KEYS = {\n label: 'label',\n value: 'value',\n children: 'children',\n};\n\nexport interface SelectInputValueDisplayOptions {\n useInputDisplay: boolean;\n usePlaceholder: boolean;\n}\n\nfunction getInputValue(value: TdSelectInputProps['value'], keys: TdSelectInputProps['keys']) {\n const iKeys = { ...DEFAULT_KEYS, ...keys };\n // TODO: replace isObject as isPlainObject\n return isObject(value) ? (value as Record)[iKeys.label] : value;\n}\n\nexport function useSingle(\n props: TdSelectInputProps & { valueDisplayOptions: SelectInputValueDisplayOptions },\n context: SetupContext,\n popupRef: Ref,\n) {\n const { value, keys, inputValue: propsInputValue } = toRefs(props);\n const classPrefix = usePrefixClass();\n const isSingleFocus = ref(props.autofocus);\n const inputRef = ref();\n const [inputValue, setInputValue] = useDefaultValue(\n propsInputValue,\n props.defaultInputValue ?? '',\n props.onInputChange,\n 'inputValue',\n );\n const renderTNode = useTNodeJSX();\n const disable = useDisabled();\n const isReadonly = useReadonly();\n\n const commonInputProps = computed(() => ({\n ...pick(props, COMMON_PROPERTIES),\n disabled: disable.value,\n readonly: isReadonly.value,\n }));\n\n const onInnerClear = (context: { e: MouseEvent }) => {\n context?.e?.stopPropagation();\n props.onClear?.(context);\n setInputValue('', { trigger: 'clear' });\n };\n\n const onInnerInputChange: StrInputProps['onChange'] = (value, context) => {\n if (props.allowInput) {\n setInputValue(value, { ...context, trigger: context.trigger || 'input' });\n }\n };\n\n const renderSelectSingle = (popupVisible: boolean) => {\n const singleValueDisplay = renderTNode('valueDisplay');\n const displayedValue = popupVisible && props.allowInput ? inputValue.value : getInputValue(value.value, keys.value);\n const prefixContent = renderPrefixContent(singleValueDisplay, popupVisible);\n const inputProps = {\n ...commonInputProps.value,\n value: renderInputDisplay(singleValueDisplay, displayedValue, popupVisible),\n label: prefixContent.length ? () => prefixContent : undefined,\n autoWidth: props.autoWidth,\n readonly: !props.allowInput || isReadonly.value,\n placeholder: renderPlaceholder(singleValueDisplay),\n suffixIcon: !disable.value && props.loading ? () => : props.suffixIcon,\n showClearIconOnEmpty: Boolean(\n props.clearable && (inputValue.value || displayedValue) && !disable.value && !isReadonly.value,\n ),\n ...props.inputProps,\n };\n\n // eslint-disable-next-line\n const { tips, ...slots } = context.slots;\n\n const inputClassProps = popupVisible\n ? [`${classPrefix.value}-input--focused`, `${classPrefix.value}-is-focused`, inputProps?.inputClass]\n : inputProps?.inputClass;\n\n const onEnter: StrInputProps['onEnter'] = (val, context) => {\n props.onEnter?.(value.value, { ...context, inputValue: val });\n };\n\n const onFocus: StrInputProps['onFocus'] = (val, context) => {\n const overlayState = popupRef.value?.getOverlayState();\n if (isSingleFocus.value || overlayState?.hover) return;\n isSingleFocus.value = true;\n props.onFocus?.(value.value, { ...context, inputValue: val });\n };\n\n const onBlur: StrInputProps['onBlur'] = (val, context) => {\n const overlayState = popupRef.value?.getOverlayState();\n isSingleFocus.value = false;\n if (overlayState?.hover) return;\n props.onBlur?.(value.value, { ...context, inputValue: val });\n };\n\n return (\n \n );\n };\n\n const renderPrefixContent = (singleValueDisplay: any, popupVisible: boolean) => {\n // 需要隐藏valueDisplay的两个情况\n // 1 用户传入usePlaceholder希望使用自带占位符实现,则应在未选择值时隐藏valueDisplay,只展示占位符\n // 2 用户传入useInputDisplay希望使用自带输入回显实现,激活选择器浮层时只展示input值(待讨论是否修改为激活后真的输入字符再隐藏valueDisplay,此处实现效果与不使用valueDisplay只使用filterable时不同)\n const label = renderTNode('label');\n\n if (!label && !singleValueDisplay) {\n return [];\n }\n\n if (singleValueDisplay) {\n if (\n (props.valueDisplayOptions?.usePlaceholder && !value.value) ||\n (props.valueDisplayOptions?.useInputDisplay && popupVisible)\n ) {\n return [label];\n }\n }\n return [label, singleValueDisplay];\n };\n\n const renderInputDisplay = (singleValueDisplay: any, displayedValue: any, popupVisible: boolean) => {\n // 使用valueDisplay插槽时,如用户传入useInputDisplay使用自带输入回显实现,未传则认为用户自行实现。\n if (singleValueDisplay)\n if (\n !props.valueDisplayOptions?.useInputDisplay ||\n (props.valueDisplayOptions?.useInputDisplay && !popupVisible)\n ) {\n return undefined;\n }\n return displayedValue;\n };\n\n const renderPlaceholder = (singleValueDisplay: any) => {\n // 使用valueDisplay插槽时,如用户传入usePlaceholder使用自带占位符实现,未传则认为用户自行实现。\n // 如果当前存在value(对应直接使用组件和select组件调用时),不显示占位符。\n if (singleValueDisplay) {\n if (!props.valueDisplayOptions?.usePlaceholder || (props.valueDisplayOptions?.usePlaceholder && value.value)) {\n return '';\n }\n }\n return props.placeholder;\n };\n\n return {\n inputRef,\n isSingleFocus,\n commonInputProps,\n singleInputValue: inputValue,\n onInnerClear,\n renderSelectSingle,\n };\n}\n","import { computed, defineComponent, onBeforeUnmount, onMounted, PropType, ref, SetupContext, toRefs, watch } from 'vue';\nimport Popup, { PopupInstanceFunctions, PopupProps, PopupVisibleChangeContext } from '../popup';\nimport props from './props';\nimport { TdSelectInputProps } from './type';\nimport { useMultiple, useSingle, useOverlayInnerStyle } from './hooks';\nimport type { SelectInputValueDisplayOptions } from './hooks';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks';\n\nconst useComponentClassName = () => {\n return {\n NAME_CLASS: usePrefixClass('select-input'),\n BASE_CLASS_BORDERLESS: usePrefixClass('select-input--borderless'),\n BASE_CLASS_MULTIPLE: usePrefixClass('select-input--multiple'),\n BASE_CLASS_POPUP_VISIBLE: usePrefixClass('select-input--popup-visible'),\n BASE_CLASS_EMPTY: usePrefixClass('select-input--empty'),\n };\n};\n\nexport default defineComponent({\n name: 'TSelectInput',\n props: {\n ...props,\n /**\n * 非公开 API,请勿使用(后续即将删除)\n * 自定义值呈现的选项\n * useInputDisplay 表示在使用时仍然使用组件自带的输入回显实现,\n * usePlaceholder 表示在使用时仍然使用自带的占位符实现\n * */\n valueDisplayOptions: {\n type: Object as PropType,\n },\n },\n\n setup(props: TdSelectInputProps & { valueDisplayOptions: SelectInputValueDisplayOptions }, context: SetupContext) {\n const { NAME_CLASS, BASE_CLASS_BORDERLESS, BASE_CLASS_MULTIPLE, BASE_CLASS_POPUP_VISIBLE, BASE_CLASS_EMPTY } =\n useComponentClassName();\n const classPrefix = usePrefixClass();\n const renderTNodeJSX = useTNodeJSX();\n\n const selectInputRef = ref();\n const popupRef = ref();\n const { multiple, value, popupVisible, borderless, popupProps, panel, allowInput, status } = toRefs(props);\n\n const { tOverlayInnerStyle, innerPopupVisible, onInnerPopupVisibleChange } = useOverlayInnerStyle(props);\n\n const { isSingleFocus, commonInputProps, onInnerClear, renderSelectSingle } = useSingle(props, context, popupRef);\n\n const { isMultipleFocus, tagInputRef, renderSelectMultiple } = useMultiple(props, context, popupRef);\n\n const isFocus = computed(() => (props.multiple ? isMultipleFocus.value : isSingleFocus.value));\n\n const classes = computed(() => [\n `${NAME_CLASS.value}`,\n {\n [BASE_CLASS_MULTIPLE.value]: multiple.value,\n [BASE_CLASS_BORDERLESS.value]: borderless.value,\n [BASE_CLASS_POPUP_VISIBLE.value]: popupVisible.value ?? innerPopupVisible.value,\n [BASE_CLASS_EMPTY.value]: value.value instanceof Array ? !value.value.length : !value.value,\n },\n ]);\n\n const addKeyboardEventListener = (e: KeyboardEvent) => {\n const code = e.code || e.key?.trim();\n if (/(ArrowDown|ArrowUp)/.test(code) && !popupVisible.value) {\n const ctx: PopupVisibleChangeContext = { ...context, trigger: 'trigger-element-focus' };\n props.onPopupVisibleChange?.(true, ctx);\n }\n };\n\n watch([isFocus], ([isFocus]) => {\n if (popupVisible.value) return;\n if (isFocus) {\n selectInputRef.value.addEventListener('keydown', addKeyboardEventListener);\n } else {\n selectInputRef.value.removeEventListener('keydown', addKeyboardEventListener);\n }\n });\n\n onMounted(() => {\n if (!popupVisible.value && isFocus) {\n selectInputRef.value.addEventListener('keydown', addKeyboardEventListener);\n }\n });\n\n onBeforeUnmount(() => {\n selectInputRef.value?.removeEventListener('keydown', addKeyboardEventListener);\n });\n\n const onOverlayClick: PopupProps['onOverlayClick'] = (ctx) => {\n ctx.e?.stopPropagation();\n // do not set focus if target can be focused\n if ((ctx.e.target as HTMLElement).tabIndex >= 0) return;\n if (props.multiple) tagInputRef.value?.focus?.();\n };\n\n context.expose({\n popupRef,\n allowInput,\n });\n\n return () => {\n // 浮层显示的受控与非受控\n const visibleProps = { visible: popupVisible.value ?? innerPopupVisible.value };\n\n const mainContent = (\n \n {multiple.value\n ? renderSelectMultiple({\n commonInputProps: commonInputProps.value,\n onInnerClear: onInnerClear,\n popupVisible: visibleProps.visible,\n allowInput: allowInput.value,\n })\n : renderSelectSingle(visibleProps.visible)}\n \n );\n\n const tipsNode = renderTNodeJSX('tips');\n\n const tipsClasses = [\n `${classPrefix.value}-input__tips`,\n `${classPrefix.value}-tips`,\n `${classPrefix.value}-is-${status.value}`,\n ];\n\n return (\n
    \n {mainContent}\n {tipsNode &&
    {tipsNode}
    }\n
    \n );\n };\n },\n});\n","import _SelectInput from './select-input';\nimport withInstall from '../utils/withInstall';\nimport { TdSelectInputProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SelectInputProps = TdSelectInputProps;\n\nexport const SelectInput = withInstall(_SelectInput);\n\nexport default SelectInput;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdOptionProps } from '../select/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 当前选项是否为全选,全选可以在顶部,也可以在底部。点击当前选项会选中禁用态除外的全部选项,即使是分组选择器也会选中全部选项 */\n checkAll: Boolean,\n /** 用于定义复杂的选项内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 用于定义复杂的选项内容。同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用该选项 */\n disabled: Boolean,\n /** 选项名称 */\n label: {\n type: String,\n default: '',\n },\n /** 选项标题,在选项过长时hover选项展示 */\n title: {\n type: String,\n default: '',\n },\n /** 选项值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n },\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckboxProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 用于标识是否为「全选选项」。单独使用无效,需在 CheckboxGroup 中使用 */\n checkAll: Boolean,\n /** 是否选中 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 是否选中,非受控属性 */\n defaultChecked: Boolean,\n /** 多选框内容,同 label */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用组件。如果父组件存在 CheckboxGroup,默认值由 CheckboxGroup.disabled 控制。优先级:Checkbox.disabled > CheckboxGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否为半选 */\n indeterminate: Boolean,\n /** 主文案 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否启用懒加载。数据量大时建议开启;加载复杂内容或大量图片时建议开启 */\n lazyLoad: Boolean,\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** HTML 原生属性 */\n title: {\n type: String,\n default: '',\n },\n /** 多选框的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n },\n /** 值变化时触发 */\n onChange: Function as PropType,\n};\n","import { ComputedRef, InjectionKey } from 'vue';\nimport { TdCheckboxGroupProps, TdCheckboxProps } from '../type';\n\nexport interface CheckboxGroupInjectData {\n name?: string;\n isCheckAll: boolean;\n maxExceeded: boolean;\n disabled: boolean;\n readonly: boolean;\n indeterminate: boolean;\n checkedValues: TdCheckboxGroupProps['value'];\n handleCheckboxChange: (data: { checked: boolean; e: Event; option: TdCheckboxProps }) => void;\n onCheckedChange: (p: { checked: boolean; checkAll: boolean; e: Event; option: TdCheckboxProps }) => void;\n}\n\nexport const CheckboxGroupInjectionKey: InjectionKey> =\n Symbol('CheckboxGroupProvide');\n","export default function observe(\n element: HTMLElement,\n root: HTMLElement,\n callback: Function,\n marginBottom: number,\n): IntersectionObserver {\n if (typeof window === 'undefined') return null;\n if (!window || !window.IntersectionObserver) {\n callback();\n return null;\n }\n let io: IntersectionObserver = null;\n try {\n io = new window.IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (entry.isIntersecting) {\n callback();\n io.unobserve(element);\n }\n },\n {\n rootMargin: `0px 0px ${marginBottom}px 0px`,\n root,\n },\n );\n io.observe(element);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n callback();\n }\n return io;\n}\n","import { defineComponent, ref, toRefs, inject, watch, computed } from 'vue';\nimport { isString } from 'lodash-es';\nimport props from './props';\nimport useVModel from '../hooks/useVModel';\nimport useRipple from '../hooks/useRipple';\nimport { useContent } from '../hooks/tnode';\nimport { useCommonClassName, usePrefixClass } from '../hooks/useConfig';\nimport { CheckboxGroupInjectionKey } from './consts';\nimport useCheckboxLazyLoad from './hooks/useCheckboxLazyLoad';\nimport useKeyboardEvent from './hooks/useKeyboardEvent';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\n\nexport default defineComponent({\n name: 'TCheckbox',\n props: {\n ...props,\n needRipple: Boolean,\n stopLabelTrigger: Boolean,\n index: Number,\n // 传递给 Checkbox 组件额外的数据\n data: Object,\n },\n setup(props) {\n const labelRef = ref();\n if (props.needRipple) {\n useRipple(labelRef);\n }\n const { STATUS } = useCommonClassName();\n\n const { checked, modelValue, lazyLoad } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const checkboxGroupData = inject(CheckboxGroupInjectionKey, undefined);\n\n /**\n * Warn: Do not use computed to set tName,\n * otherwise checkbox group will render all checkbox items on every checked or unchecked.\n */\n const tName = ref();\n watch(\n () => [props.name, checkboxGroupData?.value.name].join('_'),\n () => {\n const name = props.name || checkboxGroupData?.value.name;\n if (name) {\n tName.value = name;\n }\n },\n { immediate: true },\n );\n\n // checked\n const tChecked = ref(false);\n const getChecked = () => {\n const { value, checkAll } = props;\n if (checkAll) return checkboxGroupData?.value.isCheckAll;\n return checkboxGroupData?.value ? checkboxGroupData.value.checkedValues.includes(value) : innerChecked.value;\n };\n watch(\n () => [\n innerChecked.value,\n checkboxGroupData?.value.isCheckAll,\n checkboxGroupData?.value.checkedValues?.join(','),\n ],\n () => {\n tChecked.value = getChecked();\n },\n { immediate: true },\n );\n\n // Checkbox.disabled > CheckboxGroup.disabled > Form.disabled\n const beforeDisabled = computed(() => {\n if (!props.checkAll && !tChecked.value && checkboxGroupData?.value.maxExceeded) {\n return true;\n }\n return null;\n });\n const afterDisabled = computed(() => {\n return checkboxGroupData?.value.disabled;\n });\n const isDisabled = useDisabled({ beforeDisabled, afterDisabled });\n\n // Checkbox.readonly > CheckboxGroup.readonly > Form.readonly\n const afterReadonly = computed(() => {\n return checkboxGroupData?.value.readonly;\n });\n const isReadonly = useReadonly({ afterReadonly });\n\n const tIndeterminate = ref(false);\n watch(\n () => [props.checkAll, props.indeterminate, checkboxGroupData?.value.indeterminate],\n () => {\n tIndeterminate.value = props.checkAll ? checkboxGroupData?.value.indeterminate : props.indeterminate;\n },\n { immediate: true },\n );\n\n /** update labelClasses, do not use computed to get labelClasses */\n const COMPONENT_NAME = usePrefixClass('checkbox');\n const labelClasses = ref({});\n watch(\n [tChecked, isDisabled, tIndeterminate],\n () => {\n labelClasses.value = [\n `${COMPONENT_NAME.value}`,\n {\n [STATUS.value.checked]: tChecked.value,\n [STATUS.value.disabled]: isDisabled.value,\n [STATUS.value.indeterminate]: tIndeterminate.value,\n },\n ];\n },\n { immediate: true },\n );\n\n const handleChange = (e: Event) => {\n if (isReadonly.value) return;\n const checked = !tChecked.value;\n setInnerChecked(checked, { e });\n if (checkboxGroupData?.value.handleCheckboxChange) {\n checkboxGroupData.value.onCheckedChange({ checked, checkAll: props.checkAll, e, option: props });\n }\n };\n\n const renderContent = useContent();\n\n const handleLabelClick = (e: MouseEvent) => {\n // 在tree等组件中使用 阻止label触发checked 与expand冲突\n if (props.stopLabelTrigger) e.preventDefault();\n };\n\n const { showCheckbox } = useCheckboxLazyLoad(labelRef, lazyLoad);\n const { onCheckboxFocus, onCheckboxBlur } = useKeyboardEvent(handleChange);\n\n return () => {\n const titleAttr = isString(props.title) && props.title ? props.title : null;\n return (\n \n {!showCheckbox.value\n ? null\n : [\n ,\n ,\n \n {renderContent('default', 'label')}\n ,\n ]}\n \n );\n };\n },\n});\n","import { onBeforeUnmount, onMounted, Ref, ref, watch } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\n\nexport function useCheckboxLazyLoad(labelRef: Ref, lazyLoad: Ref) {\n const ioObserver = ref();\n const showCheckbox = ref(true);\n const handleLazyLoad = () => {\n if (!lazyLoad.value) return;\n showCheckbox.value = false;\n const io = observe(\n labelRef.value,\n null,\n () => {\n showCheckbox.value = true;\n },\n 0,\n );\n ioObserver.value = io;\n };\n\n onMounted(handleLazyLoad);\n\n watch([lazyLoad, labelRef], handleLazyLoad);\n\n onBeforeUnmount(() => {\n if (!lazyLoad.value) return;\n ioObserver.value.unobserve(labelRef.value);\n });\n\n return {\n showCheckbox,\n };\n}\n\nexport default useCheckboxLazyLoad;\n","import { CHECKED_CODE_REG } from '@tdesign/common-js/common';\n\nexport function useKeyboardEvent(handleChange: (e: Event) => void) {\n const keyboardEventListener = (e: KeyboardEvent) => {\n const isCheckedCode = CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code);\n if (isCheckedCode) {\n e.preventDefault();\n const { disabled } = (e.currentTarget as HTMLElement).querySelector('input');\n !disabled && handleChange(e);\n }\n };\n\n const onCheckboxFocus = (e: FocusEvent) => {\n e.currentTarget.addEventListener('keydown', keyboardEventListener);\n };\n\n const onCheckboxBlur = (e: FocusEvent) => {\n e.currentTarget.removeEventListener('keydown', keyboardEventListener);\n };\n\n return {\n onCheckboxFocus,\n onCheckboxBlur,\n };\n}\n\nexport default useKeyboardEvent;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCheckboxGroupProps } from '../checkbox/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否禁用组件。优先级:Form.disabled < CheckboxGroup.disabled < Checkbox.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否启用懒加载。子组件 Checkbox 数据量大时建议开启;加载复杂内容或大量图片时建议开启 */\n lazyLoad: Boolean,\n /** 支持最多选中的数量 */\n max: {\n type: Number,\n default: undefined,\n },\n /** 统一设置内部复选框 HTML 属性 */\n name: {\n type: String,\n default: '',\n },\n /** 以配置形式设置子元素。示例1:`['北京', '上海']` ,示例2: `[{ label: '全选', checkAll: true }, { label: '上海', value: 'shanghai' }]`。checkAll 值为 true 表示当前选项为「全选选项」 */\n options: {\n type: Array as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdCheckboxGroupProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdCheckboxGroupProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdCheckboxGroupProps['defaultValue'] => [],\n },\n /** 值变化时触发。`context.current` 表示当前变化的数据项,如果是全选则为空;`context.type` 表示引起选中数据变化的是选中或是取消选中,`context.option` 表示当前变化的数据项 */\n onChange: Function as PropType,\n};\n","import { defineComponent, provide, computed, watchEffect, ref, toRefs } from 'vue';\nimport { intersection } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport { isUndefined } from 'lodash-es';\nimport Checkbox from './checkbox';\nimport props from './checkbox-group-props';\nimport { CheckboxOptionObj, TdCheckboxProps, CheckboxGroupValue } from './type';\nimport { CheckboxGroupInjectionKey } from './consts';\nimport useVModel from '../hooks/useVModel';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useChildComponentSlots } from '../hooks/slot';\n\nexport default defineComponent({\n name: 'TCheckboxGroup',\n props,\n setup(props) {\n /** 样式 */\n const COMPONENT_NAME = usePrefixClass('checkbox-group');\n const renderTNodeJSX = useTNodeJSX();\n\n const { isArray } = Array;\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const optionList = ref>([]);\n\n const intersectionLen = computed(() => {\n if (!isArray(innerValue.value)) return 0;\n const values = optionList.value.map((item) => item.value);\n const n = intersection(innerValue.value, values);\n return n.length;\n });\n\n /**\n * 计算是否所有选项都被选中。\n * 此函数不接受参数,但依赖于外部的 `optionList` 和 `innerValue` 变量。\n *\n * @returns {boolean} 如果所有符合条件的选项都被选中,则返回 `true`;否则返回 `false`。\n */\n const isCheckAll = computed(() => {\n // 筛选出非禁用、非只读且不设置为“全选”的选项,并提取其值\n const optionItems = optionList.value\n .filter((item) => !item.disabled && !item.readonly && !item.checkAll)\n .map((t) => t.value);\n\n // 计算当前选中值与筛选后的选项值的交集\n const intersectionValues = intersection(optionItems, innerValue.value);\n\n // 判断交集的长度是否等于所有选项值的长度,以确定是否所有选项都被选中\n return intersectionValues.length === optionItems.length;\n });\n\n const indeterminate = computed(\n () => !isCheckAll.value && intersectionLen.value < optionList.value.length && intersectionLen.value !== 0,\n );\n\n const maxExceeded = computed(() => !isUndefined(props.max) && innerValue.value.length === props.max);\n\n watchEffect(() => {\n if (!props.options) return [];\n optionList.value = props.options.map((item) => {\n return isObject(item) ? item : { label: String(item), value: item };\n });\n });\n\n /**\n * 获取所有复选框的值。\n * 此函数遍历 `optionList` 中的项,忽略被标记为 `checkAll`、`disabled` 或 `readonly` 的项,\n * 并收集非这些状态的项的值到一个 Set 集合中。如果达到最大限制 `maxExceeded`,则停止遍历。\n *\n * @returns {CheckboxGroupValue} 返回一个数组,包含所有非 `checkAll`、`disabled`、`readonly` 状态复选框的值。\n */\n const getAllCheckboxValue = (): CheckboxGroupValue => {\n const val = new Set();\n\n // 遍历选项列表,忽略特定状态的项,并收集有效值\n for (let i = 0, len = optionList.value.length; i < len; i++) {\n const item = optionList.value[i];\n\n // 如果项被标记为检查所有、禁用或只读,则跳过当前循环迭代\n if (item.checkAll) continue;\n if (item.disabled) continue;\n if (item.readonly) continue;\n\n val.add(item.value); // 添加非排除状态项的值到集合中\n\n // 如果已达到最大限制,则终止循环\n if (maxExceeded.value) break;\n }\n\n return [...val]; // 从 Set 集合转换为数组并返回\n };\n\n const onCheckAllChange = (checked: boolean, context: { e: Event; source?: 't-checkbox' }) => {\n const value: CheckboxGroupValue = checked ? getAllCheckboxValue() : [];\n setInnerValue(value, {\n e: context.e,\n type: checked ? 'check' : 'uncheck',\n current: undefined,\n option: undefined,\n });\n };\n\n const handleCheckboxChange = (data: { checked: boolean; e: Event; option: TdCheckboxProps }) => {\n const currentValue = data.option.value;\n if (!isArray(innerValue.value)) {\n console.warn(`TDesign CheckboxGroup Warn: \\`value\\` must be an array, instead of ${typeof innerValue.value}`);\n return;\n }\n const val = [...innerValue.value];\n if (data.checked) {\n val.push(currentValue);\n } else {\n const i = val.indexOf(currentValue);\n val.splice(i, 1);\n }\n setInnerValue(val, {\n e: data.e,\n current: data.option.value,\n option: data.option,\n type: data.checked ? 'check' : 'uncheck',\n });\n };\n\n const onCheckedChange = (p: { checked: boolean; checkAll: boolean; e: Event; option: TdCheckboxProps }) => {\n const { checked, checkAll, e } = p;\n if (checkAll) {\n onCheckAllChange(checked, { e });\n } else {\n handleCheckboxChange(p);\n }\n };\n\n const getChildComponentSlots = useChildComponentSlots();\n\n const getOptionListBySlots = () => {\n const nodes = getChildComponentSlots('Checkbox');\n const arr: Array = [];\n nodes?.forEach((node) => {\n const option = node.props as CheckboxOptionObj;\n if (!option) return;\n // @ts-ignore types only declare checkAll not declare check-all\n if (option['check-all'] === '' || option['check-all'] === true) {\n option.checkAll = true;\n }\n arr.push(option);\n });\n return arr;\n };\n\n provide(\n CheckboxGroupInjectionKey,\n computed(() => ({\n name: props.name,\n isCheckAll: isCheckAll.value,\n checkedValues: innerValue.value || [],\n maxExceeded: maxExceeded.value,\n disabled: props.disabled,\n readonly: props.readonly,\n indeterminate: indeterminate.value,\n handleCheckboxChange,\n onCheckedChange,\n })),\n );\n\n return () => {\n let children = null;\n if (props.options?.length) {\n children = optionList.value?.map((option, index) => (\n \n ));\n } else {\n const nodes = renderTNodeJSX('default');\n optionList.value = getOptionListBySlots();\n children = nodes;\n }\n return (\n
    \n {children}\n
    \n );\n };\n },\n});\n","import _Checkbox from './checkbox';\nimport _Group from './group';\nimport withInstall from '../utils/withInstall';\nimport { TdCheckboxProps, TdCheckboxGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type CheckboxProps = TdCheckboxProps;\nexport type CheckboxGroupProps = TdCheckboxGroupProps;\n\nexport const Checkbox = withInstall(_Checkbox);\nexport const CheckboxGroup = withInstall(_Group);\n\nexport default Checkbox;\n","import { ComputedRef } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { TdSelectProps, TdOptionProps, SelectValue, SelectOption } from '../type';\n\nexport const getSingleContent = (\n value: TdSelectProps['value'],\n optionsMap: ComputedRef, TdOptionProps>>,\n): string => {\n const option = optionsMap.value.get(value);\n return option?.label || value?.toString();\n};\n\nexport const getMultipleContent = (\n value: SelectValue[],\n optionsMap: ComputedRef, TdOptionProps>>,\n) => {\n const res = [];\n for (const iterator of value) {\n const resLabel = getSingleContent(iterator, optionsMap);\n if (resLabel) {\n res.push(resLabel);\n }\n }\n return res;\n};\n\nexport const getNewMultipleValue = (innerValue: SelectValue[], optionValue: SelectValue) => {\n const value = cloneDeep(innerValue) as SelectValue[];\n const valueIndex = value.indexOf(optionValue);\n if (valueIndex < 0) {\n value.push(optionValue);\n } else {\n value.splice(valueIndex, 1);\n }\n return {\n value,\n isCheck: valueIndex < 0,\n };\n};\n","import { InjectionKey, ComputedRef } from 'vue';\nimport { TdSelectProps, TdOptionProps, SelectValue } from '../type';\n\nexport const selectInjectKey: InjectionKey<\n ComputedRef<{\n hoverIndex: number;\n selectValue: TdSelectProps['value'];\n size: TdSelectProps['size'];\n max: TdSelectProps['max'];\n reserveKeyword: TdSelectProps['reserveKeyword'];\n multiple: TdSelectProps['multiple'];\n handleValueChange: TdSelectProps['onChange'];\n handleCreate: TdSelectProps['onCreate'];\n handlerInputChange: TdSelectProps['onInputChange'];\n handlePopupVisibleChange: TdSelectProps['onPopupVisibleChange'];\n popupContentRef: ComputedRef;\n indeterminate: boolean;\n isCheckAll: boolean;\n onCheckAllChange: (checked: boolean) => void;\n getSelectedOptions: (selectValue?: SelectValue[] | SelectValue) => TdOptionProps[];\n displayOptions: TdSelectProps['options'];\n emitBlur: (e: MouseEvent | KeyboardEvent) => void;\n }>\n> = Symbol('selectProvide');\n","import { defineComponent, ref, computed, inject, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue';\n\nimport props from './option-props';\nimport Checkbox from '../checkbox/index';\n\n// hooks\nimport { useDisabled } from '../hooks/useDisabled';\nimport useRipple from '../hooks/useRipple';\nimport { useContent } from '../hooks/tnode';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { getNewMultipleValue } from './utils';\nimport { selectInjectKey } from './consts';\nimport { SelectValue } from './type';\n\nexport default defineComponent({\n name: 'TOption',\n props: {\n ...props,\n createAble: Boolean,\n multiple: Boolean,\n index: Number,\n rowIndex: Number,\n trs: Map,\n scrollType: String,\n isVirtual: Boolean,\n bufferSize: Number,\n checkAll: Boolean,\n },\n emits: ['row-mounted'],\n\n setup(props, context) {\n const selectProvider = inject(selectInjectKey);\n const formDisabled = useDisabled();\n const { vnode } = getCurrentInstance();\n\n const isReachMax = computed(\n () =>\n selectProvider.value.max !== 0 &&\n selectProvider.value.max <= (selectProvider.value.selectValue as SelectValue[]).length,\n );\n const disabled = computed(\n () =>\n formDisabled.value ||\n (props.multiple && isReachMax.value && !isSelected.value && !selectProvider.value.isCheckAll),\n );\n\n const renderContent = useContent();\n\n const selectName = usePrefixClass('select');\n const { STATUS, SIZE } = useCommonClassName();\n const liRef = ref();\n\n const isHover = ref(false);\n\n const isSelected = computed(() => {\n if (selectProvider.value.isCheckAll && !props.disabled) return true;\n return !props.multiple\n ? selectProvider.value.selectValue === props.value\n : (selectProvider.value.selectValue as SelectValue[]).includes(props.value);\n });\n\n const isIndeterminate = computed(() => {\n if (!props.checkAll) return false;\n return selectProvider.value.indeterminate;\n });\n\n const classes = computed(() => [\n `${selectName.value}-option`,\n [SIZE.value[selectProvider.value.size]],\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.selected]: isSelected.value,\n [`${selectName.value}-option__hover`]:\n (isHover.value || selectProvider.value.hoverIndex === props.index) && !disabled.value,\n },\n ]);\n\n const labelText = computed(() => props.label || props.value);\n\n const handleClick = (e: MouseEvent | KeyboardEvent) => {\n if (props.disabled || disabled.value) return;\n if (props.multiple) {\n handleCheckboxClick(!isSelected.value, { e });\n e.preventDefault();\n return;\n }\n\n if (props.createAble) {\n selectProvider.value.handleCreate?.(props.value);\n if (selectProvider.value.multiple) {\n selectProvider.value.handleValueChange(\n [...(selectProvider.value.selectValue as SelectValue[]), props.value],\n {\n selectedOptions: selectProvider.value.getSelectedOptions(),\n trigger: 'check',\n e,\n },\n );\n return;\n }\n }\n const selectedOptions = selectProvider.value.getSelectedOptions(props.value);\n selectProvider.value.handleValueChange(props.value, {\n option: selectedOptions?.[0],\n selectedOptions: selectedOptions,\n trigger: 'check',\n e,\n });\n selectProvider.value.handlePopupVisibleChange(false, { e });\n selectProvider.value.emitBlur(e);\n };\n\n const handleCheckboxClick = (val: boolean, context: { e: MouseEvent | KeyboardEvent }) => {\n if (props.checkAll) {\n selectProvider.value.onCheckAllChange(val);\n return;\n }\n const newValue = getNewMultipleValue(selectProvider.value.selectValue as SelectValue[], props.value);\n const selectedOptions = selectProvider.value.getSelectedOptions(newValue.value);\n\n selectProvider.value.handleValueChange(newValue.value, {\n option: selectedOptions.find((v) => v.value === props.value),\n selectedOptions,\n trigger: val ? 'check' : 'uncheck',\n e: context.e,\n });\n };\n\n const renderTitle = () => {\n const vProps = vnode.props || {};\n // 如果设置了title 说明希望自己控制title的展示\n if (Reflect.has(vProps, 'title')) {\n return props.title;\n }\n if (typeof labelText.value === 'string') return labelText.value;\n\n return null;\n };\n\n // 处理虚拟滚动节点挂载\n onMounted(() => {\n const { trs, rowIndex, isVirtual } = props;\n if (isVirtual) {\n trs.set(rowIndex, liRef.value);\n context.emit('row-mounted');\n }\n });\n\n // 处理虚拟滚动节点移除\n onBeforeUnmount(() => {\n if (props.isVirtual) {\n const { trs, rowIndex } = props;\n trs.delete(rowIndex);\n }\n });\n\n useRipple(liRef);\n\n return () => {\n const optionChild = renderContent('default', 'content') || labelText.value;\n\n return (\n (isHover.value = true)}\n onMouseleave={() => (isHover.value = false)}\n onClick={handleClick}\n >\n {selectProvider && props.multiple ? (\n \n {optionChild}\n \n ) : (\n {optionChild}\n )}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nexport default {\n /** 是否显示分隔线 */\n divider: {\n type: Boolean,\n default: true,\n },\n /** 分组别名 */\n label: {\n type: String,\n },\n};\n","import { defineComponent, inject, computed } from 'vue';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport props from './option-group-props';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { selectInjectKey } from './consts';\n\nexport default defineComponent({\n name: 'TOptionGroup',\n props,\n setup(props) {\n const selectProvider = inject(selectInjectKey);\n const COMPONENT_NAME = usePrefixClass('select-option-group');\n const { SIZE } = useCommonClassName();\n const renderTNodeJSX = useTNodeJSX();\n\n const classes = computed(() => [\n COMPONENT_NAME.value,\n SIZE.value[selectProvider.value.size],\n {\n [`${COMPONENT_NAME.value}__divider`]: props.divider,\n },\n ]);\n\n return () => (\n
  • \n {(props.label ?? false) &&
    {props.label}
    }\n {renderTNodeJSX('default')}\n
  • \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSelectProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可以清空选项 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedTags` 表示折叠的标签,泛型 `T` 继承 `SelectOption`,表示选项数据;`count` 表示折叠的数量, `onClose` 表示移除标签 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否允许用户创建新条目,需配合 filterable 使用 */\n creatable: Boolean,\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当下拉列表为空时显示的内容 */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义搜索规则,用于对现有数据进行搜索,判断是否过滤某一项数据。参数 `filterWords` 表示搜索词,`option`表示单个选项内容,返回值为 `true` 保留该选项,返回值为 `false` 则隐藏该选项。使用该方法时无需设置 `filterable` */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索,默认搜索规则不区分大小写,全文本任意位置匹配。如果默认搜索规则不符合业务需求,可以更为使用 `filter` 自定义过滤规则 */\n filterable: Boolean,\n /** 透传 Input 输入框组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined as TdSelectProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n },\n /** 用来定义 value / label / disabled 在 `options` 中对应的字段别名 */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 是否为加载状态 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 数据化配置选项内容 */\n options: {\n type: Array as PropType,\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传给 popup 组件的全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示下拉框,非受控属性 */\n defaultPopupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 是否显示右侧箭头,默认显示 */\n showArrow: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdSelectProps['size'],\n validator(val: TdSelectProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdSelectProps['status'],\n validator(val: TdSelectProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TagInput 标签输入框组件的全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined as TdSelectProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined as TdSelectProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean, Object, Array] as PropType,\n default: undefined,\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 用于控制选中值的类型。假设数据选项为:`[{ label: '姓名', value: 'name' }]`,value 表示值仅返回数据选项中的 value, object 表示值返回全部数据。 */\n valueType: {\n type: String as PropType,\n default: 'value' as TdSelectProps['valueType'],\n validator(val: TdSelectProps['valueType']): boolean {\n if (!val) return true;\n return ['value', 'object'].includes(val);\n },\n },\n /** 输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值变化时触发。`context.trigger` 表示触发变化的来源;`context.selectedOptions` 表示选中值的完整对象,数组长度一定和 `value` 相同;`context.option` 表示当前操作的选项,不一定存在 */\n onChange: Function as PropType,\n /** 点击清除按钮时触发 */\n onClear: Function as PropType,\n /** 当选择新创建的条目时触发 */\n onCreate: Function as PropType,\n /** 回车键按下时触发。`inputValue` 表示输入框的值,`value` 表示选中值 */\n onEnter: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n /** 输入值变化时,触发搜索事件。主要用于远程搜索新数据 */\n onSearch: Function as PropType,\n};\n","import { Ref, computed, onMounted, onBeforeUnmount } from 'vue';\nimport useVirtualScroll from '../../hooks/useVirtualScroll';\nimport { TdSelectProps } from '../type';\nimport { Styles } from '../../common';\n\nexport const usePanelVirtualScroll = (props: {\n scroll: TdSelectProps['scroll'];\n popupContentRef: Ref;\n options: Ref;\n}) => {\n const isVirtual = computed(\n () => props.scroll?.type === 'virtual' && props.options.value?.length > (props.scroll?.threshold || 100),\n );\n\n const {\n trs = null,\n visibleData = null,\n handleScroll: handleVirtualScroll = null,\n scrollHeight = null,\n translateY = null,\n handleRowMounted = null,\n } = props.scroll?.type === 'virtual'\n ? useVirtualScroll({\n container: props.popupContentRef,\n data: props.options,\n fixedHeight: props.scroll?.isFixedRowHeight || false,\n lineHeight: props.scroll?.rowHeight || 28, // 默认每行高度28\n bufferSize: props.scroll?.bufferSize || 20,\n threshold: props.scroll?.threshold || 100,\n })\n : {};\n let lastScrollY = -1;\n\n const onInnerVirtualScroll = (e: WheelEvent) => {\n if (!isVirtual.value) {\n return;\n }\n const target = e.target as HTMLElement;\n const top = target.scrollTop;\n // 排除横向滚动触发的纵向虚拟滚动计算\n if (Math.abs(lastScrollY - top) > 5) {\n handleVirtualScroll();\n lastScrollY = top;\n } else {\n lastScrollY = -1;\n }\n };\n\n // 监听popup滚动 处理虚拟滚动时的virtualData变化\n onMounted(() => {\n props.popupContentRef.value?.addEventListener('scroll', onInnerVirtualScroll);\n });\n\n // 卸载时取消监听\n onBeforeUnmount(() => {\n props.popupContentRef.value?.removeEventListener('scroll', onInnerVirtualScroll);\n });\n\n const cursorStyle = computed(\n () =>\n ({\n position: 'absolute',\n width: '1px',\n height: '1px',\n transition: 'transform 0.2s',\n transform: `translate(0, ${scrollHeight.value}px)`,\n '-ms-transform': `translate(0, ${scrollHeight.value}px)`,\n '-moz-transform': `translate(0, ${scrollHeight.value}px)`,\n '-webkit-transform': `translate(0, ${scrollHeight.value}px)`,\n } as Styles),\n );\n\n const panelStyle = computed(\n () =>\n ({\n transform: `translate(0, ${translateY.value}px)`,\n '-ms-transform': `translate(0, ${translateY.value}px)`,\n '-moz-transform': `translate(0, ${translateY.value}px)`,\n '-webkit-transform': `translate(0, ${translateY.value}px)`,\n } as Styles),\n );\n\n return {\n trs,\n scrollHeight,\n translateY,\n visibleData,\n handleRowMounted,\n isVirtual,\n cursorStyle,\n panelStyle,\n };\n};\n","/* eslint-disable */\n/**\n * 当前虚拟滚动存在的问题\n * 1. 反复拖动滚动条,底部会出现奇怪的高度\n * 2. 表格高度发生变化时,底部也会出现奇怪的高度\n * 3. 无法直接定位滚动到某个元素,进而无法实现 Select 组件直接滚动到选中项\n */\nimport { ref, toRefs, reactive, onMounted, computed, watch, nextTick } from 'vue';\n\n// 虚拟滚动Hooks的完整实现,只所以封装成hooks,主要是为了方便跟其他组件搭配使用,比如说表格或者下拉框\nconst useVirtualScroll = ({\n data,\n container,\n fixedHeight = false,\n lineHeight = 30,\n bufferSize = 20,\n threshold = 100,\n}: {\n data: any;\n container: any;\n fixedHeight: boolean;\n lineHeight: number;\n bufferSize: number;\n threshold: number;\n}) => {\n const state = reactive({\n visibleData: [],\n cachedHeight: [],\n cachedScrollY: [],\n });\n const isVirtual = computed(() => data.value.length > threshold);\n const updateId = ref(0);\n const trs = new Map(); // 当前展示的行元素和数据\n\n let visibleCount = 0; // 可见的节点数量\n let beforeScrollTop = 0; // 上一次的滚动条位置\n let index = 0; // 偏移行数\n let offset = 0; // 少于一行行高的偏移量\n let start = 0; // 第一条显示的行\n let last = 0; // 最后一条显示的行\n // let revising = false; // 是否正在修正滚动条\n\n const reset = () => {\n data.value.forEach((item: any, i: number) => {\n item.$index = i;\n if (fixedHeight) {\n state.cachedScrollY[i] = i * lineHeight;\n }\n });\n if (!fixedHeight) {\n state.cachedScrollY[data.value.length - 1] = undefined; // 初始化cachedScrollY数组的长度\n }\n };\n reset();\n\n // 计算虚拟滚动列表总高度,需要动态修正\n const scrollHeight = computed(() => {\n const { cachedHeight } = state;\n const { length } = cachedHeight;\n if (length) {\n const maxScrollY = cachedHeight.reduce((sum, v) => sum + v || lineHeight, 0); // 当前总高度\n if (cachedHeight.length === data.value.length) {\n return maxScrollY;\n }\n const average = maxScrollY / cachedHeight.length; // 平均高度\n return maxScrollY + (data.value.length - cachedHeight.length) * average; // 预估总高度\n }\n return isVirtual.value ? data.value.length * lineHeight : 0;\n });\n const translateY = computed(() => {\n const { visibleData } = state;\n const firstRow = visibleData[0];\n if (firstRow) {\n // 修复只有一个元素时存在偏移的问题\n return visibleData.length === 1 ? 0 : state.cachedScrollY[firstRow.$index];\n }\n return 0;\n });\n\n // 更新可视区域的节点数据\n const updateVisibleData = () => {\n last = Math.min(start + visibleCount + bufferSize * 2, data.value.length);\n state.visibleData = data.value.slice(start, last);\n };\n // 计算每行对应的scrollTop值\n const calculateScrollY = () => {\n const anchorDom = trs.get(index); // 获取锚点元素\n if (!anchorDom) {\n return; // 快速调整高度时,新的元素可能来不及加载,暂时跳过更新\n }\n const anchorDomHeight = anchorDom?.getBoundingClientRect()?.height; // 获取锚点元素的高\n state.cachedScrollY[index] = container.value.scrollTop - offset; // 锚点元素scrollY= 容器滚动高度 - 锚点元素的offset\n state.cachedHeight[index] = anchorDomHeight;\n\n for (let i = index + 1; i <= state.visibleData[state.visibleData.length - 1]?.$index; i++) {\n // 计算锚点后面的元素scrollY\n const tr = trs.get(i);\n const { height } = tr?.getBoundingClientRect() || {};\n state.cachedHeight[i] = height;\n const scrollY = state.cachedScrollY[i - 1] + state.cachedHeight[i - 1]; // 当前元素的y 是前一个元素的y+前一个元素高度\n // state.cachedScrollY[i] = scrollY;\n state.cachedScrollY.splice(i, 1, scrollY); // 兼容vue2的composition api\n }\n\n for (let i = index - 1; i >= state.visibleData[0]?.$index; i--) {\n const tr = trs.get(i);\n const { height } = tr?.getBoundingClientRect() || {};\n state.cachedHeight[i] = height;\n const scrollY = state.cachedScrollY[i + 1] - state.cachedHeight[i]; // 当前元素的y是下一个元素y - 当前元素高度\n // state.cachedScrollY[i] = scrollY;\n state.cachedScrollY.splice(i, 1, scrollY);\n }\n if (state.cachedScrollY[0] > 0) {\n // 修正滚动过快时,滚动到顶部时,滚动条多余的问题\n // revising = true;\n const distance = state.cachedScrollY[0]; // 第一个元素scrollY即为多出的量\n const length = Math.min(last, data.value.length);\n for (let i = 0; i < length; i++) {\n // state.cachedScrollY[i] -= distance;\n state.cachedScrollY.splice(i, 1, state.cachedScrollY[i] - distance);\n }\n\n const scrollTop = state.cachedScrollY[index - 1] ? state.cachedScrollY[index - 1] + offset : offset;\n container.value.scrollTop = scrollTop;\n beforeScrollTop = scrollTop;\n // revising = false;\n }\n // 修正拖动过快时,滚动到顶端时,滚动条不足的偏差\n if (state.cachedScrollY[start] < 0) {\n // revising = true;\n const s = state.cachedHeight.slice(0, Math.max(0, index)).reduce((sum, v) => sum + v, 0) + offset;\n container.value.scrollTop = s;\n beforeScrollTop = s;\n if (s === 0) {\n index = 0;\n offset = 0;\n }\n // revising = false;\n }\n nextTick(() => {\n // setTimeout是为了保证快速拖动到底部时,以下逻辑能够正常执行\n const { scrollTop, scrollHeight, clientHeight } = container.value;\n if (scrollTop + clientHeight === scrollHeight) {\n // 滚动到底部时,修正底部有空余的问题\n // revising = true;\n for (let i = last - 1; i >= start; i--) {\n if (i === last - 1) {\n // state.cachedScrollY[i] = scrollHeight.value - state.cachedHeight[i];\n state.cachedScrollY.splice(i, 1, scrollHeight.value - state.cachedHeight[i]);\n } else {\n // state.cachedScrollY[i] = state.cachedScrollY[i + 1] - state.cachedHeight[i];\n state.cachedScrollY.splice(i, 1, state.cachedScrollY[i + 1] - state.cachedHeight[i]);\n }\n }\n // revising = false;\n }\n });\n };\n\n // 滚动时动态计算和渲染\n const handleScroll = () => {\n if (!isVirtual.value) return;\n // if (revising) {\n // return false; // 修正滚动条时,暂停滚动逻辑\n // }\n const { scrollTop } = container.value;\n let distance = scrollTop - beforeScrollTop; // 滚动差值\n beforeScrollTop = scrollTop;\n distance += offset;\n let lastIndex = index;\n // !disatance 可能为横向滚动,不做任何计算\n if (!distance) return;\n if (distance >= 0) {\n // 向下滚动\n while (lastIndex < data.value.length && distance > (state.cachedHeight[lastIndex] || lineHeight)) {\n if (!state.cachedHeight[lastIndex]) {\n state.cachedHeight[lastIndex] = lineHeight;\n }\n distance -= state.cachedHeight[lastIndex];\n lastIndex++;\n }\n if (lastIndex >= data.value.length) {\n index = data.value.length - 1;\n offset = 0;\n } else {\n index = lastIndex;\n offset = distance;\n }\n const { clientHeight, scrollHeight } = container.value;\n if (scrollTop + clientHeight === scrollHeight) {\n // 滚动条到底了\n index = data.value.length - visibleCount + 1;\n // calculateScrollY();\n }\n if (start <= index - bufferSize) {\n // 计算第一个挂载元素\n start = Math.min(data.value.length - visibleCount, index - bufferSize);\n if (start < 0) {\n start = 0;\n }\n }\n } else {\n // 向上滚动\n while (distance < 0) {\n lastIndex--;\n if (!state.cachedHeight[lastIndex]) {\n state.cachedHeight[lastIndex] = lineHeight;\n }\n distance += state.cachedHeight[lastIndex];\n }\n if (lastIndex < 0) {\n index = 0;\n offset = 0;\n } else {\n index = lastIndex;\n offset = distance;\n }\n calculateScrollY();\n if (start > index - bufferSize) {\n // 计算第一个挂载元素\n start = Math.max(0, index - bufferSize);\n }\n }\n updateVisibleData();\n };\n\n !fixedHeight && watch(updateId, calculateScrollY, { flush: 'post' });\n const handleRowMounted = () => {\n if (!isVirtual.value) return;\n updateId.value++;\n };\n watch(data, () => {\n reset();\n state.visibleData = [];\n state.cachedScrollY = [];\n state.cachedHeight = [];\n beforeScrollTop = 0;\n index = 0;\n offset = 0;\n start = 0;\n // revising = false;\n trs.clear();\n if (data.value.length <= threshold) {\n state.visibleData = data.value;\n } else {\n updateVisibleData();\n }\n\n container.value && (container.value.scrollTop = 0);\n });\n let mounted = false;\n const refreshContainer = () => {\n if (mounted) {\n visibleCount = Math.ceil(container.value.offsetHeight / lineHeight);\n updateVisibleData();\n }\n };\n onMounted(() => {\n if (!window || !window.IntersectionObserver) {\n return;\n }\n const ob = new window.IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry.isIntersecting || entry.intersectionRatio) {\n mounted = true;\n isVirtual.value && refreshContainer();\n ob.unobserve(container.value);\n }\n });\n container.value && ob.observe(container.value);\n });\n return {\n trs,\n scrollHeight,\n ...toRefs(state),\n translateY,\n handleScroll,\n handleRowMounted,\n refreshContainer,\n fixedHeight,\n calculateScrollY,\n };\n};\nexport default useVirtualScroll;\n","import { computed, defineComponent, inject, Slots, ref } from 'vue';\nimport { omit } from 'lodash-es';\nimport { Styles } from '../common';\n\nimport { SelectOption, SelectOptionGroup, TdOptionProps } from './type';\nimport Option from './option';\nimport OptionGroup from './option-group';\nimport TdSelectProps from './props';\n\nimport { useTNodeJSX, useTNodeDefault } from '../hooks/tnode';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { usePanelVirtualScroll } from './hooks/usePanelVirtualScroll';\nimport { selectInjectKey } from './consts';\n\nexport default defineComponent({\n name: 'TSelectPanel',\n props: {\n inputValue: TdSelectProps.inputValue,\n panelTopContent: TdSelectProps.panelTopContent,\n panelBottomContent: TdSelectProps.panelBottomContent,\n empty: TdSelectProps.empty,\n creatable: TdSelectProps.creatable,\n loading: TdSelectProps.loading,\n loadingText: TdSelectProps.loadingText,\n multiple: TdSelectProps.multiple,\n filterable: TdSelectProps.filterable,\n filter: TdSelectProps.filter,\n scroll: TdSelectProps.scroll,\n size: TdSelectProps.size,\n },\n setup(props, { expose }) {\n const COMPONENT_NAME = usePrefixClass('select');\n const renderTNodeJSX = useTNodeJSX();\n const renderDefaultTNode = useTNodeDefault();\n const { t, globalConfig } = useConfig('select');\n const tSelect = inject(selectInjectKey);\n const innerRef = ref(null);\n\n const popupContentRef = computed(() => tSelect.value.popupContentRef.value);\n const showCreateOption = computed(() => props.creatable && props.filterable && props.inputValue);\n const displayOptions = computed(() => tSelect.value.displayOptions);\n\n const { trs, visibleData, handleRowMounted, isVirtual, panelStyle, cursorStyle } = usePanelVirtualScroll({\n scroll: props.scroll,\n popupContentRef,\n options: displayOptions,\n });\n\n const isEmpty = computed(() => !displayOptions.value.length);\n\n const renderCreateOption = () => (\n
      \n \n
    \n );\n\n // 递归render options\n const renderOptionsContent = (options: SelectOption[]) => {\n return (\n
      \n {options.map((item: SelectOptionGroup & TdOptionProps & { slots: Slots } & { $index: number }, index) => {\n if (item.children) {\n return (\n \n {renderOptionsContent(item.children)}\n \n );\n }\n return (\n \n );\n })}\n
    \n );\n };\n const dropdownInnerSize = computed(() => {\n return {\n small: 's',\n medium: 'm',\n large: 'l',\n }[tSelect.value.size];\n });\n\n expose({\n innerRef,\n visibleData, // 虚拟滚动的展示数据\n isVirtual,\n displayOptions, // 非虚拟滚动的展示数据\n });\n\n const renderPanel = (options: SelectOption[], extraStyle?: Styles) => (\n \n {/* create option */}\n {showCreateOption.value && renderCreateOption()}\n {/* loading状态 */}\n {props.loading &&\n renderDefaultTNode('loadingText', {\n defaultNode:
    {t(globalConfig.value.loadingText)}
    ,\n })}\n {/* 空状态 */}\n {!props.loading && isEmpty.value && !showCreateOption.value && (\n
    {renderTNodeJSX('empty') || t(globalConfig.value.empty)}
    \n )}\n {!isEmpty.value && renderOptionsContent(options)}\n \n );\n return {\n renderPanel,\n panelStyle,\n cursorStyle,\n isVirtual,\n displayOptions,\n visibleData,\n renderTNodeJSX,\n };\n },\n render() {\n return this.isVirtual ? (\n <>\n {this.renderTNodeJSX('panelTopContent')}\n
    \n
    \n {this.renderPanel(this.visibleData, this.panelStyle)}\n
    \n {this.renderTNodeJSX('panelBottomContent')}\n \n ) : (\n <>\n {this.renderTNodeJSX('panelTopContent')}\n {this.renderPanel(this.displayOptions)}\n {this.renderTNodeJSX('panelBottomContent')}\n \n );\n },\n});\n","import { computed, Slots, Ref, ref } from 'vue';\nimport { isArray } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\n\nimport { useChildComponentSlots } from '../../hooks/slot';\nimport { TdSelectProps, TdOptionProps, SelectOptionGroup, SelectValue, SelectOption } from '../type';\nimport { KeysType } from '../../common';\n\ntype UniOption = (TdOptionProps | SelectOptionGroup) & {\n index?: number;\n slots?: Slots;\n};\n\nexport const useSelectOptions = (props: TdSelectProps, keys: Ref, inputValue: Ref) => {\n const getChildComponentSlots = useChildComponentSlots();\n const optionsCache = ref([]);\n\n const options = computed(() => {\n let dynamicIndex = 0;\n // 统一处理 keys,处理通用数据\n const innerOptions: UniOption[] =\n props.options?.map((option) => {\n const getFormatOption = (option: TdOptionProps) => {\n const { value, label, disabled } = keys.value;\n const res = {\n ...option,\n index: dynamicIndex,\n label: get(option, label),\n value: get(option, value),\n disabled: get(option, disabled) || false,\n };\n dynamicIndex++;\n return res;\n };\n if ((option as SelectOptionGroup).children) {\n return {\n ...option,\n children: (option as SelectOptionGroup).children.map((child) => getFormatOption(child)),\n };\n }\n return getFormatOption(option);\n }) || [];\n\n // 处理 slots\n const optionsSlots = getChildComponentSlots('Option');\n const groupSlots = getChildComponentSlots('OptionGroup');\n\n if (isArray(groupSlots)) {\n for (const group of groupSlots) {\n const groupOption = {\n group: group.props?.label,\n ...group.props,\n children: [] as TdOptionProps[],\n };\n const res = getChildComponentSlots('Option', group.children as Slots);\n if (!isArray(res)) continue;\n for (const child of res) {\n groupOption.children.push({\n ...child.props,\n slots: child.children,\n index: dynamicIndex,\n } as TdOptionProps);\n dynamicIndex++;\n }\n\n innerOptions.push(groupOption);\n }\n }\n if (isArray(optionsSlots)) {\n for (const child of optionsSlots) {\n innerOptions.push({\n ...child.props,\n slots: child.children,\n index: dynamicIndex,\n } as TdOptionProps);\n dynamicIndex++;\n }\n }\n return innerOptions;\n });\n\n const optionsList = computed(() => {\n const res: TdOptionProps[] = [];\n const getOptionsList = (options: TdOptionProps[]) => {\n for (const option of options) {\n if ((option as SelectOptionGroup).children) {\n getOptionsList((option as SelectOptionGroup).children);\n } else {\n res.push(option);\n }\n }\n };\n getOptionsList(options.value);\n return res;\n });\n\n const optionsMap = computed(() => {\n const res = new Map();\n // map以最新的为主 避免存在重复value更新的场景 https://github.com/Tencent/tdesign-vue-next/issues/2646\n optionsCache.value.concat(optionsList.value).forEach((option: TdOptionProps) => {\n res.set(option.value, option);\n });\n return res;\n });\n\n const filterMethods = (option: SelectOption) => {\n if (isFunction(props.filter)) {\n return props.filter(`${inputValue.value}`, option);\n }\n return option.label?.toLowerCase?.().indexOf(`${inputValue.value}`.toLowerCase()) > -1;\n };\n\n const displayOptions = computed(() => {\n if (props.onSearch && props.filterable) return options.value; // 远程搜索时,不执行内部的过滤,不干预用户的自行处理,如输入首字母搜索中文的场景等\n\n if (!inputValue.value || !(props.filterable || isFunction(props.filter))) return options.value;\n\n let checkAllOption: SelectOption;\n\n let res: SelectOption[] = [];\n\n options.value.forEach((option) => {\n if ((option as SelectOptionGroup).children) {\n res.push({\n ...option,\n children: (option as SelectOptionGroup).children.filter(filterMethods),\n });\n }\n\n if ((option as TdOptionProps)?.checkAll === true) checkAllOption = option;\n\n if (filterMethods(option)) {\n res.push(option);\n }\n });\n\n if (!isFunction(props.filter)) {\n // 使用默认 filter,增加表现,调整全等项到首尾,避免全等项位于最后\n // inputValue: ab\n // options abcde, abcd, abc, ab\n const exactMatch = res.filter((item) => item.label === inputValue.value);\n const fuzzyMatch = res.filter((item) => item.label !== inputValue.value);\n res = exactMatch.concat(fuzzyMatch);\n }\n\n return res.length && checkAllOption ? [checkAllOption, ...res] : res;\n });\n\n return {\n options,\n optionsMap,\n optionsList,\n optionsCache,\n displayOptions,\n filterMethods,\n };\n};\n","import { defineComponent, provide, computed, toRefs, watch, ref, nextTick, PropType } from 'vue';\nimport { pick as picker } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { debounce } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { intersection } from 'lodash-es';\nimport FakeArrow from '../common-components/fake-arrow';\nimport SelectInput from '../select-input';\nimport SelectPanel from './select-panel';\nimport props from './props';\n// hooks\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport useDefaultValue from '../hooks/useDefaultValue';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { getSingleContent, getMultipleContent } from './utils';\nimport { selectInjectKey } from './consts';\nimport { useSelectOptions, useKeyboardControl } from './hooks';\nimport type { PopupProps, PopupVisibleChangeContext } from '../popup';\nimport type { SelectInputChangeContext, SelectInputValueChangeContext } from '../select-input';\nimport type { TdSelectProps, SelectValue } from './type';\nimport { SelectInputValueDisplayOptions } from '../select-input/hooks/useSingle';\nimport { TagInputTriggerSource } from '../tag-input';\n\nexport default defineComponent({\n name: 'TSelect',\n props: {\n ...props,\n /**\n * 非公开 API,请勿使用(后续即将删除)\n */\n valueDisplayOptions: {\n type: Object as PropType,\n },\n },\n setup(props: TdSelectProps & { valueDisplayOptions: SelectInputValueDisplayOptions }, { slots }) {\n const classPrefix = usePrefixClass();\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('select');\n const { globalConfig, t } = useConfig('select');\n const { popupVisible, inputValue, modelValue, value } = toRefs(props);\n const [innerInputValue, setInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const [orgValue, setOrgValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const selectPanelRef = ref(null);\n const selectInputRef = ref(null);\n const keys = computed(() => ({\n label: props.keys?.label || 'label',\n value: props.keys?.value || 'value',\n disabled: props.keys?.disabled || 'disabled',\n }));\n const { optionsMap, optionsList, optionsCache, displayOptions, filterMethods } = useSelectOptions(\n props,\n keys,\n innerInputValue,\n );\n\n // 内部数据,格式化过的\n const innerValue = computed(() => {\n if (orgValue.value === undefined) {\n return props.multiple ? [] : undefined;\n }\n if (props.valueType === 'object') {\n return !props.multiple\n ? // @ts-ignore\n // TODO optimize SelectValue\n orgValue.value[keys.value.value]\n : // @ts-ignore\n // TODO optimize SelectValue\n (orgValue.value as SelectValue[]).map((option) => option[keys.value.value]);\n }\n return orgValue.value;\n });\n\n const setInnerValue: TdSelectProps['onChange'] = (newVal: SelectValue | SelectValue[], context) => {\n if (props.valueType === 'object') {\n const { value, label } = keys.value;\n const getOption = (val: SelectValue) => {\n if (val === undefined) {\n return undefined;\n }\n const option = optionsMap.value.get(val);\n return {\n [value]: get(option, value),\n [label]: get(option, label),\n };\n };\n newVal = props.multiple ? (newVal as SelectValue[]).map((val) => getOption(val)) : getOption(newVal);\n }\n if (newVal === orgValue.value) return;\n if (props.multiple && !props.reserveKeyword) setInputValue('');\n setOrgValue(newVal, {\n selectedOptions: getSelectedOptions(newVal),\n ...context,\n });\n };\n\n const [innerPopupVisible, setInnerPopupVisible] = useDefaultValue(\n popupVisible,\n false,\n (visible: boolean, context: PopupVisibleChangeContext) => {\n props.onPopupVisibleChange?.(visible, context);\n },\n 'popupVisible',\n );\n\n const placeholderText = computed(\n () =>\n ((!props.multiple && innerPopupVisible.value && getSingleContent(innerValue.value, optionsMap)) ||\n props.placeholder) ??\n t(globalConfig.value.placeholder),\n );\n\n // selectInput 展示值\n const displayText = computed(() =>\n props.multiple\n ? getMultipleContent(innerValue.value as SelectValue[], optionsMap)\n : getSingleContent(innerValue.value, optionsMap),\n );\n\n // valueDisplayParams参数\n const valueDisplayParams = computed(() => {\n const val =\n props.multiple && isArray(innerValue.value)\n ? (innerValue.value as SelectValue[]).map((value) => ({\n value,\n label: optionsMap.value.get(value)?.label,\n }))\n : innerValue.value;\n\n const params = {\n value: val,\n onClose: props.multiple ? (index: number) => removeTag(index) : () => {},\n };\n\n if (!props.multiple) Object.assign(params, { label: displayText.value });\n\n if (props.minCollapsedNum && props.multiple) {\n return {\n ...params,\n displayValue: val?.slice?.(0, props.minCollapsedNum),\n };\n }\n return params;\n });\n\n const isFilterable = computed(() => {\n return Boolean(props.filterable || globalConfig.value.filterable || isFunction(props.filter));\n });\n\n const isRemoteSearch = computed(() => {\n return Boolean((props.filterable || globalConfig.value.filterable) && isFunction(props.onSearch));\n });\n\n // 移除tag\n const removeTag = (index: number, context?: SelectInputChangeContext) => {\n const { e, trigger = 'tag-remove' } =\n (context as SelectInputChangeContext & {\n trigger: Exclude;\n }) || {};\n\n e && e.stopPropagation();\n\n const selectValue = cloneDeep(innerValue.value) as SelectValue[];\n const value = selectValue[index];\n\n selectValue.splice(index, 1);\n\n if (trigger !== 'clear') {\n setInnerValue(selectValue, { selectedOptions: getSelectedOptions(selectValue), trigger, e });\n }\n\n props.onRemove?.({\n value: value as string | number,\n data: optionsMap.value.get(value),\n e,\n });\n };\n\n const handleCreate = () => {\n if (!innerInputValue.value) return;\n props.onCreate?.(innerInputValue.value);\n // only clean input value when reopen popup\n if (!innerPopupVisible.value) setInputValue('');\n };\n\n const popupContentRef = computed(() => selectInputRef.value?.popupRef.getOverlay() as HTMLElement);\n\n /**\n * 可选选项的列表\n * 排除已禁用和全选的选项,考虑过滤情况\n */\n const optionalList = computed(() =>\n optionsList.value.filter((item) => {\n return (\n !item.disabled &&\n // @ts-ignore types only declare checkAll not declare check-all\n !item['check-all'] &&\n !item.checkAll &&\n filterMethods(item)\n );\n }),\n );\n\n const getSelectedOptions = (selectValue: SelectValue[] | SelectValue = innerValue.value) => {\n return optionsList.value.filter((option) => {\n if (option.checkAll) return;\n if (isArray(selectValue)) return selectValue.includes(option.value);\n return selectValue === option.value;\n });\n };\n\n const { hoverIndex, virtualFilteredOptions, handleKeyDown, filteredOptions } = useKeyboardControl({\n displayOptions,\n optionsList,\n innerPopupVisible,\n setInnerPopupVisible,\n selectPanelRef,\n isFilterable,\n isRemoteSearch,\n getSelectedOptions,\n setInnerValue,\n innerValue,\n popupContentRef,\n multiple: props.multiple,\n max: props.max,\n });\n\n /*\n * 全选逻辑:\n * 根据 checked 的值计算最终选中的值:\n * - 如果 checked 为 true,则选中所有非 disabled 选项,并保留已选中的 disabled 选项。\n * - 如果 checked 为 false,则只保留已选中的 disabled 选项。\n * - 过滤条件下,如果 checked 为 true,则选中所有非 disabled 选项,并保留已选中的选项。\n * - 过滤条件下,如果 checked 为 false,则只保留已选中的 disabled 选项。\n */\n const onCheckAllChange = (checked: boolean) => {\n if (!props.multiple) return;\n const { value } = keys.value;\n // disabled状态的选项,不参与全选的计算,始终保留\n const lockedValues = innerValue.value.filter((value: string | number | boolean) => {\n return optionsList.value.find((item) => item.value === value && item.disabled);\n });\n\n const activeValues = optionalList.value.map((option) => option.value);\n const formattedOrgValue =\n props.valueType === 'object'\n ? (orgValue.value as Array).map((v) => get(v, value))\n : orgValue.value;\n\n const values = checked\n ? [...new Set([...(formattedOrgValue as Array), ...activeValues, ...lockedValues])]\n : [...lockedValues];\n setInnerValue(values, { selectedOptions: getSelectedOptions(values), trigger: checked ? 'check' : 'clear' });\n };\n\n // 已选的长度\n const intersectionLen = computed(() => {\n const values = optionalList.value.map((item) => item.value);\n const n = intersection(innerValue.value, values);\n return n.length;\n });\n\n // 全选\n const isCheckAll = computed(() => {\n return intersectionLen.value === optionalList.value.length;\n });\n\n // 半选\n const indeterminate = computed(() => !isCheckAll.value && intersectionLen.value !== 0);\n\n const SelectProvider = computed(() => ({\n max: props.max,\n multiple: props.multiple,\n hoverIndex: hoverIndex.value,\n selectValue: innerValue.value,\n reserveKeyword: props.reserveKeyword,\n handleValueChange: setInnerValue,\n handlerInputChange: setInputValue,\n handlePopupVisibleChange: setInnerPopupVisible,\n handleCreate,\n size: props.size,\n popupContentRef,\n indeterminate: indeterminate.value,\n isCheckAll: isCheckAll.value,\n onCheckAllChange,\n getSelectedOptions,\n displayOptions: displayOptions.value,\n emitBlur: handleOptionEmitBlur,\n }));\n\n provide(selectInjectKey, SelectProvider);\n\n const checkValueInvalid = () => {\n // 参数类型检测与修复\n if (!props.multiple && isArray(orgValue.value)) {\n setOrgValue(undefined, { selectedOptions: [], trigger: 'default' });\n }\n if (props.multiple && !isArray(orgValue.value)) {\n setOrgValue([], { selectedOptions: [], trigger: 'default' });\n }\n };\n\n const handleSearch = debounce((value: string, { e }: { e: KeyboardEvent }) => {\n props.onSearch?.(`${value}`, { e });\n }, 300);\n\n const handlerInputChange = (value: string, context: SelectInputValueChangeContext) => {\n if (value) {\n !innerPopupVisible.value && setInnerPopupVisible(true, { e: context.e as KeyboardEvent });\n }\n setInputValue(value);\n handleSearch(`${value}`, { e: context.e as KeyboardEvent });\n nextTick(() => {\n virtualFilteredOptions.value = selectPanelRef.value?.visibleData;\n filteredOptions.value = selectPanelRef.value?.displayOptions;\n });\n };\n\n const handleOptionEmitBlur = (e: MouseEvent | KeyboardEvent) => {\n props.onBlur?.({ e, value: innerValue.value });\n };\n\n const handlerPopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n setInnerPopupVisible(visible, context);\n // 在通过点击选择器打开弹窗时 清空此前的输入内容 避免在关闭时就清空引起的闪烁问题\n if (visible && context.trigger === 'trigger-element-click') setInputValue('');\n };\n\n const handlerPopupScrollToBottom: PopupProps['onScrollToBottom'] = async (context) => {\n const { popupProps } = props;\n if (props.loading) {\n return;\n }\n // @ts-ignore types 中只有 onScrollToBottom,但 Vue 会自动转换 on-scroll-to-bottom 并支持,故此处都进行调用\n popupProps?.['on-scroll-to-bottom']?.(context);\n popupProps?.onScrollToBottom?.(context);\n };\n\n const addCache = (val: SelectValue) => {\n if (props.multiple) {\n const newCache = [];\n for (const item of (val as SelectValue[]) || []) {\n const option = optionsMap.value.get(item);\n if (option) {\n newCache.push(option);\n }\n }\n optionsCache.value = Array.from(new Set([...newCache, ...optionsCache.value]));\n } else {\n const option = optionsMap.value.get(val);\n if (option) {\n optionsCache.value = Array.from(new Set([option, ...optionsCache.value]));\n }\n }\n };\n\n watch(\n orgValue,\n (val) => {\n checkValueInvalid();\n nextTick(() => {\n addCache(val);\n });\n },\n {\n immediate: true,\n },\n );\n watch(\n () => props.multiple,\n () => {\n checkValueInvalid();\n },\n );\n\n // 列表展开时定位置选中项\n const updateScrollTop = (content: HTMLDivElement) => {\n if (!selectPanelRef.value) {\n return;\n }\n const firstSelectedNode: HTMLDivElement = (selectPanelRef.value?.innerRef as HTMLDivElement)?.querySelector(\n `.${classPrefix.value}-is-selected`,\n );\n // 此处需要等待渲染后进行计算\n nextTick(() => {\n if (firstSelectedNode && content) {\n const { paddingBottom } = getComputedStyle(firstSelectedNode);\n const { marginBottom } = getComputedStyle(content);\n const elementBottomHeight = parseInt(paddingBottom, 10) + parseInt(marginBottom, 10);\n // 小于0时不需要特殊处理,会被设为0\n const updateValue =\n firstSelectedNode.offsetTop -\n content.offsetTop -\n (content.clientHeight - firstSelectedNode.clientHeight) +\n elementBottomHeight;\n // eslint-disable-next-line no-param-reassign\n content.scrollTop = updateValue;\n }\n });\n };\n provide('updateScrollTop', updateScrollTop);\n return () => {\n const { overlayClassName, ...restPopupProps } = (props.popupProps || {}) as TdSelectProps['popupProps'];\n return (\n
    \n {\n removeTag(ctx.index, ctx);\n }}\n tagProps={{ ...(props.tagProps as TdSelectProps['tagProps']) }}\n popupProps={{\n overlayClassName: [`${COMPONENT_NAME.value}__dropdown`, overlayClassName],\n ...restPopupProps,\n onScrollToBottom: handlerPopupScrollToBottom,\n }}\n label={props.label}\n prefixIcon={props.prefixIcon}\n suffix={props.suffix}\n suffixIcon={() => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n return (\n props.showArrow && (\n \n )\n );\n }}\n valueDisplay={() =>\n renderTNodeJSX('valueDisplay', {\n params: valueDisplayParams.value,\n })\n }\n onPopupVisibleChange={handlerPopupVisibleChange}\n onInputChange={handlerInputChange}\n onClear={({ e }) => {\n setInnerValue(props.multiple ? [] : undefined, {\n option: null,\n selectedOptions: getSelectedOptions(props.multiple ? [] : undefined),\n trigger: 'clear',\n e,\n });\n props.onClear?.({ e });\n }}\n onEnter={(inputValue, { e }) => {\n // onEnter和handleKeyDown的Enter事件同时触发,需要通过setTimeout设置先后\n setTimeout(() => {\n props.onEnter?.({ inputValue: `${innerInputValue.value}`, e, value: innerValue.value });\n handleCreate();\n }, 0);\n }}\n onBlur={(inputValue, { e }) => {\n props.onBlur?.({ e, value: innerValue.value });\n }}\n onFocus={(inputValue, { e }) => {\n props.onFocus?.({ e, value: innerValue.value });\n }}\n {...(props.selectInputProps as TdSelectProps['selectInputProps'])}\n v-slots={{\n label: slots.label,\n prefixIcon: slots.prefixIcon,\n suffix: slots.suffix,\n panel: () => (\n \n ),\n collapsedItems: slots.collapsedItems,\n }}\n />\n
    \n );\n };\n },\n});\n","import { ref, watch, ComputedRef, Ref } from 'vue';\nimport { usePrefixClass } from '../../hooks/useConfig';\n\nimport { getNewMultipleValue } from '../utils';\n\nimport type { SelectOption, TdOptionProps, SelectValue } from '../type';\nimport type { ChangeHandler } from '../../hooks/useVModel';\nimport type { PopupVisibleChangeContext } from '../../popup';\n\nexport type useKeyboardControlType = {\n displayOptions: ComputedRef;\n optionsList: ComputedRef;\n innerPopupVisible: Ref;\n setInnerPopupVisible: ChangeHandler;\n selectPanelRef: Ref<{ isVirtual: boolean; innerRef: HTMLDivElement }>;\n isFilterable: ComputedRef;\n isRemoteSearch: ComputedRef;\n getSelectedOptions: (selectValue?: SelectValue[] | SelectValue) => TdOptionProps[];\n setInnerValue: Function;\n innerValue: Ref;\n popupContentRef: ComputedRef;\n multiple: boolean;\n max: number;\n};\n\n// 统一处理键盘控制的hooks\nexport function useKeyboardControl({\n displayOptions,\n optionsList,\n innerPopupVisible,\n setInnerPopupVisible,\n selectPanelRef,\n isFilterable,\n isRemoteSearch,\n getSelectedOptions,\n setInnerValue,\n innerValue,\n popupContentRef,\n multiple,\n max,\n}: useKeyboardControlType) {\n const hoverIndex = ref(-1);\n const filteredOptions = ref([]); // 处理普通场景选项过滤键盘选中的问题\n const virtualFilteredOptions = ref([]); // 处理虚拟滚动下选项过滤通过键盘选择的问题\n const classPrefix = usePrefixClass();\n const handleKeyDown = (e: KeyboardEvent) => {\n const optionsListLength = displayOptions.value.length;\n let newIndex = hoverIndex.value;\n switch (e.code) {\n case 'ArrowUp':\n e.preventDefault();\n if (hoverIndex.value === -1) {\n newIndex = 0;\n } else if (hoverIndex.value === 0 || hoverIndex.value > displayOptions.value.length - 1) {\n newIndex = optionsListLength - 1;\n } else {\n newIndex--;\n }\n if (optionsList.value[newIndex]?.disabled) {\n newIndex--;\n }\n hoverIndex.value = newIndex;\n break;\n case 'ArrowDown':\n e.preventDefault();\n\n if (hoverIndex.value === -1 || hoverIndex.value >= optionsListLength - 1) {\n newIndex = 0;\n } else {\n newIndex++;\n }\n if (optionsList.value[newIndex]?.disabled) {\n newIndex++;\n }\n hoverIndex.value = newIndex;\n break;\n case 'Enter':\n if (hoverIndex.value === -1) break;\n\n let finalOptions =\n selectPanelRef.value.isVirtual && isFilterable.value && virtualFilteredOptions.value.length\n ? virtualFilteredOptions.value\n : isRemoteSearch.value\n ? optionsList.value\n : filteredOptions.value;\n\n if (!finalOptions.length) finalOptions = optionsList.value;\n if (!innerPopupVisible.value) {\n setInnerPopupVisible(true, { e });\n break;\n }\n\n if (!multiple) {\n const selectedOptions = getSelectedOptions(finalOptions[hoverIndex.value].value);\n setInnerValue(finalOptions[hoverIndex.value].value, {\n option: selectedOptions?.[0],\n selectedOptions: getSelectedOptions(finalOptions[hoverIndex.value].value),\n trigger: 'check',\n e,\n });\n setInnerPopupVisible(false, { e });\n } else {\n if (hoverIndex.value === -1) return;\n const optionValue = finalOptions[hoverIndex.value]?.value;\n\n if (!optionValue) return;\n const newValue = getNewMultipleValue(innerValue.value, optionValue);\n\n if (max > 0 && newValue.value.length > max) return; // 如果已选达到最大值 则不处理\n const selectedOptions = getSelectedOptions(newValue.value);\n setInnerValue(newValue.value, {\n option: selectedOptions.find((v) => v.value == optionValue),\n selectedOptions,\n trigger: newValue.isCheck ? 'check' : 'uncheck',\n e,\n });\n filteredOptions.value = [];\n }\n break;\n case 'Escape':\n setInnerPopupVisible(false, { e });\n break;\n }\n };\n\n watch(innerPopupVisible, (value) => {\n if (value) {\n // 展开重新恢复初始值\n hoverIndex.value = -1;\n virtualFilteredOptions.value = [];\n filteredOptions.value = [];\n }\n });\n\n // 处理键盘操作滚动 超出视图时继续自动滚动到键盘所在元素\n watch(hoverIndex, (index) => {\n const optionHeight = selectPanelRef.value?.innerRef?.querySelector(\n `.${classPrefix.value}-select-option`,\n )?.clientHeight;\n\n const scrollHeight = optionHeight * index;\n\n popupContentRef.value.scrollTo({\n top: scrollHeight,\n behavior: 'smooth',\n });\n });\n\n return {\n hoverIndex,\n handleKeyDown,\n virtualFilteredOptions,\n filteredOptions,\n };\n}\n","import _Select from './select';\nimport _Option from './option';\nimport _OptionGroup from './option-group';\nimport withInstall from '../utils/withInstall';\nimport { TdSelectProps, TdOptionProps, TdOptionGroupProps, SelectOption } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SelectProps = TdSelectProps;\nexport type OptionProps = TdOptionProps;\nexport type OptionGroupProps = TdOptionGroupProps;\n\nexport const Select = withInstall(_Select);\nexport const Option = withInstall(_Option);\nexport const OptionGroup = withInstall(_OptionGroup);\n\nexport default Select;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdInputAdornmentProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 后缀装饰 */\n append: {\n type: [String, Function] as PropType,\n },\n /** 前缀装饰 */\n prepend: {\n type: [String, Function] as PropType,\n },\n};\n","import { defineComponent, h, VNodeChild } from 'vue';\nimport { isString } from 'lodash-es';\nimport { isNumber } from 'lodash-es';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport props from './props';\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TInputAdornment',\n inheritAttrs: false,\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('input-adornment');\n const renderTNodeJSX = useTNodeJSX();\n\n const renderAddon = (h: any, type: string, addon: string | Function | VNodeChild | undefined): VNodeChild => {\n let addonNode: VNodeChild;\n const isContentNode = isString(addon) || isNumber(addon);\n if (!slots[type] && isString(addon) && !addon) return null;\n if (slots[type]) {\n if (slots[type](null).length === 1 && typeof slots[type](null)[0].children === 'string') {\n addonNode = {slots[type](null)};\n } else {\n addonNode = slots[type](null);\n }\n } else if (isFunction(addon)) {\n addonNode = addon(h);\n } else {\n addonNode = isContentNode ? (\n {addon}\n ) : (\n (addon as VNodeChild)\n );\n }\n return addonNode ? {addonNode} : addonNode;\n };\n return () => {\n const prepend = renderAddon(h, 'prepend', props.prepend);\n const append = renderAddon(h, 'append', props.append);\n const defaultSlot: VNodeChild[] = renderTNodeJSX('default') || [null];\n const className = [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--prepend`]: prepend,\n [`${COMPONENT_NAME.value}--append`]: append,\n },\n ];\n\n if (!prepend && !append) {\n return defaultSlot[0];\n }\n\n return (\n
    \n {prepend}\n {defaultSlot[0]}\n {append}\n
    \n );\n };\n },\n});\n","import _InputAdornment from './input-adornment';\nimport withInstall from '../utils/withInstall';\nimport { TdInputAdornmentProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type InputAdornmentProps = TdInputAdornmentProps;\nexport const InputAdornment = withInstall(_InputAdornment);\n\nexport default InputAdornment;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdPaginationProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 当前页 */\n current: {\n type: Number,\n default: undefined,\n },\n modelValue: {\n type: Number,\n default: undefined,\n },\n /** 当前页,非受控属性 */\n defaultCurrent: {\n type: Number,\n default: 1,\n },\n /** 是否禁用分页组件 */\n disabled: Boolean,\n /** 折叠时最多显示页码按钮数 */\n foldedMaxPageBtn: {\n type: Number,\n default: 5,\n },\n /** 最多显示页码按钮数 */\n maxPageBtn: {\n type: Number,\n default: 10,\n },\n /** 页码数量超出时,前后省略模式, `mid`表示中间省略, `both-ends` 表示两端省略 */\n pageEllipsisMode: {\n type: String as PropType,\n default: 'mid' as TdPaginationProps['pageEllipsisMode'],\n validator(val: TdPaginationProps['pageEllipsisMode']): boolean {\n if (!val) return true;\n return ['mid', 'both-ends'].includes(val);\n },\n },\n /** 每一页的数据量 */\n pageSize: {\n type: Number,\n default: undefined,\n },\n /** 每一页的数据量,非受控属性 */\n defaultPageSize: {\n type: Number,\n default: 10,\n },\n /** 分页大小控制器,值为 [] 则不显示 */\n pageSizeOptions: {\n type: Array as PropType,\n default: (): TdPaginationProps['pageSizeOptions'] => [5, 10, 20, 50],\n },\n /** 透传全部属性到 Select 组件,也可使用 `selectProps.popupProps` 透传全部 Popup 组件 */\n selectProps: {\n type: Object as PropType,\n },\n /** 是否显示跳转首页尾页页码控制器 */\n showFirstAndLastPageBtn: Boolean,\n /** 是否显示跳转页码控制器 */\n showJumper: Boolean,\n /** 是否显示页码控制器 */\n showPageNumber: {\n type: Boolean,\n default: true,\n },\n /** 是否显示分页数量控制器 */\n showPageSize: {\n type: Boolean,\n default: true,\n },\n /** 是否显示跳转前后页页码控制器 */\n showPreviousAndNextBtn: {\n type: Boolean,\n default: true,\n },\n /** 分页组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdPaginationProps['size'],\n validator(val: TdPaginationProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium'].includes(val);\n },\n },\n /** 分页组件风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdPaginationProps['theme'],\n validator(val: TdPaginationProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'simple'].includes(val);\n },\n },\n /** 数据总条数 */\n total: {\n type: Number,\n default: 0,\n },\n /** 用于自定义总条数呈现内容。默认显示总条数,值为 false 则不显示 */\n totalContent: {\n type: [Boolean, Function] as PropType,\n default: true,\n },\n /** 当前页或分页大小发生变化时触发 */\n onChange: Function as PropType,\n /** 当前页发生变化时触发 */\n onCurrentChange: Function as PropType,\n /** 分页大小发生变化时触发 */\n onPageSizeChange: Function as PropType,\n};\n","import { defineComponent, computed, ref, watch, toRefs, getCurrentInstance } from 'vue';\nimport { isNaN } from 'lodash-es';\nimport {\n PageFirstIcon as TdPageFirstIcon,\n PageLastIcon as TdPageLastIcon,\n ChevronLeftIcon as TdChevronLeftIcon,\n ChevronRightIcon as TdChevronRightIcon,\n ChevronLeftDoubleIcon as TdChevronLeftDoubleIcon,\n ChevronRightDoubleIcon as TdChevronRightDoubleIcon,\n EllipsisIcon as TdEllipsisIcon,\n} from 'tdesign-icons-vue-next';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport TInputNumber from '../input-number';\nimport { Select } from '../select';\nimport TInputAdornment from '../input-adornment';\nimport props from './props';\nimport { usePaginationClasses, useMoreAction } from './hooks';\nimport useVModel from '../hooks/useVModel';\nimport useDefaultValue from '../hooks/useDefaultValue';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { isObject } from 'lodash-es';\n\nimport type { PageInfo, TdPaginationProps } from '../pagination/type';\n\nconst min = 1;\n\ntype PageChangeType = 'prevPage' | 'nextPage' | 'prevMorePage' | 'nextMorePage';\n\nexport default defineComponent({\n name: 'TPagination',\n props,\n\n setup(props: TdPaginationProps) {\n const { emit } = getCurrentInstance();\n\n const { modelValue, pageSize, current } = toRefs(props);\n const renderTNodeJSX = useTNodeJSX();\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onCurrentChange,\n 'current',\n );\n\n const [innerPageSize, setInnerPageSize] = useDefaultValue(\n pageSize,\n props.defaultPageSize,\n props.onPageSizeChange,\n 'pageSize',\n );\n\n const { t, globalConfig } = useConfig('pagination');\n const COMPONENT_NAME = usePrefixClass('pagination');\n const {\n PageFirstIcon,\n PageLastIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronLeftDoubleIcon,\n ChevronRightDoubleIcon,\n EllipsisIcon,\n } = useGlobalIcon({\n PageFirstIcon: TdPageFirstIcon,\n PageLastIcon: TdPageLastIcon,\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n ChevronLeftDoubleIcon: TdChevronLeftDoubleIcon,\n ChevronRightDoubleIcon: TdChevronRightDoubleIcon,\n EllipsisIcon: TdEllipsisIcon,\n });\n\n const { pageCount, ...CLASS_MAP } = usePaginationClasses(props, innerCurrent, innerPageSize, COMPONENT_NAME);\n\n const { prevMore, isPrevMoreShow, curPageLeftCount, nextMore, isNextMoreShow, curPageRightCount } = useMoreAction(\n props,\n pageCount,\n innerCurrent,\n );\n\n const jumpIndex = ref(innerCurrent.value);\n\n const isFolded = computed(() => pageCount.value > props.maxPageBtn);\n\n const sizeOptions = computed>(() => {\n const pageSizeOptions = props.pageSizeOptions as TdPaginationProps['pageSizeOptions'];\n const options = pageSizeOptions.map((option) =>\n isObject(option)\n ? option\n : {\n label: t(globalConfig.value.itemsPerPage, { size: option }),\n value: Number(option),\n },\n );\n return options.sort((a, b) => a.value - b.value);\n });\n\n const isMidEllipsis = computed(() => {\n return props.pageEllipsisMode === 'mid';\n });\n\n const pages = computed(() => {\n const array = [];\n let start;\n let end;\n\n if (isFolded.value) {\n if (isPrevMoreShow.value && isNextMoreShow.value) {\n start = innerCurrent.value - curPageLeftCount.value;\n end = innerCurrent.value + curPageRightCount.value;\n } else {\n const foldedStart = isMidEllipsis.value ? 2 : 1;\n const foldedEnd = isMidEllipsis.value ? pageCount.value - 1 : pageCount.value;\n if (isPrevMoreShow.value) {\n // 保证前面还有一页展示\n start = Math.min(innerCurrent.value - 1, pageCount.value - props.foldedMaxPageBtn + 1);\n } else {\n start = foldedStart;\n }\n\n if (isNextMoreShow.value) {\n // 保证后面还有一页展示\n end = Math.max(innerCurrent.value + 1, props.foldedMaxPageBtn);\n } else {\n end = foldedEnd;\n }\n }\n } else {\n start = 1;\n end = pageCount.value;\n }\n\n for (let i = start; i <= end; i++) {\n array.push(i);\n }\n return array;\n });\n\n // 如果页面总数发生变化并当前页数大于总页数则重置为1\n watch(\n () => pageCount.value,\n () => {\n if (innerCurrent.value > pageCount.value) innerCurrent.value = 1;\n },\n );\n watch(\n () => innerCurrent.value,\n (val) => (jumpIndex.value = val),\n );\n\n const toPage: (pageIndex: number, pageInfo?: PageInfo) => void = (pageIndex, pageInfo) => {\n if (props.disabled) {\n return;\n }\n let current = pageIndex;\n if (pageIndex < min) {\n current = min;\n } else if (pageIndex > pageCount.value) {\n current = pageCount.value;\n }\n if (innerCurrent.value !== current) {\n const prev = innerCurrent.value;\n pageInfo = pageInfo || {\n current,\n previous: prev,\n pageSize: innerPageSize.value,\n };\n if (pageInfo) {\n setInnerCurrent(current, pageInfo);\n props.onChange?.(pageInfo);\n } else {\n // 非主动更改时应仅更新modelValue不触发onCurrentChange事件\n emit('update:modelValue', current);\n }\n }\n };\n\n const handlePageChange = (type: PageChangeType) => {\n const pageChangeMap = {\n prevPage: () => toPage(innerCurrent.value - 1),\n nextPage: () => toPage(innerCurrent.value + 1),\n prevMorePage: () => toPage(Math.max(2, innerCurrent.value - props.foldedMaxPageBtn)),\n nextMorePage: () => toPage(Math.min(innerCurrent.value + props.foldedMaxPageBtn, pageCount.value - 1)),\n };\n pageChangeMap[type]();\n };\n\n const onSelectorChange: (e: string) => void = (e) => {\n if (props.disabled) {\n return;\n }\n const pageSize: number = parseInt(e, 10);\n let pageCount = 1;\n if (pageSize > 0) {\n pageCount = Math.max(Math.ceil(props.total / pageSize), 1);\n }\n\n let isIndexChange = false;\n\n if (innerCurrent.value > pageCount) {\n isIndexChange = true;\n }\n\n /**\n * 分页大小变化事件\n * @param {Number} pageSize 分页大小\n * @param {Number} index 当前页\n */\n const pageInfo = {\n current: isIndexChange ? pageCount : innerCurrent.value,\n previous: innerCurrent.value,\n pageSize,\n };\n setInnerPageSize(pageSize, pageInfo);\n if (isIndexChange) {\n toPage(pageCount, pageInfo);\n } else {\n props.onChange?.(pageInfo);\n }\n };\n\n const onJumperChange = (val: number) => {\n const currentIndex = Math.trunc(+val);\n if (isNaN(currentIndex)) return;\n jumpIndex.value = currentIndex;\n toPage(currentIndex);\n };\n\n return () => {\n const { total, pageSizeOptions, size, disabled, showPageSize } = props;\n if (pageCount.value < 1) return null;\n\n const Jumper = (\n
    \n {t(globalConfig.value.jumpTo)}\n \n \n \n
    \n );\n\n return (\n
    \n {/* 数据统计区 */}\n {renderTNodeJSX(\n 'totalContent',\n
    {t(globalConfig.value.total, { total })}
    ,\n )}\n {/* 分页器 */}\n {showPageSize && pageSizeOptions.length > 0 && (\n \n )}\n {/* 首页按钮 */}\n {props.showFirstAndLastPageBtn ? (\n
    toPage(1)}>\n \n
    \n ) : null}\n {/* 向前按钮 */}\n {props.showPreviousAndNextBtn ? (\n
    handlePageChange('prevPage')}>\n \n
    \n ) : null}\n {/* 常规版 */}\n {props.showPageNumber && props.theme === 'default' ? (\n
      \n {isFolded.value && isMidEllipsis.value && (\n
    • toPage(min)}>\n {min}\n
    • \n )}\n {isFolded.value && isPrevMoreShow.value && isMidEllipsis.value ? (\n handlePageChange('prevMorePage')}\n onMouseover={() => (prevMore.value = true)}\n onMouseout={() => (prevMore.value = false)}\n >\n {prevMore.value ? : }\n \n ) : null}\n {pages.value.map((i) => (\n
    • toPage(i)}>\n {i}\n
    • \n ))}\n {isFolded.value && isNextMoreShow.value && isMidEllipsis.value ? (\n handlePageChange('nextMorePage')}\n onMouseover={() => (nextMore.value = true)}\n onMouseout={() => (nextMore.value = false)}\n >\n {nextMore.value ? : }\n \n ) : null}\n {isFolded.value && isMidEllipsis.value ? (\n
    • toPage(pageCount.value)}>\n {pageCount.value}\n
    • \n ) : null}\n
    \n ) : null}\n {/* 极简版 */}\n {props.theme === 'simple' && Jumper}\n {/* 向后按钮 */}\n {props.showPreviousAndNextBtn ? (\n
    handlePageChange('nextPage')}>\n \n
    \n ) : null}\n {/* 尾页按钮 */}\n {props.showFirstAndLastPageBtn ? (\n
    toPage(pageCount.value)}>\n \n
    \n ) : null}\n {/* 快速跳转 */}\n {props.theme === 'default' && props.showJumper && Jumper}\n
    \n );\n };\n },\n});\n","import { computed, Ref } from 'vue';\nimport { getIEVersion } from '@tdesign/common-js/utils/helper';\nimport { useCommonClassName } from '../../hooks/useConfig';\nimport { TdPaginationProps } from '../type';\n\nexport function usePaginationClasses(\n props: TdPaginationProps,\n innerCurrent: Ref,\n innerPageSize: Ref,\n name: Ref,\n) {\n const { SIZE, STATUS } = useCommonClassName();\n\n const pageCount = computed(() => {\n const c: number = Math.ceil(props.total / innerPageSize.value);\n return c > 0 ? c : 1;\n });\n\n const paginationClass = computed(() => [\n `${name.value}`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: props.disabled,\n [`${name.value}-ie`]: getIEVersion() < 11,\n },\n props.theme === 'simple' ? `${name.value}--simple` : ``,\n ]);\n\n const totalClass = computed(() => [`${name.value}__total`]);\n\n const sizerClass = computed(() => [`${name.value}__select`]);\n\n const preBtnClass = computed(() => [\n `${name.value}__btn`,\n `${name.value}__btn-prev`,\n {\n [STATUS.value.disabled]: props.disabled || innerCurrent.value === 1,\n },\n ]);\n\n const nextBtnClass = computed(() => [\n `${name.value}__btn`,\n `${name.value}__btn-next`,\n {\n [STATUS.value.disabled]: props.disabled || innerCurrent.value === pageCount.value,\n },\n ]);\n\n const btnWrapClass = computed(() => [`${name.value}__pager`]);\n\n const btnMoreClass = computed(() => [\n `${name.value}__number`,\n `${name.value}__number--more`,\n {\n [STATUS.value.disabled]: props.disabled,\n },\n ]);\n\n const jumperClass = computed(() => [`${name.value}__jump`]);\n\n const jumperInputClass = computed(() => [`${name.value}__input`]);\n\n const simpleClass = computed(() => [`${name.value}__select`]);\n\n const getButtonClass = (index: number) => [\n `${name.value}__number`,\n {\n [STATUS.value.disabled]: props.disabled,\n [STATUS.value.current]: innerCurrent.value === index,\n },\n ];\n\n return {\n pageCount,\n paginationClass,\n totalClass,\n sizerClass,\n preBtnClass,\n nextBtnClass,\n btnWrapClass,\n btnMoreClass,\n jumperClass,\n jumperInputClass,\n simpleClass,\n getButtonClass,\n };\n}\n","import { computed, ref, Ref } from 'vue';\nimport { TdPaginationProps } from '../type';\n\nexport function useMoreAction(props: TdPaginationProps, pageCount: Ref, innerCurrent: Ref) {\n const prevMore = ref(false);\n\n const nextMore = ref(false);\n\n const curPageLeftCount = computed(() => Math.ceil((props.foldedMaxPageBtn - 1) / 2));\n\n const curPageRightCount = computed(() => Math.floor((props.foldedMaxPageBtn - 1) / 2));\n\n const isPrevMoreShow = computed(() => 2 + curPageLeftCount.value < innerCurrent.value);\n\n const isNextMoreShow = computed(() => pageCount.value - 1 - curPageRightCount.value > innerCurrent.value);\n\n return {\n prevMore,\n nextMore,\n curPageLeftCount,\n curPageRightCount,\n isPrevMoreShow,\n isNextMoreShow,\n };\n}\n","import isNumber from './isNumber.js';\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nexport default isNaN;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdPaginationMiniProps } from '../pagination/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 按钮禁用配置 */\n disabled: {\n type: [Boolean, Object] as PropType,\n },\n /** 按钮方向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdPaginationMiniProps['layout'],\n validator(val: TdPaginationMiniProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 是否展示当前按钮 */\n showCurrent: {\n type: Boolean,\n default: true,\n },\n /** 按钮尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdPaginationMiniProps['size'],\n validator(val: TdPaginationMiniProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 提示文案配置,值为 `true` 显示默认文案;值为 `false` 不显示提示文案;值类型为对象则单独配置文案内容 */\n tips: {\n type: Object as PropType,\n },\n /** 按钮形式 */\n variant: {\n type: String as PropType,\n default: 'text' as TdPaginationMiniProps['variant'],\n validator(val: TdPaginationMiniProps['variant']): boolean {\n if (!val) return true;\n return ['text', 'outline'].includes(val);\n },\n },\n /** 按钮点击事件回调 */\n onChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport { isObject } from 'lodash-es';\nimport {\n ChevronLeftIcon as TdChevronLeftIcon,\n RoundIcon as TdRoundIcon,\n ChevronRightIcon as TdChevronRightIcon,\n ChevronUpIcon as TdChevronUpIcon,\n ChevronDownIcon as TdChevronDownIcon,\n} from 'tdesign-icons-vue-next';\n\nimport props from './pagination-mini-props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport TButton from '../button';\n\nexport default defineComponent({\n name: 'TPaginationMini',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('pagination-mini');\n const { ChevronLeftIcon, RoundIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon } = useGlobalIcon({\n ChevronLeftIcon: TdChevronLeftIcon,\n RoundIcon: TdRoundIcon,\n ChevronRightIcon: TdChevronRightIcon,\n ChevronUpIcon: TdChevronUpIcon,\n ChevronDownIcon: TdChevronDownIcon,\n });\n\n const titleConfig = computed<{\n prev?: string;\n current?: string;\n next?: string;\n }>(() => {\n if (isObject(props.tips)) return props.tips;\n if (props.tips === true) return { prev: '上一页', current: '当前', next: '下一页' };\n return {};\n });\n\n const disabledConfig = computed<{\n prev?: boolean;\n current?: boolean;\n next?: boolean;\n }>(() => {\n if (isObject(props.disabled)) return props.disabled;\n if (props.disabled === true) return { prev: true, current: true, next: true };\n return { prev: false, current: false, next: false };\n });\n\n return () => {\n const jumperClass = [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--outline`]: props.variant === 'outline',\n },\n ];\n\n return (\n
    \n props.onChange?.({ e, trigger: 'prev' })}\n icon={props.layout === 'horizontal' ? () => : () => }\n class={`${COMPONENT_NAME.value}__prev`}\n disabled={disabledConfig.value.prev}\n />\n\n {props.showCurrent && (\n props.onChange?.({ e, trigger: 'current' })}\n icon={() => }\n class={`${COMPONENT_NAME.value}__current`}\n disabled={disabledConfig.value.current}\n />\n )}\n\n props.onChange?.({ e, trigger: 'next' })}\n icon={props.layout === 'horizontal' ? () => : () => }\n class={`${COMPONENT_NAME.value}__next`}\n disabled={disabledConfig.value.next}\n />\n
    \n );\n };\n },\n});\n","import _Pagination from './pagination';\nimport _PaginationMini from './pagination-mini';\nimport withInstall from '../utils/withInstall';\nimport { TdPaginationProps, TdPaginationMiniProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type PaginationProps = TdPaginationProps;\nexport type PaginationMiniProps = TdPaginationMiniProps;\n\nexport const Pagination = withInstall(_Pagination);\nexport const PaginationMini = withInstall(_PaginationMini);\n\nexport default Pagination;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStepsProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 当前步骤,即整个步骤条进度。默认根据步骤下标判断步骤的完成状态,当前步骤为进行中,当前步骤之前的步骤为已完成,当前步骤之后的步骤为未开始。如果每个步骤没有设置 value,current 值为步骤长度则表示所有步骤已完成。如果每个步骤设置了自定义 value,则 current = 'FINISH' 表示所有状态完成 */\n current: {\n type: [String, Number] as PropType,\n default: undefined as TdStepsProps['current'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdStepsProps['current'],\n },\n /** 当前步骤,即整个步骤条进度。默认根据步骤下标判断步骤的完成状态,当前步骤为进行中,当前步骤之前的步骤为已完成,当前步骤之后的步骤为未开始。如果每个步骤没有设置 value,current 值为步骤长度则表示所有步骤已完成。如果每个步骤设置了自定义 value,则 current = 'FINISH' 表示所有状态完成,非受控属性 */\n defaultCurrent: {\n type: [String, Number] as PropType,\n },\n /** 步骤条方向,有两种:横向和纵向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdStepsProps['layout'],\n validator(val: TdStepsProps['layout']): boolean {\n if (!val) return true;\n return ['horizontal', 'vertical'].includes(val);\n },\n },\n /** 步骤条数据列表(作用和 StepItem 效果一样) */\n options: {\n type: Array as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 步骤条分割符 */\n separator: {\n type: String as PropType,\n default: 'line' as TdStepsProps['separator'],\n validator(val: TdStepsProps['separator']): boolean {\n if (!val) return true;\n return ['line', 'dashed', 'arrow'].includes(val);\n },\n },\n /** 步骤条顺序 */\n sequence: {\n type: String as PropType,\n default: 'positive' as TdStepsProps['sequence'],\n validator(val: TdStepsProps['sequence']): boolean {\n if (!val) return true;\n return ['positive', 'reverse'].includes(val);\n },\n },\n /** 步骤条风格 */\n theme: {\n type: String as PropType,\n default: 'default' as TdStepsProps['theme'],\n validator(val: TdStepsProps['theme']): boolean {\n if (!val) return true;\n return ['default', 'dot'].includes(val);\n },\n },\n /** 当前步骤发生变化时触发 */\n onChange: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStepItemProps } from '../steps/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 步骤描述 */\n content: {\n type: [String, Function] as PropType,\n default: '' as TdStepItemProps['content'],\n },\n /** 步骤描述,同 content */\n default: {\n type: [String, Function] as PropType,\n },\n /** 显示在步骤描述下方的额外内容,比如:操作项 */\n extra: {\n type: [String, Function] as PropType,\n },\n /** 图标,默认显示内置图标,也可以自定义图标,值为 false 则不显示图标。优先级大于 `status` 定义的图标 */\n icon: {\n type: [Boolean, Function] as PropType,\n default: true as TdStepItemProps['icon'],\n },\n /** 当前步骤的状态:默认状态(未开始)、进行中状态、完成状态、错误状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdStepItemProps['status'],\n validator(val: TdStepItemProps['status']): boolean {\n if (!val) return true;\n return ['default', 'process', 'finish', 'error'].includes(val);\n },\n },\n /** 标题 */\n title: {\n type: [String, Function] as PropType,\n default: '' as TdStepItemProps['title'],\n },\n /** 当前步骤标识 */\n value: {\n type: [String, Number] as PropType,\n },\n};\n","import { computed, defineComponent, h, inject } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { CheckIcon as TdCheckIcon, CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\n\nimport props from './step-item-props';\nimport { SlotReturnValue } from '../common';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeJSX, useContent } from '../hooks';\n\nexport default defineComponent({\n name: 'TStepItem',\n props: { ...props, index: Number },\n setup(props) {\n const stepsState = inject('StepsState', undefined);\n const stepsProps = inject('StepsProps', undefined);\n\n const { globalConfig } = useConfig('steps');\n const { CheckIcon, CloseIcon } = useGlobalIcon({ CheckIcon: TdCheckIcon, CloseIcon: TdCloseIcon });\n const canClick = computed(() => {\n return props.status !== 'process' && !stepsProps?.readonly;\n });\n\n // when props.value is undefined\n const onStepClick = (e: MouseEvent) => {\n if (!canClick.value) return;\n const val = props.value === undefined ? props.index : props.value;\n stepsState.setCurrent(val, stepsState.current, { e });\n };\n\n // class\n const COMPONENT_NAME = usePrefixClass('steps-item');\n const statusClass = computed(() => ({ [`${COMPONENT_NAME.value}--${props.status}`]: props.status }));\n const baseClass = computed(() => [COMPONENT_NAME.value, statusClass.value]);\n const iconClass = computed(() => [`${COMPONENT_NAME.value}__icon`, statusClass.value]);\n\n // render\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const renderIcon = () => {\n let defaultIcon;\n if (stepsProps.theme === 'default') {\n let icon: SlotReturnValue = '';\n switch (props.status) {\n case 'finish':\n if (isFunction(globalConfig.value.checkIcon)) {\n icon = globalConfig.value.checkIcon(h);\n } else {\n icon = ;\n }\n break;\n case 'error':\n if (isFunction(globalConfig.value.errorIcon)) {\n icon = globalConfig.value.errorIcon(h);\n } else {\n icon = ;\n }\n break;\n default:\n icon = String(props.index + 1);\n break;\n }\n defaultIcon = {icon};\n }\n return renderTNodeJSX('icon', defaultIcon);\n };\n\n return () => (\n
    \n \n
    {renderIcon()}
    \n
    \n
    {renderTNodeJSX('title')}
    \n
    {renderContent('default', 'content')}
    \n
    {renderTNodeJSX('extra')}
    \n
    \n
    \n \n );\n },\n});\n","import { computed, defineComponent, provide, reactive, ref, toRefs, VNode } from 'vue';\nimport { isObject } from 'lodash-es';\nimport props from './props';\nimport stepItemProps from './step-item-props';\nimport { TdStepItemProps } from './type';\nimport StepItem from './step-item';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport { useChildComponentSlots } from '../hooks';\n\nexport default defineComponent({\n name: 'TSteps',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('steps');\n\n const { current, modelValue } = toRefs(props);\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onChange,\n 'current',\n );\n\n provide(\n 'StepsState',\n reactive({\n current: innerCurrent,\n setCurrent: setInnerCurrent,\n }),\n );\n\n provide('StepsProps', props);\n\n const indexMap = ref>({});\n\n const handleStatus = (itemProps: TdStepItemProps, index: number) => {\n if (itemProps.status && itemProps.status !== 'default') return itemProps.status;\n if (innerCurrent.value === 'FINISH') return 'finish';\n // value 不存在时,使用 index 进行区分每一个步骤\n if (itemProps.value === undefined && index < Number(innerCurrent.value)) return 'finish';\n // value 存在,找匹配位置\n if (itemProps.value !== undefined) {\n const matchIndex = Number(indexMap.value[innerCurrent.value]);\n if (matchIndex === undefined) {\n console.warn('TDesign Steps Warn: The current `value` is not exist.');\n return 'default';\n }\n if (props.sequence === 'positive' && index < matchIndex) return 'finish';\n if (props.sequence === 'reverse' && index > matchIndex) return 'finish';\n }\n const key = itemProps.value === undefined ? index : itemProps.value;\n if (key === innerCurrent.value) return 'process';\n return 'default';\n };\n\n const getChildComponentByName = useChildComponentSlots();\n\n const getOptionListBySlots = (nodes: VNode[]) => {\n const arr: Array = [];\n nodes?.forEach((node) => {\n const option = node?.props || {};\n const children = node?.children;\n if (!option && !children) return;\n if (children && isObject(children)) {\n for (const key in children) {\n if (key in stepItemProps && !option[key]) {\n option[key] = (children as Record)[key];\n }\n }\n }\n props.sequence === 'reverse' ? arr.unshift(option as TdStepItemProps) : arr.push(option as TdStepItemProps);\n });\n return arr;\n };\n const getOptions = () => {\n let options: Array;\n if (props.options?.length) {\n options = props.sequence === 'reverse' ? props.options.slice().reverse() : props.options;\n } else {\n const nodes: VNode[] = getChildComponentByName('StepItem') as VNode[];\n options = getOptionListBySlots(nodes);\n }\n\n (options || []).forEach((item, index) => {\n if (item.value !== undefined) indexMap.value[item.value] = index;\n });\n return options;\n };\n\n const renderContent = () => {\n const options = getOptions();\n\n return options.map((item, index) => {\n const stepIndex = props.sequence === 'reverse' ? options.length - index - 1 : index;\n index = item.value !== undefined ? index : stepIndex;\n\n return ;\n });\n };\n\n /** class calculate */\n const handleTheme = () => {\n let { theme } = props;\n const options = getOptions();\n options.forEach((item) => {\n if (item?.icon !== undefined) {\n // icon > theme\n theme = 'default';\n }\n });\n return theme;\n };\n const baseClass = computed(() => {\n return [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}--${props.layout}`,\n `${COMPONENT_NAME.value}--${handleTheme()}-anchor`,\n `${COMPONENT_NAME.value}--${props.sequence}`,\n `${COMPONENT_NAME.value}--${props.separator}-separator`,\n ];\n });\n /** class calculate END */\n\n return () =>
    {renderContent()}
    ;\n },\n});\n","import _Steps from './steps';\nimport _StepItem from './step-item';\nimport withInstall from '../utils/withInstall';\nimport { TdStepsProps, TdStepItemProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type StepsProps = TdStepsProps;\nexport type StepItemProps = TdStepItemProps;\n\nexport const Steps = withInstall(_Steps);\nexport const StepItem = withInstall(_StepItem);\nexport default Steps;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStickyToolProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 列表 */\n list: {\n type: Array as PropType,\n default: (): TdStickyToolProps['list'] => [],\n },\n /** 相对于 placement 的偏移量,示例:[-10, 20] 或 ['10em', '8rem'] */\n offset: {\n type: Array as PropType,\n },\n /** 固定位置 */\n placement: {\n type: String as PropType,\n default: 'right-bottom' as TdStickyToolProps['placement'],\n validator(val: TdStickyToolProps['placement']): boolean {\n if (!val) return true;\n return ['right-top', 'right-center', 'right-bottom', 'left-top', 'left-center', 'left-bottom'].includes(val);\n },\n },\n /** 透传 Popup 组件全部特性,优先级低于 StickyItem.popupProps */\n popupProps: {\n type: Object as PropType,\n },\n /** 侧边栏菜单形状,有 2 种:方形、圆形 */\n shape: {\n type: String as PropType,\n default: 'square' as TdStickyToolProps['shape'],\n validator(val: TdStickyToolProps['shape']): boolean {\n if (!val) return true;\n return ['square', 'round'].includes(val);\n },\n },\n /** 侧边栏菜单类型,有 2 种:常规型和紧凑型 */\n type: {\n type: String as PropType,\n default: 'normal' as TdStickyToolProps['type'],\n validator(val: TdStickyToolProps['type']): boolean {\n if (!val) return true;\n return ['normal', 'compact'].includes(val);\n },\n },\n /** 宽度 */\n width: {\n type: [String, Number] as PropType,\n },\n /** 点击某一项时触发 */\n onClick: Function as PropType,\n /** 悬浮到某一项时触发 */\n onHover: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdStickyItemProps } from '../sticky-tool/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 图标 */\n icon: {\n type: Function as PropType,\n },\n /** 名称 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 浮层内容 */\n popup: {\n type: [String, Function] as PropType,\n },\n /** 透传浮层组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 触发浮层显示的方式 */\n trigger: {\n type: String as PropType,\n default: 'hover' as TdStickyItemProps['trigger'],\n validator(val: TdStickyItemProps['trigger']): boolean {\n if (!val) return true;\n return ['hover', 'click'].includes(val);\n },\n },\n};\n","import { computed, defineComponent, PropType } from 'vue';\nimport baseProps from './sticky-item-props';\nimport TdStickyToolProps from './props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport type { Styles } from '../common';\nimport Popup from '../popup';\nimport { useTNodeJSX } from '../hooks';\n\nimport type { TdStickyItemProps } from './type';\nimport type { TdPopupProps } from '../popup/type';\n\nexport default defineComponent({\n name: 'TStickyItem',\n props: {\n ...baseProps,\n type: TdStickyToolProps.type,\n shape: TdStickyToolProps.shape,\n placement: TdStickyToolProps.placement,\n basePopupProps: Object as PropType,\n baseWidth: TdStickyToolProps.width,\n onClick: TdStickyToolProps.onClick,\n onHover: TdStickyToolProps.onHover,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('sticky-item');\n const baseClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}--${props.type}`,\n `${COMPONENT_NAME.value}--${props.shape}`,\n ];\n });\n const labelClass = computed(() => {\n return [`${COMPONENT_NAME.value}__label`];\n });\n const popupPlacement = computed(() => {\n return props.placement.indexOf('right') !== -1 ? 'left' : 'right';\n });\n const styles = computed(() => {\n const styles: Styles = {};\n if (props.baseWidth) {\n const selfWidth = props.type === 'normal' ? '56px' : '40px';\n styles.margin = `calc((${props.baseWidth} - ${selfWidth})/2)`;\n }\n return styles;\n });\n const handleClickItem = (e: MouseEvent) => {\n const item: TdStickyItemProps = {};\n // @ts-ignore\n // TODO 这里因为 props 类型的原因,暂不好修改,后续改成 setup 就简单了\n (Object.keys(baseProps) as (keyof typeof baseProps)[]).forEach((i) => (item[i] = props[i] as any));\n props.onClick({ e, item });\n };\n const handleHoverItem = (e: MouseEvent) => {\n const item: TdStickyItemProps = {};\n // @ts-ignore\n // TODO 这里因为 props 类型的原因,暂不好修改,后续改成 setup 就简单了\n (Object.keys(baseProps) as (keyof typeof baseProps)[]).forEach((i) => (item[i] = props[i] as any));\n props.onHover({ e, item });\n };\n const renderTNodeJSX = useTNodeJSX();\n const popupProps = Object.assign({ hideEmptyPopup: true }, props.basePopupProps, props.popupProps);\n return () => (\n renderTNodeJSX('popup')}\n {...popupProps}\n >\n
    \n {renderTNodeJSX('icon')}\n {props.type === 'normal' ?
    {renderTNodeJSX('label')}
    : null}\n
    \n \n );\n },\n});\n","import { computed, defineComponent, VNode } from 'vue';\nimport props from './props';\nimport { isObject } from 'lodash-es';\nimport StickyItem from './sticky-item';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useChildComponentSlots } from '../hooks';\n\nimport stickyItemProps from './sticky-item-props';\n\nimport type { TdStickyItemProps } from './type';\nimport type { Styles } from '../common';\n\nexport default defineComponent({\n name: 'TStickyTool',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('sticky-tool');\n const classes = computed(() => {\n return [COMPONENT_NAME.value, `${COMPONENT_NAME.value}--${props.shape}`];\n });\n const styles = computed(() => {\n const styles = getOffset();\n if (props.width) styles.width = typeof props.width === 'number' ? `${props.width}px` : props.width;\n return styles;\n });\n\n const getChildComponentByName = useChildComponentSlots();\n\n const getList = () => {\n let list: Array;\n if (props.list?.length) {\n list = props.list;\n } else {\n const nodes: VNode[] = getChildComponentByName('StickyItem') as VNode[];\n list = getListBySlots(nodes);\n }\n return list;\n };\n const getListBySlots = (nodes: VNode[]) => {\n const arr: Array = [];\n nodes?.forEach((node) => {\n const list = node?.props || {};\n const children = node?.children;\n if (!list && !children) return;\n if (children && isObject(children)) {\n for (const key in children) {\n if (key in stickyItemProps && !list[key]) {\n list[key] = (children as Record)[key];\n }\n }\n }\n arr.push(list as TdStickyItemProps);\n });\n return arr;\n };\n const getOffset = (): Styles => {\n // 默认偏移位置\n const position: Array = props.offset ? [80, 24] : ['80px', '24px'];\n props.offset?.forEach((item, index) => {\n position[index] = isNaN(Number(item))\n ? `calc( ${position[index]}px + ${item})`\n : `${(position[index] as number) + (item as number)}px`;\n });\n const offsetStyle: Styles = {};\n props.placement.split('-').forEach((item, index) => {\n if (item !== 'center') {\n offsetStyle[item] = position[index];\n } else {\n offsetStyle.top = '50%';\n offsetStyle.transform = 'translate(0, -50%)';\n }\n });\n return offsetStyle;\n };\n const handleClick = (context: { e: MouseEvent; item: TdStickyItemProps }) => {\n props.onClick?.(context);\n };\n const handleHover = (context: { e: MouseEvent; item: TdStickyItemProps }) => {\n props.onHover?.(context);\n };\n const renderContent = () => {\n const list = getList();\n const content = list.map((item, index) => {\n const { type, shape, placement, popupProps } = props;\n const itemProps = {\n ...item,\n type,\n shape,\n placement,\n basePopupProps: popupProps,\n baseWidth: styles.value.width,\n onClick: handleClick,\n onHover: handleHover,\n };\n return ;\n });\n return content;\n };\n return () => (\n
    \n {renderContent()}\n
    \n );\n },\n});\n","import _StickyTool from './sticky-tool';\nimport _StickyItem from './sticky-item';\nimport withInstall from '../utils/withInstall';\nimport { TdStickyToolProps, TdStickyItemProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type StickyToolProps = TdStickyToolProps;\nexport type StickyItemProps = TdStickyItemProps;\n\nexport const StickyItem = withInstall(_StickyItem);\n\nexport const StickyTool = withInstall(_StickyTool);\n\nexport default StickyTool;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdBackTopProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 监听滚动的容器。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n container: {\n type: [String, Function] as PropType,\n default: 'body' as TdBackTopProps['container'],\n },\n /** 回到顶部内容 */\n content: {\n type: [String, Function] as PropType,\n },\n /** 回到顶部内容,同 `content` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 回到顶部的耗时单位:毫秒 */\n duration: {\n type: Number,\n default: 200,\n },\n /** 回到顶部相对右下角的位置偏移,示例:[10, 20] 或 ['10em', '8rem'] */\n offset: {\n type: Array as PropType,\n default: (): TdBackTopProps['offset'] => ['24px', '80px'],\n },\n /** 回到顶部的形状 */\n shape: {\n type: String as PropType,\n default: 'square' as TdBackTopProps['shape'],\n validator(val: TdBackTopProps['shape']): boolean {\n if (!val) return true;\n return ['circle', 'square'].includes(val);\n },\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdBackTopProps['size'],\n validator(val: TdBackTopProps['size']): boolean {\n if (!val) return true;\n return ['medium', 'small'].includes(val);\n },\n },\n /** 指定回到该对象。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'body' 或 () => document.body */\n target: {\n type: [String, Function] as PropType,\n default: 'body' as TdBackTopProps['target'],\n },\n /** 组件主题风格,浅色、主色、深色 */\n theme: {\n type: String as PropType,\n default: 'light' as TdBackTopProps['theme'],\n validator(val: TdBackTopProps['theme']): boolean {\n if (!val) return true;\n return ['light', 'primary', 'dark'].includes(val);\n },\n },\n /** 滚动高度达到此参数值才出现 */\n visibleHeight: {\n type: [String, Number] as PropType,\n default: '200px' as TdBackTopProps['visibleHeight'],\n },\n /** 点击回到顶部时触发 */\n onClick: Function as PropType,\n};\n","import { computed, defineComponent, onBeforeUnmount, onMounted, ref } from 'vue';\nimport { BacktopIcon as TdBackTopIcon } from 'tdesign-icons-vue-next';\n\nimport { scrollTo } from '../utils/dom';\nimport { useChildSlots, usePrefixClass, useContent, useConfig } from '../hooks';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport props from './props';\n\nimport type { TdBackTopProps } from './type';\n\nexport default defineComponent({\n name: 'TBackTop',\n props,\n setup(props: TdBackTopProps) {\n const visible = ref(false);\n const containerRef = ref(null);\n const componentName = usePrefixClass('back-top');\n const { classPrefix } = useConfig('alert');\n\n const { BacktopIcon } = useGlobalIcon({\n BacktopIcon: TdBackTopIcon,\n });\n const renderContent = useContent();\n const getContainer = (container: TdBackTopProps['container']) => {\n if (typeof container === 'string' && typeof document !== undefined) {\n if (container === 'body') {\n return document;\n }\n return document.querySelector(container);\n }\n if (typeof container === 'function') {\n return container();\n }\n return null;\n };\n onMounted(() => {\n containerRef.value = getContainer(props.container) as HTMLElement;\n let visibleHeight: number;\n if (typeof props.visibleHeight === 'string') {\n visibleHeight = Number(props.visibleHeight.replace('px', ''));\n } else {\n visibleHeight = props.visibleHeight;\n }\n if (visibleHeight === 0) {\n visible.value = true;\n return;\n }\n let scrollDOM: HTMLElement;\n if (containerRef.value.scrollTop === undefined) {\n scrollDOM = document.documentElement;\n } else {\n scrollDOM = containerRef.value;\n }\n containerRef.value.onscroll = () => {\n const scrollTop = scrollDOM?.scrollTop;\n if (scrollTop >= visibleHeight) {\n visible.value = true;\n }\n if (scrollTop < visibleHeight && visible.value) {\n visible.value = false;\n }\n };\n });\n\n onBeforeUnmount(() => {\n containerRef.value.onscroll = null;\n });\n\n return () => {\n const { theme, shape, size, target, duration, offset, container } = props;\n const getChild = useChildSlots();\n let children = getChild();\n if (children.length < 1) children = null;\n const cls = computed(() => {\n return {\n [componentName.value]: true,\n [`${componentName.value}--theme-${theme}`]: true,\n [`${componentName.value}--${shape}`]: true,\n [`${componentName.value}--show`]: visible.value,\n [`${classPrefix.value}-size-s`]: size === 'small',\n [`${classPrefix.value}-size-m`]: size === 'medium',\n };\n });\n const defaultContent = (\n <>\n \n TOP\n \n );\n const getBackTo = () => {\n if (target === container) return 0;\n if (target === 'body') return 0;\n if (!target) return 0;\n const targetNode = getContainer(target);\n if (!targetNode) return 0;\n const y = (targetNode as HTMLElement).getBoundingClientRect().y;\n return y;\n };\n const handleClick = (e: MouseEvent) => {\n const y = getBackTo();\n scrollTo(y, { container: containerRef.value, duration });\n props.onClick?.({ e });\n };\n const positionStyle = computed(() => {\n return {\n insetInlineEnd: offset[0],\n insetBlockEnd: offset[1],\n };\n });\n return (\n \n );\n };\n },\n});\n","import withInstall from '../utils/withInstall';\nimport _BackTop from './back-top';\nimport { TdBackTopProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type BackTopProps = TdBackTopProps;\n\nexport const BackTop = withInstall(_BackTop);\n\nexport default BackTop;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdAutoCompleteProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 自动获取焦点 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清空 */\n clearable: Boolean,\n /** 触发显示联想词下拉框的元素,同 `triggerElement` */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否禁用 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当下拉联想词列表为空时显示的内容 */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义过滤规则,用于对现有数据进行搜索过滤,判断是否过滤某一项数据。参数 `filterWords` 表示搜索词,`option`表示单个选项内容,返回值为 `true` 保留该选项,返回值为 `false` 则隐藏该选项。使用该方法时无需设置 `filterable` */\n filter: {\n type: Function as PropType,\n },\n /** 是否根据输入内容过滤联想词。默认过滤规则不区分大小写,全文本任意位置匹配。如果默认搜索规则不符合业务需求,可以更为使用 `filter` 自定义过滤规则。部分场景下输入关键词和下拉联想词完全不同,此时可以设置为 `false` */\n filterable: {\n type: Boolean,\n default: true,\n },\n /** 是否高亮联想词中和输入值的相同部分 */\n highlightKeyword: {\n type: Boolean,\n default: true,\n },\n /** 透传 Input 组件全部特性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 下拉联想词列表。示例一:`['联想词一', '联想词二']`。示例二:`{ label: () =>
    联想词元素
    , text: '用于搜索的纯联想词' }` */\n options: {\n type: Array as PropType,\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 输入框为空时的占位提示。组件本身默认值为 `undefined`,但全局配置存在默认值,不同语言全局默认值不同 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传 Popup 组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否只读 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdAutoCompleteProps['size'],\n validator(val: TdAutoCompleteProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdAutoCompleteProps['status'],\n validator(val: TdAutoCompleteProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 透传 Textarea 组件全部特性 */\n textareaProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 触发显示联想词下拉框的元素,默认为 Input 组件,可以使用 `trigger` 自定义为 Textarea 组件或其他组件 */\n triggerElement: {\n type: [String, Function] as PropType,\n },\n /** 输入框的值,即当前指定的联想词 */\n value: {\n type: String,\n default: undefined,\n },\n modelValue: {\n type: String,\n default: undefined,\n },\n /** 输入框的值,即当前指定的联想词,非受控属性 */\n defaultValue: {\n type: String,\n default: '',\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入框值发生变化时触发 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 中文输入结束时触发 */\n onCompositionend: Function as PropType,\n /** 中文输入开始时触发 */\n onCompositionstart: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 选中联想词时触发 */\n onSelect: Function as PropType,\n};\n","import { computed, defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { isString } from 'lodash-es';\nimport { escapeRegExp } from 'lodash-es';\n\nexport interface HighlightOptionProps {\n content: string;\n keyword: string;\n}\n\nexport default defineComponent({\n name: 'HighlightOption',\n props: {\n /** 联想词 */\n content: String as PropType,\n /** 搜索词 */\n keyword: String as PropType,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const words = computed<{ list: string[]; keyword?: string }>(() => {\n const { content, keyword } = props;\n if (!content) return { list: [] };\n if (!isString(content) || !keyword) return { list: [content] };\n const regExp = new RegExp(escapeRegExp(keyword), 'i');\n const splitKeyword = content.match(regExp)?.[0];\n return {\n list: content.split(splitKeyword),\n keyword: splitKeyword,\n };\n });\n\n return () => {\n const { list, keyword } = words.value;\n return (\n
    \n {list.map((item, index) => {\n if (!index) return item;\n return [\n \n {keyword}\n ,\n item,\n ];\n })}\n
    \n );\n };\n },\n});\n","import { ref, computed, defineComponent, PropType, h, watch, onBeforeUnmount } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport HighlightOption from './highlight-option';\nimport { CommonClassNameType } from '../hooks/useCommonClassName';\nimport { AutoCompleteOptionObj, TdAutoCompleteProps } from './type';\nimport log from '@tdesign/common-js/log/index';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { on, off } from '../utils/dom';\nimport { isString } from 'lodash-es';\nimport { escapeRegExp } from 'lodash-es';\nimport { ARROW_UP_REG, ARROW_DOWN_REG, ENTER_REG } from '@tdesign/common-js/common';\n\nexport default defineComponent({\n name: 'AutoCompleteOptionList',\n\n props: {\n sizeClassNames: Object as PropType,\n value: String,\n size: String as PropType,\n options: Array as PropType,\n popupVisible: Boolean,\n highlightKeyword: Boolean,\n filterable: Boolean,\n filter: Function as PropType,\n empty: [String, Function] as PropType,\n },\n\n emits: ['select'],\n\n setup(props, { emit, slots, expose }) {\n const active = ref('');\n const classPrefix = usePrefixClass();\n const { globalConfig } = useConfig('autoComplete');\n\n const classes = computed(() => `${classPrefix.value}-select__list`);\n const optionClasses = computed(() => [\n `${classPrefix.value}-select-option`,\n {\n [props.sizeClassNames[props.size]]: props.size,\n },\n ]);\n\n // 整理数据格式\n const tOptions = computed(() => {\n let options = (props.options || []).map((item) => {\n let option: AutoCompleteOptionObj = {};\n if (isString(item)) {\n option = { text: item, label: item };\n } else {\n if (item.text && !isString(item.text)) {\n log.warn('AutoComplete', '`text` must be a string.');\n }\n if (!item.text) {\n if (isString(item.label)) {\n option = { ...item, text: item.label };\n } else {\n log.warn('AutoComplete', 'one of `label` and `text` must be a existed string.');\n }\n } else {\n option = item;\n }\n }\n return option;\n });\n // 自定义过滤规则\n if (props.filter) {\n options = options.filter((option) => props.filter(props.value, option));\n } else if (props.filterable) {\n // 默认过滤规则\n const regExp = new RegExp(escapeRegExp(props.value), 'i');\n options = options.filter((item) => regExp.test(item.text));\n }\n return options;\n });\n\n const onOptionClick = (e: MouseEvent) => {\n let liNode = e.target as HTMLElement;\n while (liNode && liNode.tagName !== 'LI') {\n liNode = liNode.parentNode as HTMLElement;\n }\n const keyword = liNode.getAttribute('title');\n active.value = keyword;\n emit('select', keyword, { e });\n };\n\n // 键盘事件,上下选择\n const onKeyInnerPress = (e: KeyboardEvent) => {\n if (ARROW_UP_REG.test(e.code) || ARROW_UP_REG.test(e.key)) {\n const index = tOptions.value.findIndex((item) => item.text === active.value);\n const newIndex = index - 1 < 0 ? tOptions.value.length - 1 : index - 1;\n active.value = tOptions.value[newIndex]?.text;\n } else if (ARROW_DOWN_REG.test(e.code) || ARROW_DOWN_REG.test(e.key)) {\n const index = tOptions.value.findIndex((item) => item.text === active.value);\n const newIndex = index + 1 >= tOptions.value.length ? 0 : index + 1;\n active.value = tOptions.value[newIndex]?.text;\n } else if (ENTER_REG.test(e.code) || ENTER_REG.test(e.key)) {\n if (active.value) {\n emit('select', active.value, { e });\n }\n }\n };\n\n const addKeyboardListener = () => {\n on(document, 'keydown', onKeyInnerPress);\n };\n\n const removeKeyboardListener = () => {\n off(document, 'keydown', onKeyInnerPress);\n };\n\n expose({\n addKeyboardListener,\n removeKeyboardListener,\n });\n\n watch(\n () => props.popupVisible,\n () => {\n if (props.popupVisible) {\n addKeyboardListener();\n } else {\n removeKeyboardListener();\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.value,\n () => {\n if (!props.value) {\n active.value = '';\n }\n },\n { immediate: true },\n );\n\n onBeforeUnmount(() => {\n removeKeyboardListener();\n });\n\n return () => {\n if (!tOptions.value.length) {\n return (\n
    \n {props.empty || globalConfig.value.empty}\n
    \n );\n }\n\n return (\n
      \n {tOptions.value.map((item) => {\n const cls = [...optionClasses.value];\n if (item.text === active.value) {\n cls.push(`${classPrefix.value}-select-option--hover`);\n }\n let labelNode: any = item.label;\n if (isFunction(item.label)) {\n labelNode = item.label(h);\n } else if (slots.option) {\n labelNode = slots.option?.({ option: item });\n }\n const content = labelNode || item.text;\n return (\n
    • \n {isString(content) && props.highlightKeyword ? (\n \n ) : (\n content\n )}\n
    • \n );\n })}\n
    \n );\n };\n },\n});\n","import { computed, ref, defineComponent, toRefs, nextTick } from 'vue';\nimport props from './props';\nimport { TdAutoCompleteProps } from './type';\nimport TInput, { InputProps, StrInputProps } from '../input';\nimport Popup, { PopupProps } from '../popup';\nimport useCommonClassName from '../hooks/useCommonClassName';\nimport AutoCompleteOptionList from './option-list';\nimport useVModel from '../hooks/useVModel';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport { ClassName } from '../common';\nimport { useContent, useTNodeJSX } from '../hooks';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\n\nexport default defineComponent({\n name: 'TAutoComplete',\n props,\n setup(props: TdAutoCompleteProps, { slots }) {\n const { value, modelValue } = toRefs(props);\n const [tValue, setTValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const { classPrefix, sizeClassNames } = useCommonClassName();\n const { globalConfig: global } = useConfig('input');\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const popupVisible = ref();\n const optionListRef = ref();\n\n const getOverlayStyle = (trigger: HTMLElement, popupElement: HTMLElement) => {\n const triggerWidth = trigger.getBoundingClientRect().width || trigger.offsetWidth || trigger.clientWidth;\n const popupWidth =\n popupElement.getBoundingClientRect().width || popupElement.offsetWidth || popupElement.clientWidth;\n return {\n width: triggerWidth >= popupWidth ? `${triggerWidth}px` : 'auto',\n ...props.popupProps?.overlayInnerStyle,\n };\n };\n\n const classes = computed(() => [`${classPrefix.value}-auto-complete`]);\n const popupClasses = computed(() => {\n let classes: ClassName = [`${classPrefix.value}-select__dropdown`];\n if (props.popupProps?.overlayClassName) {\n classes = classes.concat(props.popupProps.overlayClassName);\n }\n return classes;\n });\n const popupInnerClasses = computed(() => {\n let classes: ClassName = [`${classPrefix.value}-select__dropdown-inner`];\n if (props.popupProps?.overlayInnerClassName) {\n classes = classes.concat(props.popupProps.overlayInnerClassName);\n }\n return classes;\n });\n\n const onInputChange: StrInputProps['onChange'] = (value, context) => {\n setTValue(value, context);\n };\n\n const innerInputProps = computed(() => {\n const tProps: InputProps = {\n value: tValue.value,\n size: props.size,\n ...props.inputProps,\n };\n return tProps;\n });\n\n const onInnerFocus: StrInputProps['onFocus'] = (value, context) => {\n if (isReadonly.value || isDisabled.value) return;\n popupVisible.value = true;\n props.onFocus?.({ ...context, value });\n nextTick(() => {\n optionListRef.value?.addKeyboardListener();\n });\n };\n\n const onInnerBlur: StrInputProps['onBlur'] = (value, context) => {\n props.onBlur?.({ ...context, value });\n };\n\n const onInnerCompositionend: InputProps['onCompositionend'] = (value, context) => {\n props.onCompositionend?.({ ...context, value });\n };\n\n const onInnerCompositionstart: InputProps['onCompositionstart'] = (value, context) => {\n props.onCompositionstart?.({ ...context, value });\n };\n\n const onInnerEnter: StrInputProps['onEnter'] = (value, context) => {\n props.onEnter?.({ ...context, value });\n };\n\n const onInnerSelect: TdAutoCompleteProps['onSelect'] = (value, context) => {\n if (isReadonly.value || isDisabled.value) return;\n popupVisible.value = false;\n setTValue(value, context);\n props.onSelect?.(value, context);\n };\n\n const onPopupVisibleChange: PopupProps['onVisibleChange'] = (visible, { trigger }) => {\n if (isReadonly.value || isDisabled.value) return;\n if (trigger !== 'trigger-element-click') {\n popupVisible.value = visible;\n }\n };\n\n return () => {\n // 触发元素\n const triggerNode = renderContent('default', 'triggerElement') || (\n \n );\n // 联想词列表\n const listContent = Array.isArray(props.options) && (\n \n );\n\n const topContent = renderTNodeJSX('panelTopContent');\n const bottomContent = renderTNodeJSX('panelBottomContent');\n const panelContent =\n topContent || listContent || bottomContent ? (\n
    \n {topContent}\n {listContent}\n {bottomContent}\n
    \n ) : null;\n const popupProps = {\n ...props.popupProps,\n overlayInnerStyle: getOverlayStyle,\n overlayInnerClassName: popupInnerClasses.value,\n overlayClassName: popupClasses.value,\n };\n return (\n
    \n panelContent : null}\n {...popupProps}\n >\n {triggerNode}\n \n
    \n );\n };\n },\n});\n","import _AutoComplete from './auto-complete';\nimport _HighlightOption from './highlight-option';\nimport withInstall from '../utils/withInstall';\nimport { AutoCompleteOption, TdAutoCompleteProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type AutoCompleteProps = TdAutoCompleteProps;\n\nexport const AutoComplete = withInstall(_AutoComplete);\nexport const HighlightOption = withInstall(_HighlightOption);\n\nexport default AutoComplete;\n","import { CascaderContextType, TreeNode, TreeNodeValue } from '../types';\n\n/**\n * icon Class\n * @param prefix\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getFakeArrowIconClass(\n prefix: string,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n const { disabled } = cascaderContext;\n return [\n `${prefix}-cascader__icon`,\n {\n [STATUS.disabled]: disabled,\n },\n ];\n}\n\n/**\n * 通用状态\n * @param node\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getNodeStatusClass(\n node: TreeNode,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n const { checkStrictly, multiple, value, max } = cascaderContext;\n const expandedActive =\n (!checkStrictly && node.expanded && (multiple ? !node.isLeaf() : true)) || (checkStrictly && node.expanded);\n\n const isLeaf = node.isLeaf();\n\n const isDisabled = node.disabled || (multiple && (value as TreeNodeValue[]).length >= max && max !== 0);\n\n let isSelected = node.checked || (multiple && !checkStrictly && node.expanded && !isLeaf);\n // 处理单选非叶子节点的选中逻辑\n if (!multiple && !checkStrictly && !isLeaf) {\n isSelected = node.expanded;\n }\n\n return [\n {\n [STATUS.selected]: !isDisabled && isSelected,\n [STATUS.expanded]: !isDisabled && expandedActive,\n [STATUS.disabled]: isDisabled,\n },\n ];\n}\n\n/**\n * 子节点状态\n * @param prefix\n * @param node\n * @param SIZE\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getCascaderItemClass(\n prefix: string,\n node: TreeNode,\n SIZE: Record,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n const { size } = cascaderContext;\n return [\n `${prefix}-cascader__item`,\n ...getNodeStatusClass(node, STATUS, cascaderContext),\n SIZE[size],\n {\n [`${prefix}-cascader__item--with-icon`]: !!node.children,\n [`${prefix}-cascader__item--leaf`]: node.isLeaf(),\n },\n ];\n}\n\n/**\n * 子节点icon状态\n * @param prefix\n * @param node\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getCascaderItemIconClass(\n prefix: string,\n node: TreeNode,\n STATUS: Record,\n cascaderContext: CascaderContextType,\n) {\n return [`${prefix}-cascader__item-icon`, `${prefix}-icon`, ...getNodeStatusClass(node, STATUS, cascaderContext)];\n}\n","import { isNumber } from 'lodash-es';\nimport { isObject } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { isEmpty } from 'lodash-es';\nimport { TreeNode, CascaderContextType, TdCascaderProps, CascaderValue, TreeNodeValue, TreeOptionData } from '../types';\n\n/**\n * 单选状态下内容\n * @param isHover\n * @param cascaderContext\n * @returns\n */\nexport function getSingleContent(cascaderContext: CascaderContextType): string {\n const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n if (multiple || (value !== 0 && !value)) return '';\n\n if (isArray(value)) return '';\n const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n if (!(node && node.length)) {\n return value as string;\n }\n const path = node && node[0].getPath();\n if (path && path.length) {\n return showAllLevels ? path.map((node: TreeNode) => node.label).join(' / ') : path.at(-1).label;\n }\n return value as string;\n}\n\n/**\n * 多选状态下选中内容\n * @param cascaderContext\n * @returns\n */\nexport function getMultipleContent(cascaderContext: CascaderContextType) {\n const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n\n if (!multiple) return [];\n if (multiple && !isArray(value)) return [];\n\n const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n if (!node) return [];\n\n return (value as TreeNodeValue[])\n .map((item: TreeNodeValue) => {\n const node = treeStore.getNodes(item);\n return showAllLevels ? getFullPathLabel(node[0]) : node[0]?.label;\n })\n .filter((item) => !!item);\n}\n\n/**\n * 面板数据计算方法\n * @param treeNodes\n * @returns\n */\nexport function getPanels(treeNodes: CascaderContextType['treeNodes']) {\n const panels: TreeNode[][] = [];\n treeNodes.forEach((node: TreeNode) => {\n if (panels[node.level]) {\n panels[node.level].push(node);\n } else {\n panels[node.level] = [node];\n }\n });\n return panels;\n}\n\n/**\n * 获取node的全部路径\n * @param node\n * @returns\n */\nexport function getFullPathLabel(node: TreeNode, separator = '/') {\n return node\n ?.getPath()\n .map((node: TreeNode) => node.label)\n .join(separator);\n}\n\n/**\n * treeValue计算方法\n * @param value\n * @returns\n */\nexport const getTreeValue = (value: CascaderContextType['value']) => {\n let treeValue: TreeNodeValue[] = [];\n if (isArray(value)) {\n if (value.length > 0 && isObject(value[0])) {\n treeValue = (value as TreeOptionData[]).map((val) => val.value);\n } else if (value.length) {\n treeValue = value as TreeNodeValue[];\n }\n } else if (!isEmptyValues(value)) {\n if (isObject(value)) {\n treeValue = [(value as TreeOptionData).value];\n } else {\n treeValue = [value];\n }\n }\n return treeValue;\n};\n\n/**\n * 按数据类型计算通用数值\n * @param value\n * @param showAllLevels\n * @param multiple\n * @returns\n */\nexport const getCascaderValue = (value: CascaderValue, valueType: TdCascaderProps['valueType'], multiple: boolean) => {\n if (valueType === 'single') {\n return value;\n }\n const val = value as Array;\n if (multiple) {\n return val.map((item: TreeNodeValue[]) => item.at(-1));\n }\n return val.at(-1);\n};\n\n/**\n * 空值校验\n * 补充value为Number时的空值校验逻辑,排除NaN\n * @param value\n * @returns\n */\nexport function isEmptyValues(value: unknown): boolean {\n if (isNumber(value) && !isNaN(value)) return false;\n return isEmpty(value);\n}\n\n/**\n * 初始化数据校验\n * @param value\n * @param cascaderContext\n * @returns boolean\n */\nexport function isValueInvalid(value: CascaderValue, cascaderContext: CascaderContextType) {\n const { multiple, showAllLevels, valueType } = cascaderContext;\n return (multiple && !isArray(value)) || (!multiple && isArray(value) && valueType === 'single' && !showAllLevels);\n}\n","import { isNumber } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\n\nimport type { TreeNode, CascaderContextType, TdCascaderProps, TreeNodeValue, TreeNodeModel } from '../types';\nimport { getFullPathLabel, getTreeValue, isEmptyValues } from './helper';\n\n/**\n * 点击item的副作用\n * @param propsTrigger\n * @param trigger\n * @param node\n * @param cascaderContext\n */\nexport function expendClickEffect(\n propsTrigger: TdCascaderProps['trigger'],\n trigger: TdCascaderProps['trigger'],\n node: TreeNode,\n cascaderContext: CascaderContextType,\n) {\n const { checkStrictly, multiple, treeStore, setVisible, setValue, setTreeNodes, setExpend, value, max, valueType } =\n cascaderContext;\n\n const isDisabled = node.disabled || (multiple && (value as TreeNodeValue[]).length >= max && max !== 0);\n\n if (isDisabled) return;\n // 点击展开节点,设置展开状态\n if (propsTrigger === trigger) {\n const expanded = node.setExpanded(true);\n treeStore.refreshNodes();\n treeStore.replaceExpanded(expanded);\n const nodes = treeStore.getNodes().filter((node: TreeNode) => node.visible);\n setTreeNodes(nodes);\n\n // 多选条件下手动维护expend\n if (multiple) {\n setExpend(expanded);\n }\n }\n\n if (!multiple && (node.isLeaf() || checkStrictly) && trigger === 'click') {\n treeStore.resetChecked();\n const checked = node.setChecked(!node.checked);\n const [value] = checked;\n\n // 非受控状态下更新状态\n setValue(valueType === 'single' ? value : node.getPath().map((item) => item.value), 'check', node.getModel());\n\n // 当 trigger 为 hover 时 ,点击节点一定是关闭 panel 的操作\n if (!checkStrictly || propsTrigger === 'hover') {\n setVisible(false, {});\n }\n }\n}\n\n/**\n * 多选状态下选中状态数据变化的副作用\n * @param node\n * @param cascaderContext\n * @returns\n */\nexport function valueChangeEffect(node: TreeNode, cascaderContext: CascaderContextType) {\n const { disabled, max, inputVal, multiple, setVisible, setValue, treeNodes, treeStore, valueType } = cascaderContext;\n\n if (!node || disabled || node.disabled) {\n return;\n }\n const checked = node.setChecked(!node.isChecked());\n\n if (isNumber(max) && max < 0) {\n console.warn('TDesign Warn:', 'max should > 0');\n }\n\n if (checked.length > max && isNumber(max) && max > 0) {\n return;\n }\n\n if (checked.length === 0) {\n const expanded = treeStore.getExpanded();\n setTimeout(() => {\n treeStore.replaceExpanded(expanded);\n treeStore.refreshNodes();\n }, 0);\n }\n\n if (!multiple) {\n setVisible(false, {});\n }\n\n const isSelectAll = treeNodes.every((item) => checked.indexOf(item.value) > -1);\n\n if (inputVal && isSelectAll) {\n setVisible(false, {});\n }\n\n // 处理不同数据类型\n const resValue =\n valueType === 'single'\n ? checked\n : checked.map((val) =>\n treeStore\n .getNode(val)\n .getPath()\n .map((item) => item.value),\n );\n\n setValue(resValue, node.checked ? 'uncheck' : 'check', node.getModel());\n}\n\n/**\n * closeIcon点击副作用\n * @param cascaderContext\n */\nexport function closeIconClickEffect(cascaderContext: CascaderContextType) {\n const { setVisible, multiple, setValue } = cascaderContext;\n\n setVisible(false, {});\n\n setValue(multiple ? [] : '', 'clear');\n}\n\n/**\n * tag 关闭按钮点击副作用\n * @param cascaderContext\n */\nexport function handleRemoveTagEffect(\n cascaderContext: CascaderContextType,\n index: number,\n onRemove: TdCascaderProps['onRemove'],\n) {\n const { disabled, setValue, value, valueType, treeStore } = cascaderContext;\n if (disabled) return;\n\n // index equal to undefined means to click clear button\n if (index !== undefined) {\n const newValue = cloneDeep(value) as [];\n const res = newValue.splice(index, 1);\n const node = treeStore.getNodes(res[0])[0];\n\n const checked = node.setChecked(!node.isChecked());\n // 处理不同数据类型\n const resValue =\n valueType === 'single'\n ? checked\n : checked.map((val) =>\n treeStore\n .getNode(val)\n .getPath()\n .map((item) => item.value),\n );\n setValue(resValue, 'uncheck', node.getModel());\n if (isFunction(onRemove)) {\n onRemove({ value: checked, node: node as any });\n }\n } else {\n if (isFunction(onRemove)) {\n onRemove({ value, node: undefined });\n }\n }\n}\n\n/**\n * input和treeStore变化的副作用\n * @param inputVal\n * @param treeStore\n * @param setTreeNodes\n * @returns\n */\nexport const treeNodesEffect = (\n inputVal: CascaderContextType['inputVal'],\n treeStore: CascaderContextType['treeStore'],\n setTreeNodes: CascaderContextType['setTreeNodes'],\n filter: CascaderContextType['filter'],\n) => {\n if (!treeStore) return;\n let nodes = [];\n if (inputVal) {\n const filterMethods = (node: TreeNode) => {\n if (!node.isLeaf()) return;\n if (isFunction(filter)) {\n return filter(`${inputVal}`, node as TreeNodeModel & TreeNode);\n }\n const fullPathLabel = getFullPathLabel(node, '');\n return fullPathLabel.indexOf(`${inputVal}`) > -1;\n };\n\n nodes = treeStore.nodes.filter(filterMethods);\n } else {\n nodes = treeStore.getNodes().filter((node: TreeNode) => node.visible);\n }\n setTreeNodes(nodes);\n};\n\n/**\n * 初始化展开阶段与展开状态副作用\n * @param treeStore\n * @param treeValue\n * @param expend\n */\nexport const treeStoreExpendEffect = (\n treeStore: CascaderContextType['treeStore'],\n value: CascaderContextType['value'],\n expend: TreeNodeValue[],\n) => {\n const treeValue = getTreeValue(value);\n\n if (!treeStore) return;\n // init expanded, 无expend状态时设置\n if (isArray(treeValue) && expend.length === 0) {\n const expandedMap = new Map();\n const [val] = treeValue;\n if (!isEmptyValues(val)) {\n expandedMap.set(val, true);\n const node = treeStore.getNode(val);\n if (!node) {\n treeStore.refreshNodes();\n return;\n }\n node.getParents().forEach((tn: TreeNode) => {\n expandedMap.set(tn.value, true);\n });\n const expandedArr = Array.from(expandedMap.keys());\n treeStore.replaceExpanded(expandedArr);\n }\n }\n // 本地维护 expend,更加可控,不需要依赖于 tree 的状态\n if (treeStore.getExpanded() && expend.length) {\n treeStore.replaceExpanded(expend);\n }\n treeStore.refreshNodes();\n};\n","import { defineComponent, PropType, computed, ref } from 'vue';\nimport { ChevronRightIcon as TdChevronRightIcon } from 'tdesign-icons-vue-next';\n\nimport { getFullPathLabel, getCascaderItemClass, getCascaderItemIconClass } from '../utils';\n\nimport Checkbox from '../../checkbox/index';\nimport TLoading from '../../loading';\n\nimport { CascaderContextType, TreeNodeValue, TreeNode, TdCascaderProps } from '../types';\nimport { usePrefixClass, useCommonClassName } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport useRipple from '../../hooks/useRipple';\n\nconst props = {\n node: {\n type: Object as PropType,\n default() {\n return {};\n },\n },\n optionChild: {\n type: [Object, Array] as PropType,\n },\n cascaderContext: {\n type: Object as PropType,\n },\n onChange: Function as PropType<() => void>,\n onClick: Function as PropType<() => void>,\n onMouseenter: Function as PropType<() => void>,\n};\n\nexport default defineComponent({\n name: 'TCascaderItem',\n props,\n setup(props) {\n const liRef = ref();\n useRipple(liRef);\n\n const COMPONENT_NAME = usePrefixClass('cascader__item');\n const classPrefix = usePrefixClass();\n const { ChevronRightIcon } = useGlobalIcon({ ChevronRightIcon: TdChevronRightIcon });\n const { STATUS, SIZE } = useCommonClassName();\n\n const itemClass = computed(() => {\n return getCascaderItemClass(classPrefix.value, props.node, SIZE.value, STATUS.value, props.cascaderContext);\n });\n\n const iconClass = computed(() => {\n return getCascaderItemIconClass(classPrefix.value, props.node, STATUS.value, props.cascaderContext);\n });\n\n function RenderLabelInner(node: TreeNode, cascaderContext: CascaderContextType) {\n const { inputVal } = cascaderContext;\n const labelText = inputVal ? getFullPathLabel(node) : node.label;\n if (inputVal) {\n const texts = labelText.split(inputVal as string);\n const doms = [];\n for (let index = 0; index < texts.length; index++) {\n doms.push({texts[index]});\n if (index === texts.length - 1) break;\n doms.push(\n \n {inputVal}\n ,\n );\n }\n return doms;\n }\n return labelText;\n }\n\n const renderTitle = (node: TreeNode) => {\n if (typeof node.label === 'string') return node.label;\n\n return null;\n };\n\n function RenderLabelContent(node: TreeNode, cascaderContext: CascaderContextType) {\n const label = RenderLabelInner(node, cascaderContext);\n\n const labelCont = (\n \n {label}\n \n );\n\n return labelCont;\n }\n\n function RenderCheckBox(node: TreeNode, cascaderContext: CascaderContextType) {\n const { checkProps, value, max, inputVal } = cascaderContext;\n const label = RenderLabelInner(node, cascaderContext);\n return (\n = max && max !== 0)}\n // node.value maybe string or number\n name={String(node.value)}\n stopLabelTrigger={!!node.children}\n title={inputVal ? getFullPathLabel(node) : renderTitle(node)}\n onChange={() => {\n props.onChange();\n }}\n {...checkProps}\n >\n {label}\n \n );\n }\n\n return () => {\n const { cascaderContext, node, optionChild } = props;\n const isOptionChildAndMultiple = optionChild && cascaderContext.multiple;\n return (\n (isOptionChildAndMultiple ? props.onChange() : props.onClick())}\n onMouseenter={props.onMouseenter}\n >\n {optionChild ||\n (cascaderContext.multiple\n ? RenderCheckBox(node, cascaderContext)\n : RenderLabelContent(node, cascaderContext))}\n {node.children &&\n (node.loading ? (\n \n ) : (\n \n ))}\n \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdCascaderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 自动聚焦 */\n autofocus: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 参考 checkbox 组件 API */\n checkProps: {\n type: Object as PropType,\n },\n /** 父子节点选中状态不再关联,可各自选中或取消 */\n checkStrictly: Boolean,\n /** 是否支持清空选项 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。`value` 表示当前存在的所有标签,`collapsedSelectedItems` 表示折叠的标签,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 无匹配选项时的内容,默认全局配置为 '暂无数据' */\n empty: {\n type: [String, Function] as PropType,\n },\n /** 自定义过滤方法,用于对现有数据进行搜索过滤,判断是否过滤某一项数据 */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索 */\n filterable: Boolean,\n /** 透传 Input 输入框组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 用来定义 value / label / children / disabled 在 `options` 中对应的字段别名 */\n keys: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 延迟加载 children 为 true 的子节点,即使 expandAll 被设置为 true,也同样延迟加载 */\n lazy: {\n type: Boolean,\n default: true,\n },\n /** 加载子树数据的方法(仅当节点 children 为 true 时生效) */\n load: {\n type: Function as PropType,\n },\n /** 是否为加载状态 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 自定义单个级联选项 */\n option: {\n type: Function as PropType,\n },\n /** 可选项数据源 */\n options: {\n type: Array as PropType,\n default: (): TdCascaderProps['options'] => [],\n },\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 参考 popup 组件 API */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: Boolean,\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 */\n reserveKeyword: Boolean,\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 选中值使用完整路径,输入框在单选时也显示完整路径 */\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n /** 组件尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdCascaderProps['size'],\n validator(val: TdCascaderProps['size']): boolean {\n if (!val) return true;\n return ['large', 'medium', 'small'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdCascaderProps['status'],\n validator(val: TdCascaderProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TagInput 标签输入框组件的全部属性 */\n tagInputProps: {\n type: Object as PropType,\n },\n /** 透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 展开下一层级的方式 */\n trigger: {\n type: String as PropType,\n default: 'click' as TdCascaderProps['trigger'],\n validator(val: TdCascaderProps['trigger']): boolean {\n if (!val) return true;\n return ['click', 'hover'].includes(val);\n },\n },\n /** 选中项的值 */\n value: {\n type: [String, Number, Array] as PropType,\n default: undefined as TdCascaderProps['value'],\n },\n modelValue: {\n type: [String, Number, Array] as PropType,\n default: undefined as TdCascaderProps['value'],\n },\n /** 选中项的值,非受控属性 */\n defaultValue: {\n type: [String, Number, Array] as PropType,\n default: (): TdCascaderProps['defaultValue'] => [] as TdCascaderProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 选中值模式。all 表示父节点和子节点全部会出现在选中值里面;parentFirst 表示当子节点全部选中时,仅父节点在选中值里面;onlyLeaf 表示无论什么情况,选中值仅呈现叶子节点 */\n valueMode: {\n type: String as PropType,\n default: 'onlyLeaf' as TdCascaderProps['valueMode'],\n validator(val: TdCascaderProps['valueMode']): boolean {\n if (!val) return true;\n return ['onlyLeaf', 'parentFirst', 'all'].includes(val);\n },\n },\n /** 用于控制选中值的类型。single 表示输入输出值为 叶子结点值, full 表示输入输出值为全路径 */\n valueType: {\n type: String as PropType,\n default: 'single' as TdCascaderProps['valueType'],\n validator(val: TdCascaderProps['valueType']): boolean {\n if (!val) return true;\n return ['single', 'full'].includes(val);\n },\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发。TreeNodeModel 从树组件中导出。`context.node` 表示触发事件的节点,`context.source` 表示触发事件的来源 */\n onChange: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n};\n","import { defineComponent, PropType, computed, h } from 'vue';\n\nimport Item from './Item';\nimport { TreeNode, CascaderContextType } from '../types';\nimport CascaderProps from '../props';\nimport { usePrefixClass, useConfig } from '../../hooks/useConfig';\nimport { useTNodeDefault } from '../../hooks/tnode';\nimport { getDefaultNode } from '../../utils/render-tnode';\nimport { getPanels, expendClickEffect, valueChangeEffect } from '../utils';\n\nexport default defineComponent({\n name: 'TCascaderSubPanel',\n props: {\n option: CascaderProps.option,\n empty: CascaderProps.empty,\n trigger: CascaderProps.trigger,\n onChange: CascaderProps.onChange,\n loading: CascaderProps.loading,\n loadingText: CascaderProps.loadingText,\n cascaderContext: {\n type: Object as PropType,\n },\n },\n\n setup(props) {\n const renderTNodeJSXDefault = useTNodeDefault();\n const COMPONENT_NAME = usePrefixClass('cascader');\n const { globalConfig } = useConfig('cascader');\n\n const panels = computed(() => getPanels(props.cascaderContext.treeNodes));\n\n const handleExpand = (node: TreeNode, trigger: 'hover' | 'click') => {\n const { trigger: propsTrigger, cascaderContext } = props;\n expendClickEffect(propsTrigger, trigger, node, cascaderContext);\n };\n\n const renderItem = (node: TreeNode, index: number) => {\n const optionChild = node.data.content\n ? getDefaultNode(node.data.content(h))\n : renderTNodeJSXDefault('option', {\n params: { item: node.data, index },\n });\n return (\n {\n handleExpand(node, 'click');\n }}\n onMouseenter={() => {\n handleExpand(node, 'hover');\n }}\n onChange={() => {\n valueChangeEffect(node, props.cascaderContext);\n }}\n />\n );\n };\n\n const renderList = (treeNodes: TreeNode[], isFilter = false, segment = true, index = 1) => (\n \n {treeNodes.map((node: TreeNode) => renderItem(node, index))}\n \n );\n\n const renderPanels = () => {\n const { inputVal, treeNodes } = props.cascaderContext;\n return inputVal\n ? renderList(treeNodes, true)\n : panels.value.map((treeNodes, index: number) =>\n renderList(treeNodes, false, index !== panels.value.length - 1, index),\n );\n };\n\n return () => {\n let content;\n if (props.loading) {\n content = renderTNodeJSXDefault(\n 'loadingText',\n
    {globalConfig.value.loadingText}
    ,\n );\n } else {\n content = panels.value.length\n ? renderPanels()\n : renderTNodeJSXDefault(\n 'empty',\n
    {globalConfig.value.empty}
    ,\n );\n }\n return (\n \n {content}\n \n );\n };\n },\n});\n","import { isUndefined, isBoolean, omit, get } from 'lodash-es';\nimport { TreeNode } from './tree-node';\nimport { OptionData } from '../common';\nimport {\n TreeNodeValue,\n TypeTreeNodeModel,\n TypeTreeNodeData,\n TypeTreeItem,\n} from './types';\nimport log from '../log/log';\n\nexport const nodeKey = '__tdesign_tree-node__';\n\nexport class TreeNodeModel {\n private [nodeKey]: TreeNode;\n\n constructor(node: TreeNode) {\n this[nodeKey] = node;\n }\n\n public get value() {\n const node = this[nodeKey];\n return node.value;\n }\n\n public get label() {\n const node = this[nodeKey];\n return node.label;\n }\n\n public get data() {\n const node = this[nodeKey];\n return node.data;\n }\n\n public get actived() {\n const node = this[nodeKey];\n return node.actived;\n }\n\n public get expanded() {\n const node = this[nodeKey];\n return node.expanded;\n }\n\n public get checked() {\n const node = this[nodeKey];\n return node.checked;\n }\n\n public get indeterminate() {\n const node = this[nodeKey];\n return node.indeterminate;\n }\n\n public get loading() {\n const node = this[nodeKey];\n return node.loading;\n }\n\n public get disabled() {\n const node = this[nodeKey];\n return node.isDisabled();\n }\n\n /**\n * 获取节点所处层级\n * @return number 节点层级序号\n */\n public getLevel() {\n const node = this[nodeKey];\n return node.getLevel();\n }\n\n /**\n * 获取节点在父节点的子节点列表中的位置\n * - 如果没有父节点,则获取节点在根节点列表的位置\n * @return number 节点位置序号\n */\n public getIndex() {\n const node = this[nodeKey];\n return node.getIndex();\n }\n\n /**\n * 是否为兄弟节点中的第一个节点\n * @return boolean 是否为第一个节点\n */\n public isFirst() {\n const node = this[nodeKey];\n return node.isFirst();\n }\n\n /**\n * 是否为兄弟节点中的最后一个节点\n * @return boolean 是否为最后一个节点\n */\n public isLast() {\n const node = this[nodeKey];\n return node.isLast();\n }\n\n /**\n * 是否为叶子节点,叶子节点没有子节点\n * @return boolean 是否为叶子节点\n */\n public isLeaf() {\n const node = this[nodeKey];\n return node.isLeaf();\n }\n\n /**\n * 在当前节点之前插入节点\n * @param {object} newData 要插入的节点或者数据\n * @return void\n */\n public insertBefore(newData: TypeTreeItem) {\n const node = this[nodeKey];\n return node.insertBefore(newData);\n }\n\n /**\n * 在当前节点之后插入节点\n * @param {object} newData 要插入的节点或者数据\n * @return void\n */\n public insertAfter(newData: TypeTreeItem) {\n const node = this[nodeKey];\n return node.insertAfter(newData);\n }\n\n /**\n * 追加节点数据\n * @param {object | object[]} data 节点数据\n * @return void\n */\n public appendData(data: TypeTreeNodeData | TypeTreeNodeData[]) {\n const node = this[nodeKey];\n return node.append(data);\n }\n\n /**\n * 返回路径节点\n * - 路径节点包含自己在内\n * - 节点顺序与父级节点顺序相反,从根到当前\n * @return TreeNodeModel[] 路径节点数组\n */\n public getPath(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getPath();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取本节点的父节点\n * @return TreeNodeModel 父节点\n */\n public getParent(): TypeTreeNodeModel {\n const node = this[nodeKey];\n return node.parent?.getModel();\n }\n\n /**\n * 获取所有父级节点\n * - 顺序为从当前到根\n * @return TreeNodeModel[] 父级节点数组\n */\n public getParents(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getParents();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取本节点的根节点\n * @return TreeNodeModel 根节点\n */\n public getRoot(): TypeTreeNodeModel {\n const node = this[nodeKey];\n const root = node.getRoot();\n return root?.getModel();\n }\n\n /**\n * 获取所有兄弟节点,包含自己在内\n * @return TreeNodeModel[] 兄弟节点数组\n */\n public getSiblings(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getSiblings();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取当前节点的子节点\n * @param {boolean} deep 是否获取所有深层子节点\n * @return TreeNodeModel[] 子节点数组\n */\n public getChildren(deep?: boolean): boolean | TypeTreeNodeModel[] {\n const node = this[nodeKey];\n let childrenModel: boolean | TypeTreeNodeModel[] = false;\n const { children } = node;\n if (Array.isArray(children)) {\n if (children.length > 0) {\n if (deep) {\n const nodes = node.walk();\n nodes.shift();\n childrenModel = nodes.map((item) => item.getModel());\n } else {\n childrenModel = children.map((item) => item.getModel());\n }\n } else {\n childrenModel = false;\n }\n } else if (isBoolean(children)) {\n childrenModel = children;\n }\n return childrenModel;\n }\n\n /**\n * 移除节点\n * - 提供 value 参数,移除本节点子节点中的节点\n * - 不提供 value 参数,移除自己\n * @param {string} value 目标节点值\n * @return void\n */\n public remove(value?: TreeNodeValue) {\n const node = this[nodeKey];\n if (!value) {\n node.remove();\n return;\n }\n\n const { tree } = node;\n const targetNode = tree.getNode(value);\n if (!targetNode) {\n log.warnOnce('Tree', `\\`${value}\\` is not exist`);\n return;\n }\n\n const parents = targetNode.getParents();\n const parentValues = parents.map((pnode) => (pnode.value));\n if (parentValues.indexOf(node.value) < 0) {\n log.warnOnce('Tree', `\\`${value}\\` is not a childNode of current node`);\n return;\n }\n targetNode.remove();\n }\n\n /**\n * 设置本节点携带的元数据\n * @param {object} data 节点数据\n * @return void\n */\n public setData(data: OptionData) {\n const node = this[nodeKey];\n // syncAttrs 列举的属性,key 名称可被 tree.config.keys 定义\n // 因此同步状态时需要读取被定义的 key 名称\n // 详细细节可见 https://github.com/Tencent/tdesign-common/issues/655\n const syncAttrs = [\n 'value',\n 'label',\n 'disabled',\n ];\n const cleanData = omit(data, ['children', ...syncAttrs]) as Partial;\n const { keys } = node.tree.config;\n syncAttrs.forEach((attr: string) => {\n const dataAttrValue = get(data, keys?.[attr as keyof typeof keys] || attr);\n if (!isUndefined(dataAttrValue)) cleanData[attr as keyof typeof keys] = dataAttrValue;\n });\n Object.assign(node.data, cleanData);\n Object.assign(node, cleanData);\n node.update();\n }\n}\n\n// 封装对外暴露的对象\nexport function createNodeModel(node: TreeNode): TypeTreeNodeModel {\n const model = new TreeNodeModel(node);\n return model as TypeTreeNodeModel;\n}\n","import { isNull, isFunction, isNumber, uniqueId, isBoolean, isNil, get } from 'lodash-es';\nimport { TreeStore } from './tree-store';\nimport {\n TreeNodeValue,\n TreeNodeState,\n TypeIdMap,\n TypeTreeItem,\n TypeSettingOptions,\n TypeTreeNodeModel,\n TypeTreeNodeData,\n TypeTreeStoreOptions,\n TypeFnOperation,\n} from './types';\nimport {\n createNodeModel,\n} from './tree-node-model';\nimport log from '../log';\n\nconst { hasOwnProperty } = Object.prototype;\n\n// 这里的属性为 data 中属性可以同步到 treeNode 实例属性的白名单\n// 仅 label 属性和在列表中的属性可以通过 set 方法配置到 treeNode 实例上\nexport const settableStatus: Record = {\n expandMutex: null,\n activable: null,\n checkable: null,\n draggable: null,\n loading: false,\n};\n\nexport const settableProps = Object.keys(settableStatus);\n\nexport const syncableProps = [...settableProps, 'actived', 'expanded', 'checked'];\n\nexport const privateKey = '__tdesign_id__';\n\n// vm 开头为视图属性,不可以外部设置\n// 用于触发视图更新\n// public 方法,在 ui 组件中有可能在使用,会保障其输入输出实现\n// private 方法,可能会改动其输入输出\n\n/**\n * tree 节点数据模型\n * @class TreeNode\n * @param {TreeStore} tree TreeStore 实例\n * @param {object} [data] 节点数据\n * @param {TreeNode} parent 指定的当前 TreeStore 实例中的父节点\n */\nexport class TreeNode {\n // 节点隶属的树实例\n public tree: TreeStore;\n\n // 节点私有 id,不接受外部传入,确保唯一性\n public [privateKey]: string;\n\n // 节点 id ,唯一标志\n public value: string;\n\n // 节点文本\n public label: string;\n\n // 节点数据\n public data: TypeTreeNodeData;\n\n // 父节点\n public parent: TreeNode;\n\n // 子节点列表\n public children: TreeNode[] | boolean;\n\n // 暴露的 treeNodeModel,这个对象的属性和 api 提供给用户使用\n public model: TypeTreeNodeModel;\n\n // 是否为叶节点\n public vmIsLeaf: boolean;\n\n // 是否为子节点中的第一个\n public vmIsFirst: boolean;\n\n // 是否为子节点中的最后\n public vmIsLast: boolean;\n\n // 节点是否是经过过滤剩下的\n public vmIsRest: boolean;\n\n // 节点是否展示为锁定状态\n public vmIsLocked: boolean;\n\n // 节点在视图上实际的展开状态\n public expanded: boolean;\n\n // 展开时是否收起同级节点,对子节点生效\n public expandMutex: null | boolean;\n\n // 节点在视图上实际的激活状态\n public actived: boolean;\n\n // 是否可激活\n public activable: null | boolean;\n\n // 是否可选中\n public checkable: null | boolean;\n\n // 是否可选中的视图呈现\n public vmCheckable: boolean;\n\n // 节点在视图上实际的选中态\n public checked: boolean;\n\n // 节点实际是否为半选状态\n public indeterminate: boolean;\n\n // 节点是否已禁用\n public disabled: null | boolean;\n\n // 节点是否可拖动\n public draggable: null | boolean;\n\n // 节点是否可视\n public visible: boolean;\n\n // 节点在树中的层级\n public level: number;\n\n // 节点是否正在加载数据\n public loading: boolean;\n\n public constructor(\n tree: TreeStore,\n data?: TypeTreeNodeData,\n parent?: TreeNode,\n ) {\n this.data = data;\n this.tree = tree;\n\n const config = tree.config || {};\n const prefix = config.prefix || 't';\n const keys = config.keys || {};\n const propChildren = keys.children || 'children';\n const propLabel = keys.label || 'label';\n const propValue = keys.value || 'value';\n const propDisabled = keys.disabled || 'disabled';\n\n // 节点自身初始化数据\n this.model = null;\n this.children = null;\n this.level = 0;\n\n // vm 开头为视图属性,不可以外部设置\n this.vmCheckable = false;\n this.vmIsLeaf = false;\n this.vmIsFirst = false;\n this.vmIsLast = false;\n this.vmIsRest = false;\n this.vmIsLocked = false;\n\n // 初始化节点基本状态\n this.visible = false;\n this.actived = false;\n this.checked = false;\n this.indeterminate = false;\n this.loading = false;\n this.expanded = config.expandAll;\n\n // 下面几个属性,节点初始化的时候,可以设置与 treeStore.config 不同的值\n // 初始化默认值为 null, 则在方法判断时,默认以 treeStore.config 为准\n // 传递或者设置属性为 boolean 类型的值,则以节点属性值为准\n // 这种处理方式主要是解决 treeStore.setConfig 方法配置全局属性导致的状态切换与保留的问题\n this.activable = null;\n this.checkable = null;\n this.expandMutex = null;\n this.draggable = null;\n\n // 为节点设置唯一 id\n // tree 数据替换时,value 相同有可能导致节点状态渲染冲突\n // 用这个 唯一 id 来解决,用于类似 vue 组件的唯一 key 指定场景\n this[privateKey] = uniqueId(prefix);\n\n // 设置 value\n // 没有 value 的时候,value 默认使用自动生成的 唯一 id\n this.value = isNil(get(data, propValue))\n ? this[privateKey]\n : get(data, propValue);\n const { nodeMap, privateMap } = tree;\n if (nodeMap.get(this.value)) {\n log.warn('Tree', `Dulplicate value: ${this.value}`);\n }\n nodeMap.set(this.value, this);\n privateMap.set(this[privateKey], this);\n\n // 设置标签\n this.label = get(data, propLabel) || '';\n // 设置是否禁用\n this.disabled = get(data, propDisabled) || false;\n\n // 设置子节点\n const children = data[propChildren];\n // 子节点为 true 的状态逻辑需要放到状态计算之前\n // 初始化加载逻辑需要依据这个来进行\n if (children === true) {\n this.children = children;\n }\n\n // 设置父节点\n if (parent && parent instanceof TreeNode) {\n this.parent = parent;\n } else {\n this.parent = null;\n }\n\n // 同步数据属性到节点属性\n // 仅 syncableStatus 列举的属性被同步到 treeNode 实例属性\n syncableProps.forEach((prop) => {\n if (typeof data[prop] !== 'undefined') {\n // @ts-ignore\n // TODO: 待移除\n this[prop] = data[prop];\n }\n });\n\n // 初始化节点激活状态\n this.initActived();\n // 展开状态影响了子节点的显示状态,所以要在子节点插入之前初始化展开状态\n this.initExpanded();\n\n // 这里的子节点加载逻辑不能放到状态初始化之前\n // 因为子节点状态计算依赖父节点初始化状态\n if (Array.isArray(children)) {\n this.append(children);\n } else if (children === true && !config.lazy) {\n this.loadChildren();\n }\n\n // 节点的选中状态同时依赖于子节点状态与父节点状态\n // 因此在子节点插入之后再更新选中状态\n this.initChecked();\n this.updateChecked();\n\n // 标记节点更新\n this.update();\n // 创建节点需要回流操作\n tree.reflow(this);\n }\n\n /* ------ 状态初始化 ------ */\n\n /**\n * 初始化选中态\n * @return void\n */\n private initChecked(): void {\n const { tree, value, parent } = this;\n const { checkedMap } = tree;\n const { checkStrictly } = tree.config;\n if (this.checked) {\n checkedMap.set(value, true);\n }\n // 这里不可以使用 parent.isChecked 方法\n // 因为当前节点创建时尚未插入父节点的 children 数组,可能父节点选中态仅受到之前子节点状态的影响\n // 这会导致父节点状态计算错误,进而引发子节点变更了选中状态\n if (!checkStrictly && parent?.checked) {\n checkedMap.set(value, true);\n }\n }\n\n /**\n * 初始化节点展开状态\n * @return void\n */\n private initExpanded(): void {\n const { tree } = this;\n let { expanded } = this;\n const { config } = tree;\n if (isNumber(config.expandLevel) && this.getLevel() < config.expandLevel) {\n tree.expandedMap.set(this.value, true);\n expanded = true;\n }\n if (this.children === true && config.lazy) {\n expanded = false;\n }\n if (expanded) {\n tree.expandedMap.set(this.value, true);\n } else {\n tree.expandedMap.delete(this.value);\n }\n this.expanded = expanded;\n }\n\n /**\n * 初始化节点激活状态\n * @return void\n */\n private initActived(): void {\n const { tree, actived } = this;\n if (actived && this.isActivable()) {\n tree.activedMap.set(this.value, true);\n }\n }\n\n /* ------ 节点操作 ------ */\n\n /**\n * 追加节点数据\n * @param {object | object[]} data 节点数据\n * @return void\n */\n public append(data: TypeTreeNodeData | TypeTreeNodeData[]): void {\n const list = [];\n if (!Array.isArray(data)) {\n list.push(data);\n } else {\n list.push(...data);\n }\n if (list.length <= 0) {\n return;\n }\n if (!Array.isArray(this.children)) {\n this.children = [];\n }\n const { children, tree } = this;\n list.forEach((item) => {\n let node = null;\n if (item instanceof TreeNode) {\n node = item;\n node.appendTo(this.tree, this);\n } else {\n node = new TreeNode(this.tree, item, this);\n children.push(node);\n }\n });\n tree.reflow(this);\n this.updateRelated();\n }\n\n /**\n * 将当前节点追加到某个父节点的子节点列表中\n * @param {TreeStore} tree 目标树\n * @param {TreeNode} [parent] 目标父节点\n * @param {number} [index] 预期在子节点列表中的位置\n * @return void\n */\n public appendTo(tree: TreeStore, parent?: TreeNode, index?: number): void {\n const parentNode = parent;\n let targetIndex = -1;\n if (isNumber(index)) {\n targetIndex = index;\n }\n\n const targetParents = parentNode?.getParents() || [];\n const includeCurrent = targetParents.some((pnode) => pnode === this);\n if (includeCurrent) {\n throw new Error('无法将父节点插入到子节点');\n }\n\n if (parentNode === this) {\n throw new Error('无法将节点插入到本节点');\n }\n\n if (Array.isArray(parentNode?.children)) {\n const targetPosNode = parentNode?.children[targetIndex];\n if (targetPosNode && targetPosNode === this) {\n // 无需将节点插入到原位置\n return;\n }\n }\n\n // 先要取得 siblings\n // 因为要应对节点在同一个 siblings 中变换位置的情况\n let siblings = null;\n if (parentNode instanceof TreeNode) {\n if (!Array.isArray(parentNode?.children)) {\n parentNode.children = [];\n }\n siblings = parent.children;\n } else {\n siblings = tree.children;\n }\n\n // 上面的逻辑其实已经覆盖了所有业务情况\n // 这里的逻辑报错仅用于极限兜底,防止 treeStore 被误使用\n if (!Array.isArray(siblings)) {\n throw new Error('无法插入到目标位置,可插入的节点列表不存在');\n }\n\n const prevLength = siblings.length;\n const prevIndex = this.getIndex();\n\n this.remove();\n\n if (isNumber(index)) {\n let targetIndex = index;\n if (parentNode === this.parent) {\n // 前置节点被拔出后再插入到同一个 siblings 时,会引起目标 index 的变化\n // 因此要相应的变更插入位置\n // 后置节点被拔出时,目标 index 是不变的\n const curLength = siblings.length;\n if (curLength < prevLength && prevIndex <= targetIndex) {\n targetIndex -= 1;\n }\n }\n siblings.splice(targetIndex, 0, this);\n } else {\n siblings.push(this);\n }\n\n this.parent = parentNode;\n\n // 插入节点应当继承展开状态\n // 但不要继承选中状态和高亮状态\n const nodes = this.walk();\n nodes.forEach((item) => {\n const node = item;\n node.tree = tree;\n tree.nodeMap.set(node.value, node);\n tree.privateMap.set(node[privateKey], node);\n if (node.expanded) {\n tree.expandedMap.set(node.value, true);\n }\n });\n\n const updateNodes = parentNode?.walk() || tree.children.map((item) => item.walk()).flat();\n updateNodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n\n tree.reflow();\n }\n\n /**\n * 插入一个节点或者数据到到同级节点的目标位置\n * @param {TreeNode | object} item 要插入的节点或者数据\n * @param {number} [index] 预期在子节点列表中的位置\n * @return void\n */\n private insert(item: TypeTreeItem, index?: number): void {\n const { tree, parent } = this;\n const siblings = this.getSiblings();\n let node = null;\n if (item instanceof TreeNode) {\n node = item;\n node.appendTo(tree, parent, index);\n } else if (item) {\n node = new TreeNode(tree, item, parent);\n if (isNumber(index)) {\n siblings.splice(index, 0, node);\n }\n siblings.forEach((sibling) => {\n sibling.update();\n });\n }\n tree.reflow();\n }\n\n /**\n * 在当前节点之前插入节点\n * @param {TreeNode | object} newData 要插入的节点或者数据\n * @return void\n */\n public insertBefore(newData: TypeTreeItem): void {\n const index = this.getIndex();\n this.insert(newData, index);\n }\n\n /**\n * 在当前节点之后插入节点\n * @param {TreeNode | object} newData 要插入的节点或者数据\n * @return void\n */\n public insertAfter(newData: TypeTreeItem): void {\n const index = this.getIndex();\n this.insert(newData, index + 1);\n }\n\n /**\n * 从当前树中移除本节点\n * @return void\n */\n public remove(): void {\n const { tree } = this;\n\n const nodes = this.walk();\n const siblings = this.getSiblings();\n const index = this.getIndex();\n // 从父节点的子节点列表中移除自己\n // 但不要将自己的父节点移除,避免渲染与判断失败\n if (Array.isArray(siblings)) {\n siblings.splice(index, 1);\n }\n // 清理与树的关系,但不清理自身状态\n nodes.forEach((node) => {\n node.clean();\n });\n // 同级节点的连线状态会受到影响\n siblings.forEach((node) => {\n node.update();\n });\n // 父节点选中态会受到影响\n this.updateParents();\n tree.reflow();\n }\n\n /**\n * 清除本节点与当前树的关系\n * @return void\n */\n private clean(): void {\n const { tree, value } = this;\n tree.activedMap.delete(value);\n tree.checkedMap.delete(value);\n tree.expandedMap.delete(value);\n tree.nodeMap.delete(value);\n tree.filterMap.delete(value);\n tree.privateMap.delete(this[privateKey]);\n }\n\n /**\n * 异步加载子节点\n * @return Promise\n */\n private async loadChildren(): Promise {\n const config: TypeTreeStoreOptions = get(this, 'tree.config') || {};\n if (this.children === true && !this.loading) {\n if (isFunction(config.load)) {\n this.loading = true;\n this.update();\n let list = [];\n list = await config.load(this);\n this.tree.emit('load', {\n node: this,\n data: list,\n });\n this.loading = false;\n if (Array.isArray(list) && list.length > 0) {\n this.append(list);\n } else {\n this.children = false;\n }\n this.update();\n }\n }\n }\n\n /**\n * 设置节点状态\n * - 为节点设置独立于配置的 disabled 状态: set({ disabled: true })\n * - 清除独立于配置的 disabled 状态: set({ disabled: null })\n * @param {object} item 节点状态对象\n * @return void\n */\n public set(item: TreeNodeState): void {\n const { tree } = this;\n const keys = Object.keys(item);\n keys.forEach((key) => {\n // key, disabled 字段可被 tree.config.keys 定义\n if (hasOwnProperty.call(settableStatus, key) || key === 'label') {\n // @ts-ignore\n // TODO: 待移除\n this[key] = item[key];\n }\n if (key === 'disabled') {\n this.setDisabled(item[key]);\n }\n });\n tree.updated(this);\n }\n\n /* ------ 节点获取 ------- */\n\n /**\n * 获取本节点的父节点\n * @return TreeNode 父节点\n */\n public getParent(): TreeNode {\n return this.parent;\n }\n\n /**\n * 获取所有父级节点\n * - 顺序为从当前到根\n * @return TreeNode[] 父级节点数组\n */\n public getParents(): TreeNode[] {\n const parents = [];\n let node = this.parent;\n while (node) {\n parents.push(node);\n node = node.parent;\n }\n return parents;\n }\n\n /**\n * 获取所有兄弟节点,包含自己在内\n * @return TreeNode[] 兄弟节点数组\n */\n public getSiblings(): TreeNode[] {\n const { parent, tree } = this;\n let list: TreeNode[] = [];\n if (parent) {\n if (Array.isArray(parent.children)) {\n list = parent.children;\n }\n } else if (tree) {\n list = tree.children;\n }\n return list;\n }\n\n /**\n * 获取当前节点的子节点\n * @param {boolean} deep 是否获取所有深层子节点\n * @return TreeNodeModel[] 子节点数组\n */\n public getChildren(deep?: boolean): boolean | TypeTreeNodeModel[] {\n let childrenModel: boolean | TypeTreeNodeModel[] = false;\n const { children } = this;\n if (Array.isArray(children)) {\n if (children.length > 0) {\n if (deep) {\n const nodes = this.walk();\n nodes.shift();\n childrenModel = nodes.map((item) => item.getModel());\n } else {\n childrenModel = children.map((item) => item.getModel());\n }\n } else {\n childrenModel = false;\n }\n } else if (isBoolean(children)) {\n childrenModel = children;\n }\n return childrenModel;\n }\n\n /**\n * 获取本节点的根节点\n * @return TreeNode 根节点\n */\n public getRoot(): TreeNode {\n const parents = this.getParents();\n return parents[parents.length - 1] || null;\n }\n\n /**\n * 获取节点在父节点的子节点列表中的位置\n * - 如果没有父节点,则获取节点在根节点列表的位置\n * @return number 节点位置序号\n */\n public getIndex(): number {\n const list = this.getSiblings();\n return list.indexOf(this);\n }\n\n /**\n * 返回路径节点\n * - 路径节点包含自己在内\n * - 节点顺序与父级节点顺序相反,从根到当前\n * @return TreeNode[] 路径节点数组\n */\n public getPath(): TreeNode[] {\n const nodes = this.getParents();\n nodes.unshift(this);\n return nodes.reverse();\n }\n\n /**\n * 获取节点所在层级\n * @return number 层级序号\n */\n public getLevel(): number {\n const parents = this.getParents();\n return parents.length;\n }\n\n /* ------ 节点状态判断 ------ */\n\n /**\n * 判断节点是否被过滤\n * @return boolean 是否被过滤方法命中\n */\n public isRest(): boolean {\n const { config, filterMap, hasFilter } = this.tree;\n\n let rest = false;\n if (hasFilter) {\n // 仅在存在过滤条件时,过滤命中才有效\n const nodeModel = this.getModel();\n rest = config.filter(nodeModel);\n }\n\n if (rest) {\n filterMap.set(this.value, true);\n } else if (filterMap.get(this.value)) {\n filterMap.delete(this.value);\n }\n\n return rest;\n }\n\n /**\n * 判断节点是否可见\n * @return boolean 是否可见\n */\n public isVisible(): boolean {\n const { nodeMap, hasFilter, config } = this.tree;\n const { allowFoldNodeOnFilter } = config;\n\n let visible = true;\n\n if (!nodeMap.get(this.value)) {\n // 节点不在当前树上,所以不可见\n return false;\n }\n\n if (hasFilter && !allowFoldNodeOnFilter) {\n // 如果存在过滤条件\n // 锁定状态和过滤命中状态,直接呈现\n visible = this.vmIsLocked || this.vmIsRest;\n return visible;\n }\n\n // 标志所有父节点展开导致的可见状态\n let expandVisible = true;\n const parents = this.getParents();\n if (parents.length > 0) {\n expandVisible = parents.every((node: TreeNode) => node.expanded);\n }\n\n if (hasFilter) {\n visible = expandVisible && (this.vmIsRest || this.vmIsLocked);\n } else {\n visible = expandVisible;\n }\n return visible;\n }\n\n /**\n * 判断节点为逻辑禁用状态,不包含过滤锁定状态\n * @return boolean 是否被禁用\n */\n public isDisabledState(): boolean {\n const { tree, parent } = this;\n const { config } = tree;\n const { disabled, disableCheck, checkStrictly } = config;\n let state = disabled || false;\n if (this.disabled) {\n // 整个树被禁用,则节点为禁用状态\n state = true;\n }\n if (!checkStrictly && parent?.isDisabledState()) {\n // 如果 checkStrictly 为 false\n // 父节点被禁用,则子节点也为禁用状态\n state = true;\n }\n if (typeof disableCheck === 'boolean') {\n if (disableCheck) {\n state = true;\n }\n } else if (typeof disableCheck === 'function') {\n // disableCheck 视为禁用节点的过滤函数\n if (disableCheck(this.getModel())) {\n state = true;\n }\n }\n return state;\n }\n\n /**\n * 判断节点是否呈现为禁用态,包含过滤锁定状态\n * @return boolean 是否被禁用\n */\n public isDisabled(): boolean {\n const { tree } = this;\n const { hasFilter, config } = tree;\n const { allowFoldNodeOnFilter } = config;\n if (hasFilter && !allowFoldNodeOnFilter && this.vmIsLocked && !this.vmIsRest) {\n // 当前树存在过滤条件,允许节点过滤后被折叠,当前节点为锁定节点,并且不是筛选后剩下的节点\n // 则该节点应当呈现禁用状态\n return true;\n }\n return this.isDisabledState();\n }\n\n /**\n * 判断节点是否能拖拽\n * @return boolean 是否能拖拽\n */\n public isDraggable(): boolean {\n let state = !!get(this, 'tree.config.draggable');\n if (typeof this.draggable === 'boolean') {\n state = this.draggable;\n }\n return state;\n }\n\n /**\n * 判断子节点是否互斥展开\n * @return boolean 子节点是否互斥展开\n */\n public isExpandMutex(): boolean {\n let state = !!get(this, 'tree.config.expandMutex');\n if (typeof this.expandMutex === 'boolean') {\n state = this.expandMutex;\n }\n return state;\n }\n\n /**\n * 节点是否可被激活\n * @return boolean 是否可被激活\n */\n public isActivable() {\n let state = !!get(this, 'tree.config.activable');\n if (typeof this.activable === 'boolean') {\n state = this.activable;\n }\n return state;\n }\n\n /**\n * 节点是否可选\n * @return boolean 是否可选\n */\n public isCheckable() {\n let state = !!get(this, 'tree.config.checkable');\n if (typeof this.checkable === 'boolean') {\n state = this.checkable;\n }\n return state;\n }\n\n /**\n * 节点是否被激活\n * @param {Map} [map] 预设激活节点 map, 用于计算节点在预期环境中的激活状态\n * @return boolean 是否被激活\n */\n public isActived(map?: Map): boolean {\n const { tree, value } = this;\n const activedMap = map || tree.activedMap;\n return !!(tree.nodeMap.get(value) && activedMap.get(value));\n }\n\n /**\n * 节点是否已展开\n * @param {Map} [map] 预设展开节点 map, 用于计算节点在预期环境中的展开状态\n * @return boolean 是否已展开\n */\n public isExpanded(map?: Map): boolean {\n const { tree, value, vmIsLocked } = this;\n const { hasFilter, config } = tree;\n const { allowFoldNodeOnFilter } = config;\n if (hasFilter && !allowFoldNodeOnFilter && vmIsLocked) return true;\n const expandedMap = map || tree.expandedMap;\n return !!(tree.nodeMap.get(value) && expandedMap.get(value));\n }\n\n /**\n * 节点是否被选中\n * @param {Map} [map] 预设选中节点 map, 用于计算节点在预期环境中的选中态\n * @return boolean 是否被选中\n */\n public isChecked(map?: TypeIdMap): boolean {\n const { children, tree, value } = this;\n const { checkStrictly, valueMode } = tree.config;\n // 节点不在当前树上,视为未选中\n if (!tree.nodeMap.get(value)) return false;\n // 节点不可选,视为未选中\n if (!this.isCheckable()) return false;\n const checkedMap = map || tree.checkedMap;\n // 严格模式,则已经可以判定选中状态\n if (checkStrictly) {\n return !!checkedMap.get(value);\n }\n let checked = false;\n // 在 checkedMap 中,则根据 valueMode 的值进行判断\n if (checkedMap.get(value)\n && (\n // 如果 valueMode 为 all、parentFirst,则视为选中\n valueMode !== 'onlyLeaf'\n // 如果 valueMode 为 onlyLeaf 并且当前节点是叶子节点,则视为选中\n || this.isLeaf()\n )\n ) {\n return true;\n }\n // 如果 valueMode 为 onlyLeaf 并且当前节点是父节点,则进一步判断\n if (Array.isArray(children) && children.length > 0) {\n // 子节点全部选中,则当前节点选中\n checked = children.every((node) => {\n const childIsChecked = node.isChecked(checkedMap);\n return childIsChecked;\n });\n } else {\n // 从父节点状态推断子节点状态\n // 这里再调用 isChecked 会导致死循环\n const parents = this.getParents();\n checked = parents.some((node) => checkedMap.get(node.value));\n }\n return checked;\n }\n\n /**\n * 是否为半选状态\n * @return boolean 是否为半选状态\n */\n public isIndeterminate(): boolean {\n const { children, tree, value } = this;\n const { checkStrictly } = tree.config;\n // 节点不在当前树上,视为未选中\n if (!tree.nodeMap.get(value)) return false;\n // 节点不可选,视为未选中\n if (!this.isCheckable()) return false;\n // 严格模式没有半选状态\n if (checkStrictly) return false;\n // 叶节点不存在半选状态\n if (!Array.isArray(children)) return false;\n\n let childChecked: null | boolean = null;\n const indeterminate = children.some((node: TreeNode) => {\n if (node.isIndeterminate()) {\n // 子节点有任意一个半选,则其为半选状态\n return true;\n }\n if (isNull(childChecked)) {\n childChecked = node.isChecked();\n }\n if (childChecked !== node.isChecked()) {\n // 子节点选中状态不一致,则其为半选状态\n return true;\n }\n return false;\n });\n\n return indeterminate;\n }\n\n /**\n * 是否为兄弟节点中的第一个节点\n * @return boolean 是否为第一个节点\n */\n public isFirst(): boolean {\n const siblings = this.getSiblings();\n return siblings[0] === this;\n }\n\n /**\n * 是否为兄弟节点中的最后一个节点\n * @return boolean 是否为最后一个节点\n */\n public isLast(): boolean {\n const siblings = this.getSiblings();\n return siblings[siblings.length - 1] === this;\n }\n\n /**\n * 是否为叶子节点,叶子节点没有子节点\n * @return boolean 是否为叶子节点\n */\n public isLeaf(): boolean {\n let isLeaf = false;\n if (Array.isArray(this.children)) {\n isLeaf = this.children.length <= 0;\n } else {\n isLeaf = !this.children;\n }\n return isLeaf;\n }\n\n /* ------ 节点状态切换 ------ */\n\n /**\n * 锁定节点,解锁节点\n * - 搜索过滤节点时,路径节点需要固定呈现,视其为锁定态\n * @param {boolean} lockState 锁定状态\n * @return void\n */\n public lock(lockState: boolean): void {\n this.vmIsLocked = lockState;\n this.expanded = this.isExpanded();\n this.visible = this.isVisible();\n }\n\n /**\n * 节点展开关闭后需要调用的状态检查函数\n * @return void\n */\n public afterExpanded(): void {\n this.update();\n // 节点展开时检查延迟加载的数据\n if (this.expanded && this.children === true) {\n this.loadChildren();\n }\n this.updateChildren();\n }\n\n /**\n * 切换节点展开状态\n * - 用于受控逻辑处理\n * - 仅返回预期状态值数组,不直接操作状态\n * @return string[] 当前树展开的节点值数组\n */\n public toggleExpanded(opts?: TypeSettingOptions): TreeNodeValue[] {\n return this.setExpanded(!this.isExpanded(), opts);\n }\n\n /**\n * 设置节点展开状态\n * @param {boolean} expanded 节点展开状态\n * @param {object} [opts] 操作选项\n * @param {boolean} [opts.directly=false] 是否直接操作节点状态\n * @return string[] 当前树展开的节点值数组\n */\n public setExpanded(\n expanded: boolean,\n opts?: TypeSettingOptions\n ): TreeNodeValue[] {\n const { tree } = this;\n const { config } = tree;\n const options = {\n directly: false,\n ...opts,\n };\n\n let map = tree.expandedMap;\n if (!options.directly) {\n map = new Map(tree.expandedMap);\n }\n\n // 手风琴效果,先折叠同级节点\n if (expanded) {\n // 列举需要展开的节点\n const shouldExpandNodes = [];\n // 自己一定在展开列表中\n shouldExpandNodes.push(this);\n if (config.expandParent) {\n // expandParent 为 true,则父节点都要展开\n this.getParents().forEach((node) => {\n shouldExpandNodes.push(node);\n });\n }\n shouldExpandNodes.forEach((node) => {\n let isExpandMutex = false;\n // 对于每一个节点,都需要判断是否启用手风琴效果\n if (node.parent) {\n isExpandMutex = node.parent.isExpandMutex();\n } else {\n isExpandMutex = tree?.config?.expandMutex;\n }\n if (isExpandMutex) {\n // 折叠列表中,先移除同级节点\n const siblings = node.getSiblings();\n siblings.forEach((snode) => {\n map.delete(snode.value);\n // 同级节点相关状态更新\n snode.update();\n snode.updateChildren();\n });\n }\n // 最后设置自己的折叠状态\n map.set(node.value, true);\n node.update();\n node.updateChildren();\n });\n } else {\n map.delete(this.value);\n }\n\n if (options.directly) {\n this.afterExpanded();\n }\n\n return tree.getExpanded(map);\n }\n\n /**\n * 切换节点激活状态\n * - 用于受控逻辑处理\n * - 仅返回预期状态值数组,不直接操作状态\n * @return string[] 当前树激活的节点值数组\n */\n public toggleActived(opts?: TypeSettingOptions): TreeNodeValue[] {\n return this.setActived(!this.isActived(), opts);\n }\n\n /**\n * 设置节点激活状态\n * @param {boolean} actived 节点激活状态\n * @param {object} [opts] 操作选项\n * @param {boolean} [opts.directly=false] 是否直接操作节点状态\n * @return string[] 当前树激活的节点值数组\n */\n public setActived(\n actived: boolean,\n opts?: TypeSettingOptions\n ): TreeNodeValue[] {\n const { tree } = this;\n const options = {\n // 为 true, 为 UI 操作,状态变更受 disabled 影响\n // 为 false, 为值操作, 状态变更不受 disabled 影响\n isAction: true,\n // 为 true, 直接操作节点状态\n // 为 false, 返回预期状态\n directly: false,\n ...opts,\n };\n const config = tree.config || {};\n let map = tree.activedMap;\n if (!options.directly) {\n map = new Map(tree.activedMap);\n }\n if (options.isAction && this.isDisabledState()) {\n // 对于 UI 动作,禁用时不可切换激活状态\n return tree.getActived(map);\n }\n if (this.isActivable()) {\n if (actived) {\n const prevKeys = Array.from(map.keys());\n if (!config.activeMultiple) {\n map.clear();\n }\n prevKeys.forEach((value) => {\n const node = tree.getNode(value);\n node?.update();\n });\n map.set(this.value, true);\n } else {\n map.delete(this.value);\n }\n }\n this.update();\n return tree.getActived(map);\n }\n\n /**\n * 是否存在未选中的未禁用子节点\n * @return boolean 未选中的未禁用子节点存在与否\n */\n public hasEnableUnCheckedChild(): boolean {\n const { children } = this;\n if (!Array.isArray(children) || children.length <= 0) {\n // 没有子节点\n return false;\n }\n let state = false;\n children.some((child) => {\n // 不理会禁用节点\n if (child.isDisabledState()) return false;\n // 不理会选中节点\n if (child.isChecked()) return false;\n if (child.isIndeterminate()) {\n // 为半选节点则进行递归检查\n if (child.hasEnableUnCheckedChild()) {\n state = true;\n return true;\n }\n // 都尽可能选中了,则检查之后的节点\n return false;\n }\n // 子节点为未选中状态,且非半选状态\n // 则直接返回 true\n state = true;\n return true;\n });\n return state;\n }\n\n /**\n * 切换节点选中状态\n * - 用于受控逻辑处理\n * - 仅返回预期状态值数组,不直接操作状态\n * @return string[] 当前树选中的节点值数组\n */\n public toggleChecked(opts?: TypeSettingOptions): TreeNodeValue[] {\n if (this.isIndeterminate()) {\n // 当前节点为半选情况下需要判断子节点是否尽可能全部选中\n // 存在可操作的未选中的子节点,则应当尽可能选中子节点\n // 不存在可操作的未选中的子节点,则应取消选中子节点\n const expectState = this.hasEnableUnCheckedChild();\n return this.setChecked(expectState, opts);\n }\n return this.setChecked(!this.isChecked(), opts);\n }\n\n /**\n * 设置节点选中状态\n * - 节点 UI 操作时调用这个方法\n * - 节点设置自身状态时调用这个方法\n * @param {boolean} checked 节点选中状态\n * @param {object} [opts] 操作选项\n * @param {boolean} [opts.isAction=true] 是否为 UI 动作\n * @param {boolean} [opts.directly=false] 是否直接操作节点状态\n * @return string[] 当前树选中的节点值数组\n */\n public setChecked(\n checked: boolean,\n opts?: TypeSettingOptions\n ): TreeNodeValue[] {\n const { tree } = this;\n const config = tree.config || {};\n const options: TypeSettingOptions = {\n // 为 true, 为 UI 操作,状态变更受 disabled 影响\n // 为 false, 为值操作, 状态变更不受 disabled 影响\n isAction: true,\n // 为 true, 直接操作节点状态\n // 为 false, 返回预期状态\n directly: false,\n ...opts,\n };\n let map = tree.checkedMap;\n if (!options.directly) {\n map = new Map(tree.checkedMap);\n }\n if (!this.isCheckable()) {\n // 当前节点非可选节点,则不可设置选中态\n return tree.getChecked(map);\n }\n if (options.isAction && this.isDisabledState()) {\n // 对于 UI 动作,禁用时不可切换选中态\n return tree.getChecked(map);\n }\n\n if (checked === this.isChecked()) {\n const shouldSet = this.isIndeterminate() && !this.hasEnableUnCheckedChild();\n if (!shouldSet) {\n // 值没有变更, 则选中态无变化\n return tree.getChecked(map);\n }\n }\n\n if (checked) {\n map.set(this.value, true);\n } else {\n map.delete(this.value);\n }\n\n if (config.checkStrictly) {\n // 严格模式下,选中态不扩散,仅操作节点自身\n if (options.directly) {\n // 严格模式值更新节点自身\n this.updateChecked();\n }\n } else {\n // 先向下游扩散选中态\n this.spreadChildrenChecked(checked, map, options);\n // 再计算上游选中态\n this.spreadParentChecked(checked, map, options);\n // 状态更新务必放到扩散动作之后\n // 过早的状态更新会导致后续计算出错\n if (options.directly) {\n const relatedNodes = tree.getRelatedNodes([this.value], {\n reverse: true,\n });\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n }\n\n return tree.getChecked(map);\n }\n\n // 选中态向上游扩散\n private spreadParentChecked(\n checked: boolean,\n map?: TypeIdMap,\n opts?: TypeSettingOptions\n ) {\n const options: TypeSettingOptions = {\n isAction: true,\n directly: false,\n ...opts,\n };\n\n // 碰到不可选节点,中断扩散\n if (!this.isCheckable()) return;\n\n const { children } = this;\n if (Array.isArray(children) && children.length > 0) {\n // 有子节点,则选中态由子节点选中态集合来决定\n map.delete(this.value);\n }\n\n const { parent } = this;\n if (!parent) return;\n parent.spreadParentChecked(checked, map, options);\n }\n\n // 选中态向下游扩散\n private spreadChildrenChecked(\n checked: boolean,\n map?: TypeIdMap,\n opts?: TypeSettingOptions\n ) {\n const options: TypeSettingOptions = {\n isAction: true,\n directly: false,\n ...opts,\n };\n\n // 碰到不可选节点,中断扩散\n if (!this.isCheckable()) return;\n // 对于 UI 动作操作,节点禁用,中断扩散\n if (options.isAction && this.isDisabledState()) return;\n\n const { children } = this;\n if (!Array.isArray(children)) return;\n if (children.length <= 0) return;\n // 有子节点,则选中态由子节点选中态集合来决定\n map.delete(this.value);\n children.forEach((node) => {\n // 对于 UI 动作,向下扩散时,禁用状态会阻止状态切换\n if (options.isAction && node.isDisabledState()) return;\n if (checked) {\n map.set(node.value, true);\n } else {\n map.delete(node.value);\n }\n node.spreadChildrenChecked(checked, map, options);\n });\n }\n\n /**\n * 设置节点禁用状态\n * @return void\n */\n public setDisabled(disabled: boolean) {\n this.disabled = disabled;\n this.update();\n this.updateChildren();\n }\n\n /* ------ 节点状态更新 ------ */\n\n /**\n * 更新节点当前状态,将节点放到延时更新检查队列\n * @return void\n */\n public update(): void {\n this.level = this.getLevel();\n this.vmIsFirst = this.isFirst();\n this.vmIsLast = this.isLast();\n this.vmIsLeaf = this.isLeaf();\n this.vmCheckable = this.isCheckable();\n this.vmIsRest = this.isRest();\n this.actived = this.isActived();\n this.expanded = this.isExpanded();\n this.visible = this.isVisible();\n this.tree.updated(this);\n }\n\n /**\n * 更新节点选中态\n * @return void\n */\n public updateChecked(): void {\n const { tree, value } = this;\n const { checkedMap } = tree;\n this.checked = this.isChecked();\n this.indeterminate = this.isIndeterminate();\n if (this.checked) {\n checkedMap.set(value, true);\n }\n tree.updated(this);\n }\n\n /**\n * 更新所有子节点状态\n * - 不包含自己\n * @return void\n */\n public updateChildren(): void {\n this.spreadChildren((node) => {\n if (node === this) return;\n node.update();\n node.updateChecked();\n });\n }\n\n /**\n * 更新所有父级节点状态\n * - 不包含自己\n * @return void\n */\n public updateParents(): void {\n this.spreadParents((node: TreeNode) => {\n if (node === this) return;\n node.update();\n node.updateChecked();\n });\n }\n\n /**\n * 更新上下游相关节点状态\n * - 包含自己\n * @return void\n */\n public updateRelated(): void {\n const { tree } = this;\n const relatedNodes = tree.getRelatedNodes([this.value]);\n relatedNodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n }\n\n /* ------ 节点遍历 ------ */\n\n /**\n * 获取包含自己在内所有的子节点\n * - 包含自己\n * @return TreeNode[] 遍历结果节点数组\n */\n public walk(): TreeNode[] {\n const list: TreeNode[] = [];\n this.spreadChildren((node: TreeNode) => {\n list.push(node);\n });\n return list;\n }\n\n /**\n * 向下遍历操作\n * - 包含自己\n * @return void\n */\n private spreadChildren(fn: TypeFnOperation) {\n fn(this);\n const { children } = this;\n if (Array.isArray(children) && children.length > 0) {\n children.forEach((node) => {\n node?.spreadChildren(fn);\n });\n }\n }\n\n /**\n * 向上遍历操作\n * - 包含自己\n * @return void\n */\n private spreadParents(fn: TypeFnOperation) {\n fn(this);\n const { parent } = this;\n if (!parent) return;\n parent?.spreadParents(fn);\n }\n\n /**\n * 获取节点封装对象\n * - TreeNode 对象 => TypeTreeNodeModel 对象\n * - TypeTreeNodeModel 用于封装 treeNode 对外暴露的 api\n * - 用户仅可操作经过封装的对象,减少了对外暴露的 api,利于代码重构\n * @return TypeTreeNodeModel 节点封装对象\n */\n public getModel(): TypeTreeNodeModel {\n let { model } = this;\n if (!model) {\n model = createNodeModel(this);\n this.model = model;\n }\n return model;\n }\n}\n\nexport default TreeNode;\n","import { isArray, isFunction, isNumber, isString, difference, camelCase, isPlainObject } from 'lodash-es';\nimport mitt from 'mitt';\n\nimport { TreeNode, privateKey } from './tree-node';\nimport {\n TreeNodeValue,\n TypeIdMap,\n TypeTargetNode,\n TypeTreeNodeData,\n TypeTreeItem,\n TypeTreeStoreOptions,\n TypeTreeFilter,\n TypeTreeFilterOptions,\n TypeRelatedNodesOptions,\n TypeTreeEventState,\n TypeUpdatedMap,\n} from './types';\n\nfunction nextTick(fn: () => void): Promise {\n const pm = Promise.resolve();\n pm.then(fn);\n return pm;\n}\n\n// 构建一个树的数据模型\n// 基本设计思想:写入时更新,减少读取消耗,以减少未来实现虚拟滚动所需的计算量\n// 任何一次数据写入,会触发相应节点的状态更新\n// public 方法,在 ui 组件中有可能在使用,会保障其输入输出实现\n// private 方法,可能会改动其输入输出\n\n/**\n * tree 数据模型\n * @class TreeStore\n * @param {object} options tree 组件选项\n * @param {string} [options.prefix=\"t\"] tree 组件内部属性前缀\n * @param {object} options.keys 取值映射对象,部分属性按照其 key/value 来取 treeNode 属性值\n * @param {string} [options.keys.label=\"label\"] 从 data 种取 label 值时读取的属性名称\n * @param {string} [options.keys.value=\"value\"] 从 data 种取 value 值时读取的属性名称\n * @param {string} [options.keys.children=\"children\"] 从 data 种取 children 值时读取的属性名称\n * @param {boolean} [options.expandAll=false] 初始化节点时,是否自动展开\n * @param {number} [options.expandLevel=0] 初始化节点时,自动展开的级别\n * @param {boolean} [options.expandMutex=false] 展开时,是否使用手风琴模式\n * @param {boolean} [options.expandParent=false] 展开节点时,是否自动展开父节点\n * @param {boolean} [options.activable=false] 是否可以激活节点\n * @param {boolean} [options.activeMultiple=false] 激活节点是否使用多选模式\n * @param {boolean} [options.checkable=false] 节点是否可选中\n * @param {boolean} [options.checkStrictly=false] 节点选中是否使用严格模式\n * @param {boolean} [options.disabled=false] 节点是否禁用\n * @param {boolean|function} [options.disableCheck=false] 节点被禁用的条件\n * @param {boolean} [options.draggable=false] 节点是否可拖动\n * @param {function} [options.load=null] 节点延迟加载函数\n * @param {boolean} [options.lazy=false] 节点是否使用延迟加载模式\n * @param {string} [options.valueMode=\"onlyLeaf\"] 节点选中取值模式\n * @param {function} [options.filter=null] 节点过滤函数\n * @param {function} [options.onLoad=null] 节点延迟加载完成时的回调函数\n * @param {function} [options.onReflow=null] 节点触发回流后的回调\n * @param {function} [options.onUpdate=null] 节点触发更新后的后调\n * @param {boolean} [options.allowFoldNodeOnFilter=false] 过滤时,是否允许折叠节点\n */\nexport class TreeStore {\n // 根节点集合\n public children: TreeNode[];\n\n // 所有节点集合\n public nodes: TreeNode[];\n\n // 所有节点映射\n public nodeMap: Map;\n\n // 节点 私有 ID 映射\n public privateMap: Map;\n\n // 配置选项\n public config: TypeTreeStoreOptions;\n\n // 活动节点集合\n public activedMap: TypeIdMap;\n\n // 数据被更新的节点集合\n public updatedMap: TypeUpdatedMap;\n\n // 选中节点集合\n public checkedMap: TypeIdMap;\n\n // 展开节点的集合\n public expandedMap: TypeIdMap;\n\n // 符合过滤条件的节点的集合\n public filterMap: TypeIdMap;\n\n // 存在过滤器标志\n public hasFilter: boolean;\n\n // 事件派发器\n public emitter: ReturnType;\n\n // 数据更新计时器\n private updateTick: Promise;\n\n // 识别是否需要重排\n private shouldReflow: boolean;\n\n // 树节点过滤器\n private prevFilter: TypeTreeFilter;\n\n public constructor(options: TypeTreeStoreOptions) {\n const config: TypeTreeStoreOptions = {\n prefix: 't',\n keys: {},\n expandAll: false,\n expandLevel: 0,\n expandMutex: false,\n expandParent: false,\n activable: false,\n activeMultiple: false,\n checkable: false,\n checkStrictly: false,\n disabled: false,\n disableCheck: false,\n draggable: false,\n load: null,\n lazy: false,\n valueMode: 'onlyLeaf',\n filter: null,\n // 每次搜索条件变更,重置展开状态,路径节点展开,显示命中节点\n // allowFoldNodeOnFilter 为 true 时,搜索条件不变的情况下,允许折叠路径节点\n // 默认状态,allowFoldNodeOnFilter 为 false 时,路径节点无法折叠\n allowFoldNodeOnFilter: false,\n onLoad: null,\n onReflow: null,\n onUpdate: null,\n ...options,\n };\n this.config = config;\n this.nodes = [];\n this.children = [];\n this.nodeMap = new Map();\n this.privateMap = new Map();\n this.activedMap = new Map();\n this.expandedMap = new Map();\n this.checkedMap = new Map();\n this.updatedMap = new Map();\n this.filterMap = new Map();\n this.prevFilter = null;\n // 这个计时器确保频繁的 update 事件被归纳为1次完整数据更新后的触发\n this.updateTick = null;\n // 在子节点增删改查时,将此属性设置为 true,来触发视图更新\n this.shouldReflow = false;\n // 这个标志会被大量用到\n this.hasFilter = isFunction(config.filter);\n this.emitter = mitt();\n }\n\n /**\n * 配置选项\n * @param {object} options tree 组件选项\n * @return void\n */\n public setConfig(options: TypeTreeStoreOptions) {\n const { config } = this;\n let hasChanged = false;\n (Object.keys(options) as (keyof TypeTreeStoreOptions)[]).forEach((key) => {\n const val = options[key];\n if (val !== config[key]) {\n hasChanged = true;\n // @ts-ignore\n // TODO: https://github.com/microsoft/TypeScript/issues/32693\n config[key] = val;\n }\n });\n this.hasFilter = isFunction(config.filter);\n if (hasChanged) {\n // 在 td-tree 的 render 方法中调用 setConfig\n // 这样减少了 watch 属性\n // 仅在属性变更后刷新状态\n // 这样可以避免触发渲染死循环\n this.refreshState();\n }\n }\n\n /**\n * 获取根节点列表\n * @return TreeNode[] 根节点对象数组\n */\n public getChildren(): TreeNode[] {\n return this.children;\n }\n\n /**\n * 获取指定节点对象\n * @param {string|number|TreeNode} item 获取节点对象的条件,可以是节点 value,也可以是节点本身\n * @return TreeNode 节点对象,如果判断树中没有符合条件的节点,返回 null\n */\n public getNode(item: TypeTargetNode): TreeNode {\n let node = null;\n if (isString(item) || isNumber(item)) {\n node = this.nodeMap.get(item);\n } else if (item instanceof TreeNode) {\n node = this.nodeMap.get(item.value);\n }\n if (!node) node = null;\n return node;\n }\n\n /**\n * 获取节点在总节点列表中的位置\n * @param {TreeNode} node 节点对象\n * @return number 节点在总节点列表中的位置序号\n */\n public getIndex(node: TreeNode): number {\n return this.nodes.indexOf(node);\n }\n\n /**\n * 获取指定节点的父节点\n * @param {string} value 节点值\n * @return TreeNode 节点对象\n */\n public getParent(value: TypeTargetNode): TreeNode {\n let parent = null;\n const node = this.getNode(value);\n if (node) {\n parent = node.getParent();\n }\n return parent;\n }\n\n /**\n * 获取指定节点的所有父节点\n * @param {string} value 节点值\n * @return TreeNode[] 父节点数组\n */\n public getParents(value: TypeTargetNode): TreeNode[] {\n const node = this.getNode(value);\n let parents: TreeNode[] = [];\n if (node) {\n parents = node.getParents();\n }\n return parents;\n }\n\n /**\n * 获取指定节点在其所在 children 中的位置\n * @param {string} value 节点值\n * @return number 节点在 children 中的位置序号\n */\n public getNodeIndex(value: TypeTargetNode): number {\n const node = this.getNode(value);\n let index = -1;\n if (node) {\n index = node.getIndex();\n }\n return index;\n }\n\n /**\n * 获取所有符合条件的节点,按回流排序后的顺序给出\n * 以这些字段作为示例:\n * - value: 节点值(ID)\n * - TreeNode: 节点实例\n * - level: 节点层级\n * - filter: 节点过滤函数\n * 支持下列使用方式\n * - getNodes() 获取所有节点\n * - getNodes(value) 获取节点值对应的目标节点下,包含自己在内的所有子节点\n * - getNodes(TreeNode) 获取目标节点下,包含自己在内的所有子节点\n * - getNodes(value, { level: 2 }) 获取目标节点下,层级在 2 以内的子节点\n * - getNodes(value, { filter: node => (!node.checked) }) 获取目标节点下,未选中的节点\n * - getNodes(value, { props: { actived: true } }) 获取目标节点下,已激活的节点\n * @param {string | TreeNode} [item] 节点值,节点对象\n * @param {object} [options] 节点过滤条件,可传递节点属性,过滤出属性一致的节点\n * @param {number} [options.level=Infinity] 节点层级\n * @param {function} [options.filter=null] 节点过滤条件函数\n * @param {object} [options.props] 节点属性对象,作为过滤条件\n * @return TreeNode[] 符合条件的节点数组\n */\n public getNodes(\n item?: TypeTargetNode,\n options?: TypeTreeFilterOptions,\n ): TreeNode[] {\n let nodes: TreeNode[] = [];\n let val: TreeNodeValue = '';\n if (isString(item) || isNumber(item)) {\n val = item;\n } else if (item instanceof TreeNode) {\n val = item.value;\n }\n if (!val && val !== 0) {\n nodes = this.nodes.slice(0);\n } else {\n const node = this.getNode(val);\n if (node) {\n nodes = node.walk();\n }\n }\n\n if (options) {\n const conf: TypeTreeFilterOptions = {\n filter: null,\n level: Infinity,\n ...options,\n };\n if (isNumber(conf.level) && conf.level !== Infinity) {\n nodes = nodes.filter((node) => node.level <= conf.level);\n }\n if (isFunction(conf.filter)) {\n nodes = nodes.filter((node) => {\n const nodeModel = node.getModel();\n return conf.filter(nodeModel);\n });\n }\n if (isPlainObject(conf.props)) {\n nodes = nodes.filter((node) => {\n const result = Object.keys(conf.props).every((key) => {\n // @ts-ignore\n // TODO: https://github.com/microsoft/TypeScript/issues/32693\n const propEqual = node[key] === conf.props[key];\n return propEqual;\n });\n return result;\n });\n }\n }\n return nodes;\n }\n\n /**\n * 添加新节点数据\n * @param {object[]} list 节点数据对象数组\n * @return void\n */\n public append(list: TypeTreeNodeData[]): void {\n list.forEach((item) => {\n const node = new TreeNode(this, item);\n this.children.push(node);\n });\n this.reflow();\n }\n\n /**\n * 清空当前树的数据,重新加载数据\n * @param {object[]} list 节点数据对象数组\n * @return void\n */\n public reload(list: TypeTreeNodeData[]): void {\n this.removeAll();\n this.append(list);\n }\n\n /**\n * 解析节点数据,适配多种节点类型\n * @param {string | TreeNode | object} para 树节点值,或者树节点,或者节点构造数据\n * @param {object | TreeNode} item 节点构造数据, 或者节点构造数据数组,或者树节点\n * @return spec 解析完成的数据结构\n * - {TreeNode} spec.node 目标树节点\n * - {object} spec.data 节点构造数据\n */\n private parseNodeData(\n para: TreeNodeValue | TreeNode | TypeTreeNodeData,\n item: TypeTreeNodeData | TreeNode,\n ) {\n let value: TreeNodeValue = '';\n let node = null;\n let data = null;\n\n if (isString(para) || isNumber(para)) {\n value = para;\n node = this.getNode(value);\n data = item;\n } else if (para instanceof TreeNode) {\n if (item) {\n node = para;\n data = item;\n } else {\n data = para;\n }\n } else {\n data = para;\n }\n const spec = {\n node,\n data,\n };\n return spec;\n }\n\n /**\n * 向指定节点追加节点或者数据\n * 以这些字段作为示例: item: 节点数据, TreeNode: 节点实例, value: 节点值(ID)\n * 支持下列使用方式\n * - appendNodes(item) 直接传递节点构造数据,新增节点\n * - appendNodes(TreeNode) 传递别的树的树节点,新增节点\n * - appendNodes(value, item) 以节点值查找指定节点,并新增节点构造数据\n * - appendNodes(value, TreeNode) 以节点值查找指定节点,并新增树节点\n * - appendNodes(TreeNode, item) 向指定节点新增节点构造数据\n * - appendNodes(TreeNode, TreeNode) 向指定节点新增树节点\n * @param {string | TreeNode | object} para 树节点值,或者树节点,或者节点构造数据\n * @param {object | TreeNode} [item] 节点构造数据, 或者节点构造数据数组,或者树节点\n * @return void\n */\n public appendNodes(\n para: TypeTargetNode | TypeTreeNodeData,\n item?: TypeTreeNodeData | TreeNode,\n ): void {\n const spec = this.parseNodeData(para, item);\n if (spec.data) {\n if (!spec.node) {\n // 在根节点插入\n if (spec.data instanceof TreeNode) {\n spec.data.appendTo(this);\n } else if (Array.isArray(spec.data)) {\n this.append(spec.data);\n } else {\n this.append([spec.data]);\n }\n } else {\n // 插入到目标节点之下\n if (spec.data instanceof TreeNode) {\n spec.data.appendTo(this, spec.node);\n } else if (isArray(spec.data)) {\n spec.node.append(spec.data);\n } else {\n spec.node.append([spec.data]);\n }\n spec.node.updateRelated();\n }\n }\n }\n\n /**\n * 在目标节点之前插入节点\n * @param {string | TreeNode} value 节点值,或者树节点\n * @param {object | TreeNode} item 节点构造数据, 或者树节点\n * @return void\n */\n public insertBefore(value: TypeTargetNode, item: TypeTreeItem): void {\n const node = this.getNode(value);\n if (node) {\n node.insertBefore(item);\n }\n }\n\n /**\n * 在目标节点之后插入节点\n * @param {string | TreeNode} value 节点值,或者树节点\n * @param {object | TreeNode} item 节点构造数据, 或者树节点\n * @return void\n */\n public insertAfter(value: TypeTargetNode, item: TypeTreeItem): void {\n const node = this.getNode(value);\n if (node) {\n node.insertAfter(item);\n }\n }\n\n /**\n * 更新树结构\n * - 清空 nodes 数组,然后遍历所有根节点重新插入 node\n * - 这个操作将会为树结构数据提供一个一纬数组索引\n * @return void\n */\n public refreshNodes(): void {\n const { children, nodes } = this;\n nodes.length = 0;\n children.forEach((node) => {\n const list = node.walk();\n Array.prototype.push.apply(nodes, list);\n });\n }\n\n /**\n * 标记节点重排\n * - 应该仅在树节点增删改查时调用\n * - 节点重排会在延时后触发 refreshNodes 方法的调用\n * @param {TreeNode} [node] 触发重排的树节点\n * @return void\n */\n public reflow(node?: TreeNode): void {\n this.shouldReflow = true;\n this.updated(node);\n }\n\n /**\n * 触发更新事件\n * - 节点属性变更时调用\n * - 统一延时后,处理需要在其他节点状态更新后再处理的逻辑,减少这类逻辑的重复调用开销\n * - 统一延时后,派发事件,通知树已更新完毕,以及回流完毕,触发 vue 视图渲染操作\n * @param {TreeNode} [node] 触发更新的树节点\n * @return void\n */\n public updated(node?: TreeNode): void {\n const { updatedMap } = this;\n if (node) {\n // 传入节点,则为指定节点的更新\n updatedMap.set(node[privateKey], 'changed');\n } else {\n // reflow 流程不传入节点,需要更新所有节点\n this.getNodes().forEach((itemNode) => {\n updatedMap.set(itemNode[privateKey], 'changed');\n });\n }\n\n if (this.updateTick) return;\n this.updateTick = nextTick(() => {\n this.updateTick = null;\n\n // 检查节点是否需要回流,重排数组\n if (this.shouldReflow) {\n this.refreshNodes();\n this.emit('reflow');\n }\n\n // 检查节点是否有被过滤,锁定路径节点\n // 在此之前要遍历节点生成一个经过排序的节点数组\n // 以便于优化锁定检查算法\n this.lockFilterPathNodes();\n\n // stateId 用于单个节点状态监控\n const stateId = `t${new Date().getTime()}`;\n const updatedList = Array.from(updatedMap.keys());\n const updatedNodes = updatedList.map((nodePrivateKey) => {\n updatedMap.set(nodePrivateKey, stateId);\n return this.privateMap.get(nodePrivateKey);\n });\n\n // 统计需要更新状态的节点,派发更新事件\n this.emit('update', {\n nodes: updatedNodes,\n map: updatedMap,\n });\n\n // 每次回流检查完毕,还原检查状态\n this.shouldReflow = false;\n updatedMap.clear();\n });\n }\n\n /**\n * 获取激活节点集合\n * @param {Map} [map] 预设激活节点 map, 用于受控操作时预先获取结果而不直接操作节点状态\n * @return string[] 激活节点值数组\n */\n public getActived(map?: TypeIdMap): TreeNodeValue[] {\n const activedMap = map || this.activedMap;\n return Array.from(activedMap.keys());\n }\n\n /**\n * 获取指定范围的激活节点\n * - 范围是目标节点在内所有子节点\n * @param {string | TreeNode} [item] 目标节点值,或者目标节点本身\n * @return TreeNode[] 激活节点数组\n */\n public getActivedNodes(item?: TypeTargetNode): TreeNode[] {\n let nodes = this.getNodes(item);\n nodes = nodes.filter((node) => node.isActived());\n return nodes;\n }\n\n /**\n * 替换激活态\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public replaceActived(list: TreeNodeValue[]): void {\n this.resetActived();\n this.setActived(list);\n }\n\n /**\n * 设置激活态\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public setActived(actived: TreeNodeValue[]): void {\n const { activeMultiple } = this.config;\n const list = actived.slice(0);\n if (!activeMultiple) {\n list.length = 1;\n }\n list.forEach((val) => {\n this.activedMap.set(val, true);\n const node = this.getNode(val);\n if (node) {\n node.update();\n }\n });\n }\n\n /**\n * 清空所有节点的激活状态\n * @return void\n */\n public resetActived(): void {\n const actived = this.getActived();\n this.activedMap.clear();\n const relatedNodes = this.getRelatedNodes(actived);\n relatedNodes.forEach((node) => {\n node.update();\n });\n }\n\n /**\n * 获取展开节点集合\n * @param {Map} [map] 预设展开节点 map, 用于受控操作时预先获取结果而不直接操作节点状态\n * @return void\n */\n public getExpanded(map?: TypeIdMap): TreeNodeValue[] {\n const expandedMap = map || this.expandedMap;\n return Array.from(expandedMap.keys());\n }\n\n /**\n * 替换展开节点\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public replaceExpanded(list: TreeNodeValue[]): void {\n const expanded = this.getExpanded();\n const added = difference(list, expanded);\n const removed = difference(expanded, list);\n this.setExpandedDirectly(removed, false);\n this.updateExpanded(removed);\n this.setExpanded(added);\n }\n\n /**\n * 批量设置展开节点\n * - 注意这个状态设置操作会忽略互斥属性\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public setExpanded(list: TreeNodeValue[]): void {\n this.setExpandedDirectly(list);\n this.updateExpanded(list);\n }\n\n /**\n * 直接设置节点展开状态\n * - 注意这个状态设置操作会忽略互斥属性\n * @param {string[]} list 目标节点值数组\n * @param {boolean} [expanded=true] 展开状态\n * @return void\n */\n public setExpandedDirectly(list: TreeNodeValue[], expanded = true): void {\n list.forEach((val) => {\n if (expanded) {\n this.expandedMap.set(val, true);\n } else {\n this.expandedMap.delete(val);\n }\n const node = this.getNode(val);\n if (node) {\n node.afterExpanded();\n }\n });\n }\n\n /**\n * 清除所有节点的展开状态\n * @return void\n */\n public resetExpanded(): void {\n const expanded = this.getExpanded();\n this.expandedMap.clear();\n this.updateExpanded(expanded);\n }\n\n /**\n * 更新展开节点相关节点的状态\n * - 节点展开状态变更后,上下游节点可能存在状态变更,统一纳入待更新队列\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public updateExpanded(list: TreeNodeValue[]): void {\n const relatedNodes = this.getRelatedNodes(list, {\n withParents: false,\n });\n relatedNodes.forEach((node) => {\n node.update();\n });\n }\n\n /**\n * 获取选中态节点值数组\n * @param {Map} [map] 预设选中节点 map, 用于受控操作时预先获取结果而不直接操作节点状态\n * @return string[] 选中态节点 value 数组\n */\n public getChecked(map?: TypeIdMap): TreeNodeValue[] {\n const { nodeMap, config } = this;\n const { valueMode, checkStrictly } = config;\n const list: TreeNodeValue[] = [];\n const checkedMap = map || this.checkedMap;\n nodeMap.forEach((node) => {\n // 判断未选中,直接忽略\n if (!node.isChecked(checkedMap)) return;\n if (valueMode === 'parentFirst' && !checkStrictly) {\n // valueMode 为 parentFirst\n // 仅取值父节点\n if (!node.parent || !node.parent.isChecked(checkedMap)) {\n list.push(node.value);\n }\n } else if (valueMode === 'onlyLeaf' && !checkStrictly) {\n // valueMode 为 onlyLeaf\n // 仅取值叶子节点\n if (node.isLeaf()) {\n list.push(node.value);\n }\n } else {\n // valueMode 为 all\n // 取值所有选中节点\n list.push(node.value);\n }\n });\n return list;\n }\n\n /**\n * 获取指定节点下的选中节点\n * @param {string | TreeNode} [item] 目标节点值,或者目标节点\n * @return TreeNode[] 选中节点数组\n */\n public getCheckedNodes(item?: TypeTargetNode): TreeNode[] {\n let nodes = this.getNodes(item);\n nodes = nodes.filter((node) => node.isChecked());\n return nodes;\n }\n\n /**\n * 替换选中态列表\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public replaceChecked(list: TreeNodeValue[]): void {\n this.resetChecked();\n this.setChecked(list);\n }\n\n /**\n * 批量设置选中态\n * @param {string[]} list 目标节点值数组\n * @return void\n */\n public setChecked(list: TreeNodeValue[]): void {\n const { checkStrictly, checkable } = this.config;\n if (!checkable) return;\n list.forEach((val: TreeNodeValue) => {\n const node = this.getNode(val);\n if (!node) return;\n if (checkStrictly) {\n this.checkedMap.set(val, true);\n node.updateChecked();\n } else {\n const childrenNodes = node.walk();\n childrenNodes.forEach((childNode) => {\n this.checkedMap.set(childNode.value, true);\n });\n }\n });\n if (!checkStrictly) {\n const checkedValues = this.getChecked();\n const relatedNodes = this.getRelatedNodes(checkedValues);\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n }\n\n /**\n * 清除所有节点选中态\n * @return void\n */\n public resetChecked(): void {\n const checked = this.getChecked();\n const relatedNodes = this.getRelatedNodes(checked);\n this.checkedMap.clear();\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n\n /**\n * 更新所有树节点状态,但不更新选中态\n * 用于不影响选中态时候的更新,减少递归循环造成的时间消耗\n * @return void\n */\n public refreshState(): void {\n const { nodeMap } = this;\n // 树在初始化未回流时,nodes 数组为空\n // 所以遍历 nodeMap 确保初始化阶段 refreshState 方法也可以触发全部节点的更新\n nodeMap.forEach((node) => {\n node.update();\n });\n }\n\n /**\n * 更新全部节点状态\n * @return void\n */\n public updateAll(): void {\n const { nodeMap } = this;\n nodeMap.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n }\n\n /**\n * 移除指定节点\n * @param {string} value 目标节点值\n * @return void\n */\n public remove(value?: TypeTargetNode): void {\n const node = this.getNode(value);\n if (node) {\n node.remove();\n }\n }\n\n /**\n * 移除所有节点\n * @return void\n */\n public removeAll(): void {\n this.expandedMap.clear();\n this.checkedMap.clear();\n this.activedMap.clear();\n this.filterMap.clear();\n this.nodeMap.clear();\n this.privateMap.clear();\n this.updatedMap.clear();\n this.nodes = [];\n this.children = [];\n this.reflow();\n }\n\n /**\n * 获取节点状态变化可能影响的关联节点\n * - 用于实现最小遍历集合\n * @param {string[]} list 目标节点值数组\n * @param {object} [options] 操作选项\n * @oaran {boolean} [options.reverse=false] 倒序排列遍历节点\n * @param {boolean} [options.withParents=true] 包含所有父节点\n * @return TreeNode[] 关联节点数组\n */\n public getRelatedNodes(\n list: TreeNodeValue[],\n options?: TypeRelatedNodesOptions,\n ): TreeNode[] {\n const conf = {\n // 默认倒序排列,从底层节点开始遍历\n reverse: false,\n // 默认遍历父节点\n withParents: true,\n ...options,\n };\n const map = new Map();\n list.forEach((value) => {\n if (map.get(value)) return;\n const node = this.getNode(value);\n if (node) {\n const parents = node.getParents().reverse();\n const children = node.walk();\n let related = [];\n if (conf.withParents) {\n related = parents.concat(children);\n } else {\n related = children;\n }\n // 用 map 实现节点去重\n related.forEach((relatedNode) => {\n map.set(relatedNode.value, relatedNode);\n });\n }\n });\n let relatedNodes = Array.from(map.values());\n if (conf.reverse) {\n relatedNodes = relatedNodes.reverse();\n }\n return relatedNodes;\n }\n\n /**\n * 触发绑定的事件\n * - store.emitter 可以绑定事件回调,用于多个组件共同监听事件\n * @param {string} name 事件名称\n * @param {Event} [state] 事件对象\n * @param {TreeNode} [state.node] 事件关联节点\n * @param {TreeNode[]} [state.nodes] 事件关联节点数组\n * @param {Map} [state.map] 事件关联节点映射\n * @param {object[]} [state.data] 事件关联节点数据\n * @return void\n */\n public emit(name: string, state?: TypeTreeEventState): void {\n const { config, emitter } = this;\n const methodName = camelCase(`on-${name}`);\n const method = config[methodName as keyof TypeTreeStoreOptions];\n if (isFunction(method)) {\n // @ts-ignore\n // TODO: 待移除\n method(state);\n }\n emitter.emit(name, state);\n }\n\n /**\n * 锁定过滤节点的路径节点\n * - 使得路径节点自动展开\n * @return void\n */\n private lockFilterPathNodes(): void {\n const { config } = this;\n const allNodes = this.getNodes();\n\n if (this.prevFilter) {\n // 过滤条件清空时,也需要清理锁定节点\n // 所在判断过滤条件是否存在之前,就要调用这里的清理逻辑\n // 不想在每次渲染时都做这个清空判断\n // 所以判断一下之前是否有进行过滤\n allNodes.forEach((node: TreeNode) => {\n // 先清空所有锁定状态\n if (node.vmIsLocked) {\n // lock 方法内部有状态计算\n // 所以要减少 lock 方法调用次数\n node.lock(false);\n }\n });\n }\n\n const currentFilter = config.filter;\n // 当前没有过滤器\n // 则无需处理锁定节点\n if (!currentFilter || !isFunction(currentFilter)) return;\n this.prevFilter = config.filter;\n\n // 全部节点要经过排序,才能使用这个遍历\n // 比起每个过滤节点调用 getParents 方法检查父节点状态\n // 复杂度 O(N*log(N)) => O(N)\n allNodes.reverse().forEach((node: TreeNode) => {\n // 数组颠倒后,等于是从每个节点的子节点开始判断\n // 想象为从展开树的最底部向上遍历\n const parent = node.getParent();\n if (!parent) return;\n if (node.vmIsRest || node.vmIsLocked) {\n // 当前节点被过滤条件命中\n // 或者当前节点被锁定\n // 则需要判定父节点状态\n if (!parent.vmIsLocked) {\n // 父节点已被锁定,则忽略动作\n // lock 方法有内置状态判断\n parent.lock(true);\n }\n }\n });\n }\n}\n\nexport default TreeStore;\n","export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n","import { Ref, reactive, computed, toRefs, watch, nextTick } from 'vue';\nimport { isEqual } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isString } from 'lodash-es';\n\nimport TreeStore from '@tdesign/common-js/tree/tree-store';\nimport { useDisabled } from '../../hooks/useDisabled';\nimport useVModel from '../../hooks/useVModel';\nimport useDefaultValue from '../../hooks/useDefaultValue';\nimport {\n getTreeValue,\n getCascaderValue,\n isEmptyValues,\n isValueInvalid,\n treeNodesEffect,\n treeStoreExpendEffect,\n} from '../utils';\n\nimport {\n TreeNode,\n TreeNodeValue,\n TdCascaderProps,\n TreeNodeModel,\n CascaderChangeSource,\n CascaderValue,\n TreeOptionData,\n} from '../types';\n\n// 全局状态\nexport const useContext = (\n props: TdCascaderProps,\n setInnerValue: TdCascaderProps['onChange'],\n innerPopupVisible: Ref,\n setPopupVisible: TdCascaderProps['onPopupVisibleChange'],\n) => {\n const statusContext = reactive({\n treeStore: null,\n inputVal: null,\n scopeVal: undefined,\n treeNodes: [],\n expend: [],\n });\n\n return {\n statusContext,\n cascaderContext: computed(() => {\n const {\n size,\n checkStrictly,\n lazy,\n multiple,\n filterable,\n clearable,\n checkProps,\n max,\n disabled,\n showAllLevels,\n minCollapsedNum,\n valueType,\n modelValue,\n } = props;\n return {\n value: statusContext.scopeVal,\n size,\n checkStrictly,\n lazy,\n multiple,\n filterable,\n clearable,\n checkProps,\n max,\n disabled,\n showAllLevels,\n minCollapsedNum,\n valueType,\n visible: innerPopupVisible.value,\n ...statusContext,\n setTreeNodes: (nodes: TreeNode[]) => {\n statusContext.treeNodes = nodes;\n },\n setValue: (val: CascaderValue, source: CascaderChangeSource, node?: TreeNodeModel) => {\n if (isEqual(val, modelValue)) return;\n setInnerValue(val, { source, node });\n },\n setVisible: setPopupVisible,\n setInputVal: (val: string) => {\n statusContext.inputVal = val;\n },\n setExpend: (val: TreeNodeValue[]) => {\n statusContext.expend = val;\n },\n };\n }),\n };\n};\n\n// 内聚组件核心的副作用与状态处理\nexport const useCascaderContext = (props: TdCascaderProps) => {\n const disabled = useDisabled();\n const { value, modelValue, popupVisible } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [innerPopupVisible, setPopupVisible] = useDefaultValue(\n popupVisible,\n false,\n props.onPopupVisibleChange,\n 'popupVisible',\n );\n const { cascaderContext, statusContext } = useContext(props, setInnerValue, innerPopupVisible, setPopupVisible);\n\n const isFilterable = computed(() => {\n return Boolean(props.filterable || isFunction(props.filter));\n });\n\n // 更新treeNodes\n const updatedTreeNodes = () => {\n const { inputVal, treeStore, setTreeNodes } = cascaderContext.value;\n treeNodesEffect(inputVal, treeStore, setTreeNodes, props.filter);\n };\n\n // 更新节点展开状态\n const updateExpend = () => {\n const { value, treeStore } = cascaderContext.value;\n const { expend } = statusContext;\n treeStoreExpendEffect(treeStore, value, expend);\n treeStore.replaceChecked(getTreeValue(value));\n };\n\n watch(\n () => props.options,\n () => {\n const { options, keys = {}, checkStrictly, lazy, load, valueMode } = props;\n const { treeStore } = statusContext;\n\n if (!options.length && !treeStore) return;\n\n if (!treeStore) {\n const store = new TreeStore({\n keys: {\n ...keys,\n children: isString(keys.children) ? keys.children : 'children',\n },\n checkable: true,\n expandMutex: true,\n expandParent: true,\n lazy,\n load,\n valueMode,\n checkStrictly,\n onLoad: () => {\n nextTick(() => {\n store.refreshNodes();\n updatedTreeNodes();\n });\n },\n });\n store.append(options);\n statusContext.treeStore = store;\n } else {\n treeStore.reload(options);\n treeStore.refreshNodes();\n }\n updateExpend();\n updatedTreeNodes();\n },\n { immediate: true, deep: true },\n );\n\n // tree插件配置变化\n watch(\n () => {\n const { checkStrictly, lazy, load, valueMode } = props;\n return JSON.stringify({\n valueMode,\n checkStrictly,\n lazy,\n load,\n });\n },\n () => {\n const { treeStore } = statusContext;\n if (!treeStore) return;\n const { checkStrictly, lazy, load, valueMode } = props;\n const treeProps = {\n checkStrictly,\n disabled,\n load,\n lazy,\n valueMode,\n };\n treeStore.setConfig(treeProps);\n },\n { immediate: true },\n );\n\n watch(\n innerValue,\n () => {\n // 初始化判断 value 逻辑\n const { setValue, multiple, valueType } = cascaderContext.value;\n\n if (isValueInvalid(innerValue.value, cascaderContext.value)) {\n setValue(multiple ? [] : '', 'invalid-value');\n } else {\n statusContext.scopeVal = multiple ? [] : '';\n }\n\n if (!isEmptyValues(innerValue)) {\n statusContext.scopeVal = getCascaderValue(innerValue.value, valueType, multiple);\n }\n\n if (!statusContext.treeStore) return;\n updateExpend();\n updatedTreeNodes();\n },\n { immediate: true },\n );\n\n watch(\n () => innerPopupVisible.value && isFilterable.value,\n (visible) => {\n const { setInputVal } = cascaderContext.value;\n if (visible) {\n setInputVal('');\n }\n },\n );\n\n watch(\n () => statusContext.inputVal,\n () => {\n updatedTreeNodes();\n },\n );\n\n const getCascaderItems = (arrValue: CascaderValue[]) => {\n const options: TreeOptionData[] = [];\n arrValue.forEach((value) => {\n const nodes = statusContext.treeStore?.getNodes(value);\n nodes && nodes[0] && options.push(nodes[0].data);\n });\n return options;\n };\n\n return {\n cascaderContext,\n isFilterable,\n innerValue,\n getCascaderItems,\n };\n};\n","import { defineComponent, computed } from 'vue';\nimport { omit } from 'lodash-es';\nimport Panel from './components/Panel';\nimport SelectInput from '../select-input';\nimport FakeArrow from '../common-components/fake-arrow';\nimport props from './props';\n\nimport { CascaderValue, TdSelectInputProps, TdCascaderProps } from './types';\nimport {\n closeIconClickEffect,\n handleRemoveTagEffect,\n getFakeArrowIconClass,\n getPanels,\n getSingleContent,\n getMultipleContent,\n} from './utils';\n\nimport { useConfig, usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useCascaderContext } from './hooks';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\n\nexport default defineComponent({\n name: 'TCascader',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('cascader');\n const classPrefix = usePrefixClass();\n const { STATUS } = useCommonClassName();\n const overlayClassName = usePrefixClass('cascader__popup');\n const { globalConfig } = useConfig('cascader');\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const renderTNodeJSX = useTNodeJSX();\n\n // 拿到全局状态的上下文\n const { cascaderContext, innerValue, isFilterable, getCascaderItems } = useCascaderContext(props);\n\n const displayValue = computed(() =>\n props.multiple ? getMultipleContent(cascaderContext.value) : getSingleContent(cascaderContext.value),\n );\n\n const panels = computed(() => getPanels(cascaderContext.value.treeNodes));\n\n const inputPlaceholder = computed(\n () =>\n (cascaderContext.value.visible && !props.multiple && getSingleContent(cascaderContext.value)) ||\n (props.placeholder ?? globalConfig.value.placeholder),\n );\n\n const renderSuffixIcon = () => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n const { visible, disabled } = cascaderContext.value;\n return (\n \n );\n };\n\n const valueDisplayParams = computed(() => {\n const arrayValue = innerValue.value instanceof Array ? innerValue.value : [innerValue.value];\n const displayValue =\n props.multiple && props.minCollapsedNum ? arrayValue.slice(0, props.minCollapsedNum) : innerValue.value;\n const options = getCascaderItems(arrayValue);\n return {\n value: innerValue.value,\n selectedOptions: options,\n onClose: (index: number) => {\n handleRemoveTagEffect(cascaderContext.value, index, props.onRemove);\n },\n displayValue,\n };\n });\n\n const renderValueDisplay = () => {\n return renderTNodeJSX('valueDisplay', {\n params: valueDisplayParams.value,\n });\n };\n\n const renderLabel = () => {\n const label = renderTNodeJSX('label');\n if (props.multiple) return label;\n if (!label) return null;\n return
    {label}
    ;\n };\n\n const cascaderClassNames = computed(() => [\n COMPONENT_NAME.value,\n props.multiple ? `${COMPONENT_NAME.value}--multiple` : `${COMPONENT_NAME.value}--single`,\n ]);\n\n return () => {\n const { setVisible, visible, inputVal, setInputVal } = cascaderContext.value;\n\n return (\n renderSuffixIcon()}\n popupProps={{\n ...(props.popupProps as TdCascaderProps['popupProps']),\n overlayInnerStyle: panels.value.length && !props.loading ? { width: 'auto' } : '',\n overlayClassName: [\n overlayClassName.value,\n (props.popupProps as TdCascaderProps['popupProps'])?.overlayClassName,\n ],\n }}\n inputProps={{ size: props.size, ...(props.inputProps as TdCascaderProps['inputProps']) }}\n tagInputProps={{\n size: props.size,\n ...(props.tagInputProps as TdCascaderProps['tagInputProps']),\n }}\n tagProps={{ ...(props.tagProps as TdCascaderProps['tagProps']) }}\n onInputChange={(value, ctx) => {\n if (!isFilterable.value) return;\n setInputVal(`${value}`);\n (props?.selectInputProps as TdSelectInputProps)?.onInputChange?.(value, ctx);\n }}\n onTagChange={(val: CascaderValue, ctx) => {\n // 按 enter 键不处理\n if (ctx.trigger === 'enter') return;\n handleRemoveTagEffect(cascaderContext.value, ctx.index, props.onRemove);\n // @ts-ignore TODO: fix bug\n (props?.selectInputProps as TdSelectInputProps)?.onTagChange?.(val, ctx);\n }}\n onPopupVisibleChange={(val: boolean, context) => {\n if (isDisabled.value) return;\n setVisible(val, context);\n (props?.selectInputProps as TdSelectInputProps)?.onPopupVisibleChange?.(val, context);\n }}\n onBlur={(val, context) => {\n props.onBlur?.({\n value: cascaderContext.value.value,\n inputValue: context.inputValue || '',\n e: context.e as FocusEvent,\n });\n (props?.selectInputProps as TdSelectInputProps)?.onBlur?.(val, context);\n }}\n onFocus={(val, context) => {\n props.onFocus?.({\n value: cascaderContext.value.value,\n e: context.e,\n });\n (props?.selectInputProps as TdSelectInputProps)?.onFocus?.(val, context);\n }}\n onClear={(context: { e: MouseEvent }) => {\n closeIconClickEffect(cascaderContext.value);\n (props?.selectInputProps as TdSelectInputProps)?.onClear?.(context);\n }}\n v-slots={{\n label: slots.label,\n suffix: slots.suffix,\n prefixIcon: slots.prefixIcon,\n panel: () => (\n <>\n {renderTNodeJSX('panelTopContent')}\n \n {renderTNodeJSX('panelBottomContent')}\n \n ),\n collapsedItems: slots.collapsedItems,\n }}\n {...omit(props.selectInputProps as TdSelectInputProps, [\n 'onTagChange',\n 'onInputChange',\n 'onPopupVisibleChange',\n 'onBlur',\n 'onFocus',\n 'onClear',\n ])}\n />\n );\n };\n },\n});\n","import { defineComponent } from 'vue';\nimport Panel from './components/Panel';\nimport props from './props';\n\nimport { useCascaderContext } from './hooks';\n\nexport default defineComponent({\n name: 'TCascaderPanel',\n props,\n setup(props, { slots }) {\n const { cascaderContext } = useCascaderContext(props);\n\n return () => (\n \n );\n },\n});\n","import _Cascader from './cascader';\nimport _CascaderPanel from './cascader-panel';\nimport withInstall from '../utils/withInstall';\nimport { TdCascaderProps } from './type';\nimport { TreeOptionData } from '../common';\n\nimport './style';\n\nexport * from './type';\n\nexport type CascaderProps = TdCascaderProps;\nexport type CascaderPanelProps = TdCascaderProps;\n\nexport const Cascader = withInstall(_Cascader);\nexport const CascaderPanel = withInstall(_CascaderPanel);\n\nexport default Cascader;\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeeksInYear=n()}(this,(function(){\"use strict\";return function(e,n){n.prototype.isoWeeksInYear=function(){var e=this.isLeapYear(),n=this.endOf(\"y\").day();return 4===n||e&&5===n?53:52}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isLeapYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0}}}));","import { isString } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';\nimport isLeapYear from 'dayjs/plugin/isLeapYear';\nimport log from '../log';\n\ntype DateValue = string | number | Date;\n\ndayjs.extend(isoWeeksInYear);\ndayjs.extend(isLeapYear);\n\nexport const TIME_FORMAT = 'HH:mm:ss';\n\n// extract time format from a completed date format 'YYYY-MM-DD HH:mm' -> 'HH:mm'\nexport function extractTimeFormat(dateFormat: string = '') {\n return dateFormat\n .replace(/\\W?Y{2,4}|\\W?D{1,2}|\\W?Do|\\W?d{1,4}|\\W?M{1,4}|\\W?y{2,4}/g, '')\n .trim();\n}\n\n// 统一解析日期格式字符串成 Dayjs 对象\nexport function parseToDayjs(\n value: string | Date | number,\n format: string,\n timeOfDay?: string,\n dayjsLocale?: string,\n) {\n if (value === '' || value === null) return dayjs();\n\n let dateText = value;\n // format week\n if (/[w|W]/g.test(format)) {\n if (!isString(dateText)) {\n dateText = dayjs(dateText).locale(dayjsLocale || 'zh-cn').format(format) as string;\n }\n\n const yearStr = dateText.split(/[-/.\\s]/)[0];\n const weekStr = dateText.split(/[-/.\\s]/)[1];\n const weekFormatStr = format.split(/[-/.\\s]/)[1];\n\n let firstWeek = dayjs(yearStr, 'YYYY').locale(dayjsLocale || 'zh-cn').startOf('year');\n // 第一周ISO定义: 本年度第一个星期四所在的星期\n // 如果第一年第一天在星期四后, 直接跳到下一周, 下一周必定是第一周\n // 否则本周即为第一周\n if (firstWeek.day() > 4 || firstWeek.day() === 0) firstWeek = firstWeek.add(1, 'week');\n\n // 一年有52或者53周, 引入IsoWeeksInYear辅助查询\n const weekCounts = dayjs(yearStr, 'YYYY').locale(dayjsLocale || 'zh-cn').isoWeeksInYear();\n for (let i = 0; i <= weekCounts; i += 1) {\n let nextWeek = firstWeek.add(i, 'week');\n // 重置为周的第一天\n if (timeOfDay === 'start') nextWeek = nextWeek.subtract(5, 'day');\n if (nextWeek.format(weekFormatStr) === weekStr) {\n return nextWeek;\n }\n }\n }\n\n // format quarter\n if (/Q/g.test(format)) {\n if (!isString(dateText)) {\n dateText = dayjs(dateText).locale(dayjsLocale || 'zh-cn').format(format) as string;\n }\n\n const yearStr = dateText.split(/[-/.\\s]/)[0];\n const quarterStr = dateText.split(/[-/.\\s]/)[1];\n const quarterFormatStr = format.split(/[-/.\\s]/)[1];\n const firstQuarter = dayjs(yearStr, 'YYYY').startOf('year');\n for (let i = 0; i < 4; i += 1) {\n const nextQuarter = firstQuarter.add(i, 'quarter');\n if (nextQuarter.format(quarterFormatStr) === quarterStr) {\n return nextQuarter;\n }\n }\n }\n\n // 兼容数据格式不标准场景 YYYY-MM-D\n const result = dayjs(dateText, format).isValid()\n ? dayjs(dateText, format)\n : dayjs(dateText);\n\n // 兼容数据异常情况\n if (!result.isValid()) {\n log.error('DatePicker', `Check whether the format、value format is valid.\\n value: '${value}', format: '${format}'`);\n return dayjs();\n }\n\n return result;\n}\n\n// 格式化 range\nfunction formatRange({\n newDate,\n format,\n dayjsLocale,\n targetFormat,\n autoSwap,\n}: {\n newDate: any;\n format: string;\n dayjsLocale?: string;\n targetFormat?: string;\n autoSwap?: boolean;\n}) {\n if (!newDate || !Array.isArray(newDate)) return [];\n\n let dayjsDateList = newDate.map((d) => d && parseToDayjs(d, format).locale(dayjsLocale));\n\n // 保证后面的时间大于前面的时间\n if (\n autoSwap\n && dayjsDateList[0]\n && dayjsDateList[1]\n && dayjsDateList[0].toDate().getTime() > dayjsDateList[1].toDate().getTime()\n ) {\n // 数据兼容规则\n dayjsDateList = [dayjsDateList[1], dayjsDateList[0]];\n }\n\n // 格式化失败提示\n if (dayjsDateList.some((r) => r && !r.isValid())) {\n log.error(\n 'DatePicker',\n `Check whether the value、format、valueType format is valid.\\nformat: '${format}' value: '${newDate}' valueType: '${targetFormat}'`\n );\n return [];\n }\n\n // valueType = 'time-stamp' 返回时间戳\n if (targetFormat === 'time-stamp') return dayjsDateList.map((da) => da && da.toDate().getTime());\n // valueType = 'Date' 返回时间对象\n if (targetFormat === 'Date') return dayjsDateList.map((da) => da && da.toDate());\n\n return dayjsDateList.map((da) => da && da.format(targetFormat || format));\n}\n\n// 格式化单选\nfunction formatSingle({\n newDate,\n format,\n targetFormat,\n dayjsLocale,\n}: {\n newDate: any;\n format: string;\n targetFormat?: string;\n dayjsLocale?: string;\n}) {\n if (!newDate) return '';\n\n const dayJsDate = parseToDayjs(newDate, format).locale(dayjsLocale);\n\n // 格式化失败提示\n if (!dayJsDate.isValid()) {\n log.error(\n 'DatePicker',\n `Check whether the format、value format is valid.\\nformat: '${format}' value: '${newDate}'`\n );\n return '';\n }\n\n // valueType = 'time-stamp' 返回时间戳\n if (targetFormat === 'time-stamp') return dayJsDate.toDate().getTime();\n // valueType = 'Date' 返回时间对象\n if (targetFormat === 'Date') return dayJsDate.toDate();\n\n return dayJsDate.format(targetFormat || format);\n}\n\n// 检测日期是否合法\nexport function isValidDate(value: DateValue | DateValue[], format: string) {\n if (Array.isArray(value)) {\n return value.every((v) => {\n if (v === '') return true;\n return dayjs(v, format).isValid() || dayjs(v).isValid();\n });\n }\n\n if (value === '') return true;\n return dayjs(value, format).isValid() || dayjs(value).isValid();\n}\n\n// 日期格式化\nexport function formatDate(\n newDate: DateValue | DateValue[],\n {\n format,\n targetFormat,\n dayjsLocale = 'zh-cn',\n autoSwap,\n }: { format: string; dayjsLocale?: string, targetFormat?: string; autoSwap?: boolean }\n) {\n let result;\n\n if (Array.isArray(newDate)) {\n result = formatRange({ newDate, format, dayjsLocale, targetFormat, autoSwap });\n } else {\n result = formatSingle({ newDate, format, dayjsLocale, targetFormat });\n }\n\n return result;\n}\n\n// 对齐格式化时间\nexport function calcFormatTime(time: string, timeFormat: string) {\n if (time && timeFormat) {\n const timeArr = time.split(':');\n const timeFormatArr = timeFormat.split(':');\n return timeArr.slice(0, timeFormatArr.length).join(':');\n }\n return time;\n}\n\n// TODO 细化 value 类型\n// 格式化时间\nexport function formatTime(value: any, format: string, timeFormat: string, defaultTime: string | string[]) {\n // 无论参数是不是数组,统一转成数组处理\n let result = Array.isArray(value) ? value : [value];\n // eslint-disable-next-line no-param-reassign\n defaultTime = Array.isArray(defaultTime) ? defaultTime : [defaultTime, defaultTime];\n result = result.map((v, i) => {\n // string格式需要用format去解析,其他诸如Date、time-stamp格式则直接dayjs\n if (v) return dayjs(v, typeof v === 'string' ? format : undefined).format(timeFormat);\n return calcFormatTime(defaultTime[i], timeFormat);\n });\n result = result.length ? result : defaultTime.map((t) => calcFormatTime(t, timeFormat));\n // value是数组就输出数组,不是数组就输出第一个即可\n return Array.isArray(value) ? result : result?.[0];\n}\n\n// 根据不同 mode 给出格式化默认值\nexport function getDefaultFormat({\n mode = 'date',\n format,\n valueType,\n enableTimePicker,\n}: {\n mode?: string;\n format?: string;\n valueType?: string;\n enableTimePicker?: boolean;\n}) {\n if (mode === 'year') {\n return {\n format: format || 'YYYY',\n valueType: valueType || format || 'YYYY',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'month') {\n return {\n format: format || 'YYYY-MM',\n valueType: valueType || format || 'YYYY-MM',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'quarter') {\n return {\n format: format || 'YYYY-[Q]Q',\n valueType: valueType || format || 'YYYY-[Q]Q',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'week') {\n return {\n format: format || 'gggg-wo',\n valueType: valueType || format || 'gggg-wo',\n timeFormat: TIME_FORMAT,\n };\n }\n if (mode === 'date') {\n return {\n format: format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`,\n valueType: valueType || format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`,\n timeFormat: extractTimeFormat(format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`) || TIME_FORMAT,\n };\n }\n log.error('DatePicker', `Invalid mode: ${mode}`);\n return {};\n}\n\n// 初始化面板年份月份\nexport function initYearMonthTime({\n value,\n mode = 'date',\n format,\n timeFormat = 'HH:mm:ss',\n enableTimePicker,\n}: {\n value: Array;\n mode: string;\n format: string;\n timeFormat?: string;\n enableTimePicker?: boolean;\n}) {\n const defaultYearMonthTime = {\n year: [dayjs().year(), dayjs().year()],\n month: [dayjs().month(), dayjs().month()],\n time: [dayjs().format(timeFormat), dayjs().format(timeFormat)],\n };\n if (mode === 'year') {\n defaultYearMonthTime.year[1] += 10;\n } else if (mode === 'month' || mode === 'quarter') {\n defaultYearMonthTime.year[1] += 1;\n } else if ((mode === 'date' || mode === 'week') && !enableTimePicker) {\n // 切换至下一年\n if (defaultYearMonthTime.month[0] === 11) {\n defaultYearMonthTime.year[1] += 1;\n defaultYearMonthTime.month[1] = 0;\n } else {\n defaultYearMonthTime.month[1] += 1;\n }\n }\n\n if (!value || !Array.isArray(value) || !value.length) {\n return defaultYearMonthTime;\n }\n\n return {\n year: value.map((v) => parseToDayjs(v, format).year()),\n month: value.map((v) => parseToDayjs(v, format).month()),\n time: value.map((v) => parseToDayjs(v, format).format(timeFormat)),\n };\n}\n","import { toRefs, watchEffect, ref, computed } from 'vue';\nimport {\n formatDate,\n formatTime,\n isValidDate,\n getDefaultFormat,\n parseToDayjs,\n extractTimeFormat,\n} from '@tdesign/common-js/date-picker/format';\nimport useVModel from '../../hooks/useVModel';\nimport { TdDatePickerProps, DateMultipleValue, DateValue } from '../type';\n\nexport function useSingleValue(props: TdDatePickerProps) {\n const { value: valueFromProps, modelValue } = toRefs(props);\n const [value, onChange] = useVModel(valueFromProps, modelValue, props.defaultValue, props.onChange);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n\n if (props.enableTimePicker) {\n if (!extractTimeFormat(formatRef.value.format))\n console.error(`format: ${formatRef.value.format} 不规范,包含时间选择必须要有时间格式化 HH:mm:ss`);\n }\n\n const time = ref(\n formatTime(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : value.value,\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ),\n );\n const month = ref(\n parseToDayjs(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : (value.value as DateValue),\n formatRef.value.format,\n ).month(),\n );\n const year = ref(\n parseToDayjs(\n props.multiple ? (value.value as DateMultipleValue)?.[0] : (value.value as DateValue),\n formatRef.value.format,\n ).year(),\n );\n const cacheValue = ref(\n formatDate(props.multiple ? (value.value as DateMultipleValue)?.[0] : value.value, {\n format: formatRef.value.format,\n }),\n ); // 缓存选中值,panel 点击时更改\n\n // 输入框响应 value 变化\n watchEffect(() => {\n if (!value.value) {\n cacheValue.value = '';\n return;\n }\n if (!isValidDate(value.value, formatRef.value.format)) return;\n\n cacheValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n time.value = formatTime(value.value, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n });\n\n return {\n year,\n month,\n value,\n time,\n cacheValue,\n onChange,\n };\n}\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","import { isFunction, chunk } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport dayJsIsBetween from 'dayjs/plugin/isBetween';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport weekYear from 'dayjs/plugin/weekYear';\nimport localeData from 'dayjs/plugin/localeData';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { parseToDayjs } from './format';\n\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\ndayjs.extend(localeData);\ndayjs.extend(quarterOfYear);\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\ndayjs.extend(dayJsIsBetween);\n\n/**\n * 首字母大写\n * @param {String} str 目标字符串\n * @returns {String}\n */\nexport function firstUpperCase(str: string): string {\n if (!str) return str;\n return str[0].toUpperCase().concat(str.substring(1, str.length));\n}\n\ninterface DateObj {\n year: number;\n month: number;\n}\n\n/**\n * 返回指定年、月的第一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getFirstDayOfMonth({ year, month }: DateObj): Date {\n return new Date(year, month, 1);\n}\n\n/**\n * 返回指定年、月的天数\n * @param {Object} { year, month }\n * @returns {Number}\n */\nfunction getDaysInMonth({ year, month }: DateObj): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\n/**\n * 返回指定年、月的最后一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getLastDayOfMonth({ year, month }: DateObj): Date {\n return new Date(year, month, getDaysInMonth({ year, month }));\n}\n\nfunction isSameYear(date1: Date, date2: Date): boolean {\n return date1.getFullYear() === date2.getFullYear();\n}\n\nfunction isSameQuarter(date1: Date, date2: Date): boolean {\n return isSameYear(date1, date2) && dayjs(date1).quarter() === dayjs(date2).quarter();\n}\n\nfunction isSameMonth(date1: Date, date2: Date): boolean {\n return isSameYear(date1, date2) && date1.getMonth() === date2.getMonth();\n}\n\nfunction isSameWeek(date1: Date, date2: Date, dayjsLocale = 'zh-cn'): boolean {\n return isSameMonth(date1, date2) && dayjs(date1).locale(dayjsLocale).week() === dayjs(date2).locale(dayjsLocale).week();\n}\n\nfunction isSameDate(date1: Date, date2: Date): boolean {\n return isSameMonth(date1, date2) && date1.getDate() === date2.getDate();\n}\n\n/**\n * 比较两个日期对象的时间戳\n * @param {Date} date1 日期1\n * @param {Date} date2 日期2\n * @returns {Number} 返回 date1.getTime() - date2.getTime() 的差值\n */\nfunction compareAsc(date1: { getTime: () => any }, date2: Date): number {\n const d1 = date1.getTime();\n const d2 = date2.getTime();\n\n if (d1 < d2) return -1;\n if (d1 > d2) return 1;\n return 0;\n}\n\n/**\n * 比较两个 Date 是否是同一天 或则 同一月 或则 同一年\n * @param {Date} date1 比较的日期\n * @param {Date} date2 比较的日期\n * @param {String} type 比较类型,默认比较到『日』 date|month|year\n * @returns {Boolean}\n */\nexport function isSame(date1: Date, date2: Date, type = 'date', dayjsLocale = 'zh-cn'): boolean {\n const func = {\n isSameYear,\n isSameQuarter,\n isSameMonth,\n isSameWeek,\n isSameDate,\n } as Record boolean>;\n return func[`isSame${firstUpperCase(type)}`](date1, date2, dayjsLocale);\n}\n\nexport function outOfRanges(d: Date, min: any, max: any) {\n return (min && compareAsc(d, min) === -1) || (max && compareAsc(d, max) === 1);\n}\n\n/**\n * @returns {Date} 当天零点的日期对象\n */\nexport function getToday(): Date {\n const now = new Date();\n return new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);\n}\n\n/**\n * 返回日期对象的年、月、日、小时、分钟、秒、12小时制标识\n * @param {Date} date\n * @returns {Object}\n */\nexport function getDateObj(date: Date) {\n let tempDate = date;\n if (!(date instanceof Date)) {\n tempDate = getToday();\n }\n return {\n year: tempDate.getFullYear(),\n month: tempDate.getMonth(),\n date: tempDate.getDate(),\n hours: tempDate.getHours(),\n minutes: tempDate.getMinutes(),\n seconds: tempDate.getSeconds(),\n milliseconds: tempDate.getMilliseconds(),\n meridiem: tempDate.getHours() > 11 ? 'PM' : 'AM',\n };\n}\n\n/**\n * 设置日期对象的时间部分\n * @param {Date} date 日期\n * @param {Number} hours 小时\n * @param {Number} minutes 分钟\n * @param {Number} seconds 秒\n * @param {Number} milliseconds 毫秒\n * @returns {Date} 一个新的date\n */\nexport function setDateTime(\n date: Date,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds?: number\n): Date {\n return dayjs(date)\n .hour(hours)\n .minute(minutes)\n .second(seconds)\n .millisecond(milliseconds)\n .toDate();\n}\n\n/**\n * 减少月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function subtractMonth(date: Date, num: number): Date {\n return dayjs(date).subtract(num, 'month').toDate();\n}\n\n/**\n * 增加月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function addMonth(date: Date, num: number): Date {\n return dayjs(date).add(num, 'month').toDate();\n}\n\nexport type DateValue = string | Date | number;\nexport interface DisableDateObj { from?: string; to?: string; before?: string; after?: string }\nexport type DisableDate = Array | DisableDateObj | ((date: DateValue) => boolean);\n\nexport interface OptionsType {\n firstDayOfWeek: number;\n disableDate: DisableDate;\n minDate: Date;\n maxDate: Date;\n showWeekOfYear?: Boolean;\n dayjsLocale?: string;\n monthLocal?: string[];\n quarterLocal?: string[];\n cancelRangeSelectLimit?: boolean;\n}\n\nexport function getWeeks(\n { year, month }: { year: number; month: number },\n {\n firstDayOfWeek,\n showWeekOfYear = false,\n disableDate = () => false,\n minDate,\n maxDate,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const prependDay = getFirstDayOfMonth({ year, month });\n const appendDay = getLastDayOfMonth({ year, month });\n const maxDays = getDaysInMonth({ year, month });\n const daysArr = [];\n let i = 1;\n const today = getToday();\n for (i; i <= maxDays; i++) {\n const currentDay = new Date(year, month, i);\n daysArr.push({\n text: i,\n active: false,\n value: currentDay,\n disabled: (isFunction(disableDate) && disableDate(currentDay))\n || (!cancelRangeSelectLimit && outOfRanges(currentDay, minDate, maxDate)),\n now: isSame(today, currentDay),\n firstDayOfMonth: i === 1,\n lastDayOfMonth: i === maxDays,\n type: 'current-month',\n dayjsObj: dayjs(currentDay).locale(dayjsLocale),\n });\n }\n\n if (prependDay.getDay() !== firstDayOfWeek) {\n prependDay.setDate(0); // 上一月\n while (true) {\n daysArr.unshift({\n text: prependDay.getDate().toString(),\n active: false,\n value: new Date(prependDay),\n disabled: (isFunction(disableDate) && disableDate(prependDay)) || (!cancelRangeSelectLimit && outOfRanges(prependDay, minDate, maxDate)),\n additional: true, // 非当前月\n type: 'prev-month',\n dayjsObj: dayjs(prependDay).locale(dayjsLocale),\n });\n prependDay.setDate(prependDay.getDate() - 1);\n if (prependDay.getDay() === Math.abs(firstDayOfWeek + 6) % 7) break;\n }\n }\n\n const LEN = 42; // 显示6周\n while (daysArr.length < LEN) {\n appendDay.setDate(appendDay.getDate() + 1);\n daysArr.push({\n text: appendDay.getDate(),\n active: false,\n value: new Date(appendDay),\n disabled: (isFunction(disableDate) && disableDate(appendDay)) || (!cancelRangeSelectLimit && outOfRanges(appendDay, minDate, maxDate)),\n additional: true, // 非当前月\n type: 'next-month',\n dayjsObj: dayjs(appendDay).locale(dayjsLocale),\n });\n }\n\n const dataList = chunk(daysArr, 7);\n // 显示周数\n if (showWeekOfYear) {\n dataList.forEach((d) => {\n d.unshift({\n ...d[0],\n active: false,\n value: d[0].value,\n text: dayjs(d[0].value).locale(dayjsLocale).week(),\n dayjsObj: dayjs(d[0].value).locale(dayjsLocale),\n });\n });\n }\n\n return dataList;\n}\n\nexport function getQuarters(\n year: number,\n {\n disableDate = () => false,\n minDate,\n maxDate,\n quarterLocal,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const quarterArr = [];\n const today = getToday();\n\n for (let i = 1; i <= 4; i++) {\n const date = dayjs(new Date(year, 0)).quarter(i).toDate();\n\n quarterArr.push({\n value: date,\n now: isSame(date, today, 'quarter'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: quarterLocal[i - 1],\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(quarterArr, 4);\n}\n\nexport function getYears(\n year: number,\n {\n disableDate = () => false,\n minDate,\n maxDate,\n dayjsLocale = 'zh-cn',\n cancelRangeSelectLimit = false,\n }: OptionsType,\n) {\n const startYear = parseInt((year / 10).toString(), 10) * 10;\n const endYear = startYear + 9;\n\n const yearArr = [];\n\n const today = getToday();\n\n for (let i = startYear; i <= endYear; i++) {\n const date = new Date(i, 0);\n\n yearArr.push({\n value: date,\n now: isSame(date, today, 'year'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: `${date.getFullYear()}`,\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(yearArr, 3);\n}\n\nexport function getMonths(year: number, params: OptionsType) {\n const {\n disableDate = () => false, minDate, maxDate, monthLocal, dayjsLocale = 'zh-cn', cancelRangeSelectLimit = false,\n } = params;\n const MonthArr = [];\n const today = getToday();\n\n for (let i = 0; i <= 11; i++) {\n const date = new Date(year, i);\n\n MonthArr.push({\n value: date,\n now: isSame(date, today, 'month'),\n disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n active: false,\n text: monthLocal[date.getMonth()], // `${date.getMonth() + 1} ${monthText || '月'}`,\n dayjsObj: dayjs(date).locale(dayjsLocale),\n });\n }\n\n return chunk(MonthArr, 3);\n}\n\nexport interface DateTime {\n additional: boolean;\n active: boolean;\n highlight: boolean;\n hoverHighlight: boolean;\n startOfRange: boolean;\n endOfRange: boolean;\n hoverStartOfRange: boolean;\n hoverEndOfRange: boolean;\n value: Date;\n}\n\ninterface FlagActiveOptions {\n start: Date;\n end: Date;\n hoverStart: Date;\n hoverEnd: Date;\n type: any;\n isRange: boolean;\n value: DateValue | DateValue[];\n multiple: boolean;\n}\n\nexport function flagActive(data: any[], { ...args }: FlagActiveOptions) {\n const {\n start,\n end,\n hoverStart,\n hoverEnd,\n type = 'date',\n isRange = false,\n value,\n multiple = false,\n } = args;\n\n // 周选择器不更改 cell 样式\n if (type === 'week') return data;\n\n if (!isRange) {\n return data.map((row: any[]) => row.map((item: DateTime) => {\n const _item = item;\n\n if (multiple) {\n _item.active = (value as DateValue[])?.some?.((val) => isSame(dayjs(val).toDate(), _item.value, type) && !_item.additional);\n } else {\n _item.active = start && isSame(item.value, start, type) && !_item.additional;\n }\n\n return _item;\n }));\n }\n\n return data.map((row: any[]) => row.map((item: DateTime) => {\n const _item = item;\n const date = item.value;\n\n const isStart = start && isSame(start, date, type);\n const isHoverStart = hoverStart && isSame(hoverStart, date, type);\n const isEnd = end && isSame(end, date, type);\n const isHoverEnd = hoverEnd && isSame(hoverEnd, date, type);\n _item.active = (isStart || isEnd) && !_item.additional;\n\n if (start && end) {\n _item.highlight = dayjs(date).isBetween(start, end, type, '[]') && !_item.additional;\n _item.startOfRange = isStart;\n _item.endOfRange = isEnd;\n }\n\n if (hoverStart && hoverEnd) {\n _item.hoverHighlight = dayjs(date).isBetween(hoverStart, hoverEnd, type, '[]') && !_item.additional;\n _item.hoverStartOfRange = isHoverStart;\n _item.hoverEndOfRange = isHoverEnd;\n }\n return _item;\n }));\n}\n\n/**\n * 返回时间对象的小时、分钟、秒、12小时制标识\n * @param {String} timeFormat 'pm 20:11:11:333'\n * @returns {Object}\n */\nexport function extractTimeObj(timeFormat: string = '') {\n const matchedMeridiem = timeFormat.match(/[ap]m/i) || [''];\n const timeReg = /\\d{1,2}(:\\d{1,2})?(:\\d{1,2})?(:\\d{1,3})?/;\n const matchedTimeStr = timeFormat.match(timeReg) || ['0:0:0:0'];\n const [hours = 0, minutes = 0, seconds = 0, milliseconds = 0] = matchedTimeStr[0].split(':');\n\n return {\n hours: +hours,\n minutes: +minutes,\n seconds: +seconds,\n milliseconds: +milliseconds,\n meridiem: matchedMeridiem[0],\n };\n}\n\n/**\n * 日期是否可用\n * @param {Object} { value, disableDate, mode, format }\n * @returns {Boolean}\n */\nexport function isEnabledDate({\n value,\n disableDate,\n mode,\n format,\n}: {\n value: Date;\n mode: 'year' | 'month' | 'date' | 'quarter' | 'week';\n format: string;\n disableDate: any;\n}): boolean {\n if (!disableDate) return true;\n\n const availableMode = mode === 'quarter' ? 'date' : mode;\n\n let isEnabled = true;\n // 值类型为 Function 则表示返回值为 true 的日期会被禁用\n if (isFunction(disableDate)) {\n return !disableDate(value);\n }\n\n // 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。\n if (Array.isArray(disableDate)) {\n const formattedDisabledDate = disableDate.map((item: string) => parseToDayjs(item, format));\n // eslint-disable-next-line\n const isIncludes = formattedDisabledDate.some(item => item.isSame(dayjs(value)));\n return !isIncludes;\n }\n\n // { from: 'A', to: 'B' } 表示在 A 到 B 之间的日期会被禁用(包括A和B)。\n // eslint-disable-next-line\n const { from, to, before, after } = disableDate;\n\n if (from && to) {\n const compareMin = dayjs(from).startOf('day');\n const compareMax = dayjs(to).endOf('day');\n return !dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n }\n\n // 最小时间与最大时间的边界,防止正负时区出现禁用时间不一致的情况\n const min = before ? new Date(dayjs(before).startOf('day').format()) : null;\n const max = after ? new Date(dayjs(after).endOf('day').format()) : null;\n\n // { before: 'A', after: 'B' } 表示在 A 之前和在 B 之后的日期都会被禁用。\n if (max && min) {\n const compareMin = dayjs(new Date(min));\n const compareMax = dayjs(new Date(max));\n\n isEnabled = dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n } else if (min) {\n const compareMin = dayjs(new Date(min));\n isEnabled = !dayjs(value).isBefore(compareMin, availableMode);\n } else if (max) {\n const compareMax = dayjs(new Date(max));\n isEnabled = !dayjs(value).isAfter(compareMax, availableMode);\n }\n return isEnabled;\n}\n\n/**\n * formatDate 方法需要date作为入参,部分场景需要将timestamp或格式化后的时间string转换为date进行使用\n */\nexport function covertToDate(value: string, valueType: string) {\n return valueType === 'time-stamp'\n ? new Date(value)\n : dayjs(value, valueType).toDate();\n}\n","function _objectDestructuringEmpty(t) {\n if (null == t) throw new TypeError(\"Cannot destructure \" + t);\n}\nexport { _objectDestructuringEmpty as default };","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDatePickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入日期 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否显示清除按钮 */\n clearable: Boolean,\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: String,\n default: '00:00:00',\n },\n /** 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。`{ from: 'A', to: 'B' }` 表示在 A 到 B 之间的日期会被禁用。`{ before: 'A', after: 'B' }` 表示在 A 之前和在 B 之后的日期都会被禁用。其中 A = '2021-01-01',B = '2021-02-01'。值类型为 Function 则表示返回值为 true 的日期会被禁用 */\n disableDate: {\n type: [Object, Array, Function] as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示时间选择 */\n enableTimePicker: Boolean,\n /** 第一天从星期几开始 */\n firstDayOfWeek: {\n type: Number,\n validator(val: TdDatePickerProps['firstDayOfWeek']): boolean {\n if (!val) return true;\n return [1, 2, 3, 4, 5, 6, 7].includes(val);\n },\n },\n /** 仅用于格式化日期显示的格式,不影响日期值。注意和 `valueType` 的区别,`valueType`会直接决定日期值 `value` 的格式。全局配置默认为:'YYYY-MM-DD',[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: undefined,\n },\n /** 透传给输入框(Input)组件的参数 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 选择器模式 */\n mode: {\n type: String as PropType,\n default: 'date' as TdDatePickerProps['mode'],\n validator(val: TdDatePickerProps['mode']): boolean {\n if (!val) return true;\n return ['year', 'quarter', 'month', 'week', 'date'].includes(val);\n },\n },\n /** 支持多选日期,但不支持在range-picker中,或与enableTimePicker、allowInput 一起使用 */\n multiple: Boolean,\n /** 决定在日期时间选择器的场景下是否需要点击确认按钮才完成选择动作,默认为`true` */\n needConfirm: {\n type: Boolean,\n default: true,\n },\n /** 占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n default: undefined as TdDatePickerProps['placeholder'],\n },\n /** 透传给 popup 组件的参数 */\n popupProps: {\n type: Object as PropType,\n },\n /** 用于自定义组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 预设快捷日期选择,示例:`{ '元旦': '2021-01-01', '昨天': dayjs().subtract(1, 'day').format('YYYY-MM-DD'), '特定日期': () => ['2021-02-01'] }` */\n presets: {\n type: Object as PropType,\n },\n /** 预设面板展示区域(包含确定按钮) */\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom' as TdDatePickerProps['presetsPlacement'],\n validator(val: TdDatePickerProps['presetsPlacement']): boolean {\n if (!val) return true;\n return ['left', 'top', 'right', 'bottom'].includes(val);\n },\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdDatePickerProps['size'],\n validator(val: TdDatePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdDatePickerProps['status'],\n validator(val: TdDatePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 用于自定义组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TimePicker 组件属性 */\n timePickerProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Array, Date] as PropType,\n default: undefined as TdDatePickerProps['value'],\n },\n modelValue: {\n type: [String, Number, Array, Date] as PropType,\n default: undefined as TdDatePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Array, Date] as PropType,\n default: '' as TdDatePickerProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 用于格式化日期的值,仅支持部分格式,时间戳、日期等。⚠️ `YYYYMMDD` 这种格式不支持,请勿使用,如果希望支持可以给 `dayjs` 提个 PR。注意和 `format` 的区别,`format` 仅用于处理日期在页面中呈现的格式。`ValueTypeEnum` 即将废弃,请更为使用 `DatePickerValueType` */\n valueType: {\n type: String as PropType,\n default: '' as TdDatePickerProps['valueType'],\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n};\n","import { defineComponent, PropType, ref, computed, watch } from 'vue';\nimport { PaginationMini, JumperTrigger } from '../../../pagination';\nimport TSelect from '../../../select';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\n\nimport type { TdDatePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerHeader',\n props: {\n mode: {\n type: String as PropType,\n default: 'date',\n },\n year: Number,\n month: Number,\n onMonthChange: Function,\n onYearChange: Function,\n onJumperClick: Function as PropType<(context: { e: MouseEvent; trigger: JumperTrigger }) => {}>,\n },\n setup(props) {\n const { classPrefix } = useConfig('classPrefix');\n const COMPONENT_NAME = usePrefixClass('date-picker__header');\n const { globalConfig } = useConfig('datePicker');\n\n const yearOptions = ref(initOptions(props.year));\n const showMonthPicker = computed(() => props.mode === 'date' || props.mode === 'week');\n\n // 年份选择展示区间\n const nearestYear = computed(\n () =>\n yearOptions.value.find((option) => option.value - props.year <= 9 && option.value - props.year >= 0)?.value ||\n props.year,\n );\n\n const monthOptions = computed(() =>\n globalConfig.value.months.map((item: string, index: number) => ({ label: item, value: index })),\n );\n\n function initOptions(year: number) {\n const options = [];\n if (props.mode === 'year') {\n const extraYear = year % 10;\n const minYear = year - extraYear - 100;\n const maxYear = year - extraYear + 100;\n\n for (let i = minYear; i <= maxYear; i += 10) {\n options.push({ label: `${i} - ${i + 9}`, value: i + 9 });\n }\n } else {\n options.push({ label: `${year}`, value: year });\n\n for (let i = 1; i <= 10; i++) {\n options.push({ label: `${year + i}`, value: year + i });\n options.unshift({ label: `${year - i}`, value: year - i });\n }\n }\n\n return options;\n }\n\n function loadMoreYear(year: number, type?: 'add' | 'reduce') {\n const options = [];\n if (props.mode === 'year') {\n const extraYear = year % 10;\n if (type === 'add') {\n for (let i = year - extraYear + 10; i <= year - extraYear + 50; i += 10) {\n options.push({ label: `${i} - ${i + 9}`, value: i });\n }\n } else {\n for (let i = year - extraYear - 1; i > year - extraYear - 50; i -= 10) {\n options.unshift({ label: `${i - 9} - ${i}`, value: i });\n }\n }\n } else if (type === 'add') {\n for (let i = year + 1; i <= year + 10; i++) {\n options.push({ label: `${i}`, value: i });\n }\n } else {\n for (let i = year - 1; i > year - 10; i--) {\n options.unshift({ label: `${i}`, value: i });\n }\n }\n\n return options;\n }\n\n // hover title\n const labelMap = computed(() => {\n return {\n year: {\n prev: globalConfig.value.preDecade,\n current: globalConfig.value.now,\n next: globalConfig.value.nextDecade,\n },\n month: {\n prev: globalConfig.value.preYear,\n current: globalConfig.value.now,\n next: globalConfig.value.nextYear,\n },\n date: {\n prev: globalConfig.value.preMonth,\n current: globalConfig.value.now,\n next: globalConfig.value.nextMonth,\n },\n quarter: {\n prev: globalConfig.value.preYear,\n current: globalConfig.value.now,\n next: globalConfig.value.nextYear,\n },\n week: {\n prev: globalConfig.value.preMonth,\n current: globalConfig.value.now,\n next: globalConfig.value.nextMonth,\n },\n };\n });\n\n // 滚动顶部底部自动加载\n function handleScroll({ e }: any) {\n if (e.target.scrollTop === 0) {\n handlePanelTopClick(e);\n } else if (e.target.scrollTop === e.target.scrollHeight - e.target.clientHeight) {\n handlePanelBottomClick(e);\n }\n }\n\n function handlePanelTopClick(e: MouseEvent) {\n e?.stopPropagation?.();\n\n const firstYear = yearOptions.value[0].value;\n const options = loadMoreYear(firstYear, 'reduce');\n yearOptions.value = [...options, ...yearOptions.value];\n }\n\n function handlePanelBottomClick(e: MouseEvent) {\n e?.stopPropagation?.();\n\n const lastYear = yearOptions.value.slice(-1)[0].value;\n const options = loadMoreYear(lastYear, 'add');\n yearOptions.value = [...yearOptions.value, ...options];\n }\n\n watch(\n () => props.mode,\n () => {\n yearOptions.value = initOptions(props.year);\n },\n );\n\n return () => (\n
    \n
    \n {showMonthPicker.value && (\n props.onMonthChange?.(val)}\n popupProps={{\n attach: (triggerElement: HTMLElement) => triggerElement.parentNode,\n overlayClassName: `${COMPONENT_NAME.value}-controller-month-popup`,\n }}\n />\n )}\n props.onYearChange?.(val)}\n popupProps={{\n onScroll: handleScroll,\n attach: (triggerElement: HTMLElement) => triggerElement.parentNode,\n overlayClassName: `${COMPONENT_NAME.value}-controller-year-popup`,\n }}\n panelTopContent={() => (\n
    \n ...\n
    \n )}\n panelBottomContent={() => (\n
    \n ...\n
    \n )}\n />\n
    \n\n \n
    \n );\n },\n});\n","import { defineComponent, computed } from 'vue';\nimport { usePrefixClass } from '../../../hooks/useConfig';\nimport { extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { Dayjs } from 'dayjs';\n\nexport default defineComponent({\n name: 'TDatePickerCell',\n props: {\n time: String,\n text: [String, Number],\n value: Date,\n active: Boolean,\n highlight: Boolean,\n disabled: Boolean,\n startOfRange: Boolean,\n endOfRange: Boolean,\n hoverHighlight: Boolean,\n hoverStartOfRange: Boolean,\n hoverEndOfRange: Boolean,\n additional: Boolean,\n now: Boolean,\n firstDayOfMonth: Boolean,\n lastDayOfMonth: Boolean,\n onClick: Function,\n onMouseEnter: Function,\n dayjsObj: Dayjs,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__cell');\n\n const cellClass = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--now`]: props.now,\n [`${COMPONENT_NAME.value}--active`]: props.active,\n [`${COMPONENT_NAME.value}--disabled`]: props.disabled,\n [`${COMPONENT_NAME.value}--highlight`]: props.highlight,\n [`${COMPONENT_NAME.value}--hover-highlight`]: props.hoverHighlight,\n [`${COMPONENT_NAME.value}--active-start`]: props.startOfRange,\n [`${COMPONENT_NAME.value}--active-end`]: props.endOfRange,\n [`${COMPONENT_NAME.value}--hover-start`]: props.hoverStartOfRange,\n [`${COMPONENT_NAME.value}--hover-end`]: props.hoverEndOfRange,\n [`${COMPONENT_NAME.value}--additional`]: props.additional,\n [`${COMPONENT_NAME.value}--first-day-of-month`]: props.firstDayOfMonth,\n [`${COMPONENT_NAME.value}--last-day-of-month`]: props.lastDayOfMonth,\n },\n ]);\n\n function handleClick(e: MouseEvent) {\n if (props.disabled) return;\n if (props.time) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(props.time);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n props.value.setHours(nextHours);\n props.value.setMinutes(minutes);\n props.value.setSeconds(seconds);\n props.value.setMilliseconds(milliseconds);\n }\n props.onClick?.(props.value, { e });\n }\n\n function handleMouseEnter() {\n if (props.disabled) return;\n if (props.time) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(props.time);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n props.value.setHours(nextHours);\n props.value.setMinutes(minutes);\n props.value.setSeconds(seconds);\n props.value.setMilliseconds(milliseconds);\n }\n props.onMouseEnter?.(props.value);\n }\n\n return () => (\n \n
    {props.text}
    \n \n );\n },\n});\n","import { defineComponent, PropType, computed } from 'vue';\n\nimport TDatePickerCell from './Cell';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\nimport { parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { isArray } from 'lodash-es';\n\nimport type { TdDatePickerProps, DateMultipleValue } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerTable',\n props: {\n mode: {\n type: String as PropType,\n default: 'date',\n },\n value: [String, Number, Array, Date],\n format: String,\n firstDayOfWeek: Number,\n multiple: Boolean,\n data: Array,\n time: String,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__table');\n const { globalConfig } = useConfig('datePicker');\n const { dayjsLocale } = globalConfig.value;\n\n const weekArr = computed(() => {\n const weekArr = [];\n let wi = props.firstDayOfWeek - 1;\n const len = globalConfig.value.weekdays.length;\n while (weekArr.length < len) {\n weekArr.push(globalConfig.value.weekdays[wi]);\n wi = (wi + len + 1) % len;\n }\n\n if (props.mode === 'week') weekArr.unshift(globalConfig.value.weekAbbreviation);\n\n return weekArr;\n });\n\n const showThead = computed(() => props.mode === 'date' || props.mode === 'week');\n\n // 高亮周区间\n const weekRowClass = (value: any, targetValue: Date) => {\n if (props.mode !== 'week' || !value) return {};\n\n if (isArray(value)) {\n if (!value.length) return {};\n const [startObj, endObj] = value.map((v) => v && parseToDayjs(v, props.format));\n const startYear = startObj && startObj.year();\n const startWeek = startObj?.locale?.(dayjsLocale)?.week?.();\n const endYear = endObj && endObj.year();\n const endWeek = endObj?.locale?.(dayjsLocale)?.week?.();\n\n const targetObj = parseToDayjs(targetValue, props.format);\n const targetYear = targetObj.year();\n const targetWeek = targetObj.week();\n const isActive =\n (targetYear === startYear && targetWeek === startWeek) || (targetYear === endYear && targetWeek === endWeek);\n const isRange =\n targetYear >= startYear && targetYear <= endYear && targetWeek > startWeek && targetWeek < endWeek;\n return {\n // 同年同周\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]: isActive,\n [`${COMPONENT_NAME.value}-${props.mode}-row--range`]: isRange,\n };\n }\n\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]:\n parseToDayjs(value, props.format).locale(dayjsLocale).week() ===\n parseToDayjs(targetValue, props.format).locale(dayjsLocale).week(),\n };\n };\n\n const multipleWeekRowClass = (value: DateMultipleValue, targetValue: Date) => {\n const targetDayjs = parseToDayjs(targetValue, props.format);\n if (props.mode !== 'week' || (Array.isArray(value) && !value.length)) return {};\n const isSomeYearWeek = value\n .map?.((v) => parseToDayjs(v, props.format))\n .some((item) => item.week() === targetDayjs.week() && item.year() === targetDayjs.year());\n return {\n [`${COMPONENT_NAME.value}-${props.mode}-row--active`]: isSomeYearWeek,\n };\n };\n const activeRowCss = props.multiple ? multipleWeekRowClass : weekRowClass;\n\n return () => (\n
    props.onCellMouseLeave?.({ e })}>\n \n {showThead.value && (\n \n \n {weekArr.value.map((value: string, i: number) => (\n \n ))}\n \n \n )}\n \n {props.data.map((row: Array, i: number) => (\n \n {row.map((col: any, j: number) => (\n \n ))}\n \n ))}\n \n
    \n {value}\n
    \n
    \n );\n },\n});\n","export const AM = 'am';\nexport const PM = 'pm';\nexport const MERIDIEM_LIST = [AM, PM];\n\nexport const TIME_PICKER_EMPTY: Array = [undefined, undefined];\n\nexport const DEFAULT_STEPS = [1, 1, 1];\nexport const DEFAULT_FORMAT = 'HH:mm:ss';\nexport const EMPTY_VALUE = -1;\n\nexport enum EPickerCols {\n hour = 'hour',\n minute = 'minute',\n second = 'second',\n milliSecond = 'millisecond',\n meridiem = 'meridiem',\n}\n\n// RegExp\nexport const TIME_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\n// 上下午前置\nexport const PRE_MERIDIEM_FORMAT = /^(a|A)\\s+?[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?$/;\n// 上下午后置\nexport const POST_MERIDIEM_FORMAT = /^[h]{1,2}(:[m]{1,2}(:[s]{1,2})?)?(\\s+(a|A))?$/;\n// 12小时制\nexport const TWELVE_HOUR_FORMAT = /[h]{1}/;\n// HH:mm\nexport const HM_FORMAT = /[hH]{1,2}:m{1,2}/;\n// HH:mm:ss\nexport const HMS_FORMAT = /[hH]{1,2}:m{1,2}:s{1,2}/;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimePickerProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项的配置函数 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 透传给输入框(Input)组件的参数 */\n inputProps: {\n type: Object as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传给 popup 组件的参数 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间选择,示例:`{ '前一小时': '11:00:00' }` */\n presets: {\n type: Object as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimePickerProps['size'],\n validator(val: TdTimePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimePickerProps['status'],\n validator(val: TdTimePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n modelValue: {\n type: String as PropType,\n default: undefined as TdTimePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: String as PropType,\n default: '' as TdTimePickerProps['defaultValue'],\n },\n /** 自定义选中项呈现的内容 */\n valueDisplay: {\n type: [String, Function] as PropType,\n },\n /** 当输入框失去焦点时触发,value 表示组件当前有效值 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 面板关闭时触发 */\n onClose: Function as PropType,\n /** 输入框获得焦点时触发,value 表示组件当前有效值 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板打开时触发 */\n onOpen: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { isBoolean } from 'lodash-es';\nimport { PropType } from 'vue';\nimport dayjs from 'dayjs';\n\nimport * as Props from '../props';\nimport { EPickerCols } from '@tdesign/common-js/time-picker/const';\nimport { TdTimePickerProps, TdTimeRangePickerProps } from '../type';\n\n// 布尔类型\nconst BooleanType = {\n type: Boolean,\n default: true,\n validator(v: boolean): boolean {\n return isBoolean(v);\n },\n};\n\nexport const panelProps = () => ({\n disabled: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n isFocus: {\n ...BooleanType,\n ...{\n default: false,\n },\n },\n value: {\n type: String,\n default: '',\n },\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n isShowPanel: {\n ...BooleanType,\n ...{\n default: true,\n },\n },\n activeIndex: {\n type: Number,\n },\n presets: {\n type: Object as PropType,\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n isFooterDisplay: {\n ...BooleanType,\n },\n});\n\nexport const panelColProps = () => ({\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n cols: {\n type: Array as PropType>,\n default: () => [EPickerCols.hour, EPickerCols.minute, EPickerCols.second],\n },\n value: {\n type: String,\n default: '',\n },\n range: {\n type: Array as PropType>,\n default: () => [] as Array,\n },\n steps: {\n type: Array as PropType>,\n ...{\n default: [1, 1, 1],\n },\n },\n hideDisabledTime: {\n ...Props.default.hideDisabledTime,\n },\n disableTime: {\n type: Function,\n },\n localeMeridiems: {\n type: Array as PropType>,\n },\n});\n","import dayjs from 'dayjs';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { EPickerCols, TIME_FORMAT } from './const';\n\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\n\n// 判断是否输入的值是合法的timepicker的值\nexport function validateInputValue(value: string, format: string) {\n return dayjs(value, format).format(format) === value;\n}\n\n// 转换输入值为标准格式的timepicker的值\nexport function formatInputValue(value: string, format: string) {\n return dayjs(value, format).format(format);\n}\n\n// 计算最接近的时间点\nexport function closestLookup(\n availableArr: Array,\n calcVal: number,\n step: number\n) {\n if (step <= 1) return calcVal;\n return availableArr.sort(\n (a, b) => Math.abs(calcVal + 1 - a) - Math.abs(calcVal + 1 - b)\n )[0];\n}\n\nexport function getPickerCols(format:string) {\n const renderCol: EPickerCols[] = [];\n const {\n meridiem, hour, minute, second, milliSecond,\n } = EPickerCols;\n const match = format.match(TIME_FORMAT);\n match.forEach((m) => {\n switch (m) {\n case 'H':\n case 'HH':\n case 'h':\n case 'hh':\n renderCol.push(hour);\n break;\n case 'a':\n case 'A':\n renderCol.push(meridiem);\n break;\n case 'm':\n case 'mm':\n renderCol.push(minute);\n break;\n case 's':\n case 'ss':\n renderCol.push(second);\n break;\n case 'SSS':\n renderCol.push(milliSecond);\n break;\n default:\n break;\n }\n });\n return renderCol;\n}\n","import { computed, defineComponent, ref, watch, toRefs, onMounted, reactive, nextTick } from 'vue';\nimport { debounce } from 'lodash-es';\nimport { range } from 'lodash-es';\nimport { padStart } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\nimport { panelColProps } from './props';\nimport { EPickerCols, TWELVE_HOUR_FORMAT, AM, PM, MERIDIEM_LIST } from '@tdesign/common-js/time-picker/const';\nimport { closestLookup, getPickerCols } from '@tdesign/common-js/time-picker/utils';\nimport { useCommonClassName, useConfig, usePrefixClass } from '../../hooks/useConfig';\n\ndayjs.extend(customParseFormat);\n\nconst timeArr = [EPickerCols.hour, EPickerCols.minute, EPickerCols.second, EPickerCols.milliSecond];\n\nconst panelOffset = {\n top: 15,\n bottom: 21,\n};\n\nexport default defineComponent({\n name: 'TTimePickerPanelCol',\n props: {\n ...panelColProps(),\n position: String,\n triggerScroll: Boolean,\n onChange: Function,\n resetTriggerScroll: Function,\n isShowPanel: Boolean,\n },\n setup(props) {\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker__panel');\n const { STATUS } = useCommonClassName();\n\n const { steps, value, format, position, triggerScroll } = toRefs(props);\n\n const cols = ref>([]);\n const bodyRef = ref();\n const maskRef = ref(null);\n // 每个滚动列的ref 顺序不定 所以只要有5列标识即可\n const colsRef = reactive>({\n 0: null,\n 1: null,\n 2: null,\n 3: null,\n 4: null,\n 5: null,\n });\n\n const dayjsValue = computed(() => {\n const isStepsSet = !!steps.value.filter((step) => Number(step) > 1).length;\n\n if (value.value) return dayjs(value.value, format.value);\n\n if (isStepsSet) return dayjs().hour(0).minute(0).second(0);\n\n return dayjs();\n });\n\n // 面板打开时 触发滚动 初始化面板\n watch(\n () => dayjsValue.value,\n () => {\n if (dayjsValue.value && value.value) updateTimeScrollPos(true);\n },\n );\n\n // 时间通过外部触发时 同样触发滚动\n watch(\n () => triggerScroll.value,\n () => {\n if (triggerScroll.value) {\n updateTimeScrollPos(true);\n }\n },\n );\n\n onMounted(() => {\n cols.value = getPickerCols(format.value);\n });\n\n // 获取每个时间的高度\n const getItemHeight = () => {\n const maskDom = maskRef.value?.querySelector('div');\n if (!maskDom) {\n return {\n offsetHeight: 0,\n margin: 0,\n };\n }\n return {\n offsetHeight: parseFloat(getComputedStyle(maskDom).height),\n margin: parseFloat(getComputedStyle(maskDom).marginTop),\n };\n };\n\n const timeItemCanUsed = (col: EPickerCols, el: string | number) => {\n const colIdx = timeArr.indexOf(col);\n if (colIdx !== -1) {\n const params: [number, number, number, number] = [\n dayjsValue.value.hour(),\n dayjsValue.value.minute(),\n dayjsValue.value.second(),\n dayjsValue.value.millisecond(),\n ];\n params[colIdx] = Number(el);\n return !props.disableTime?.(...params, { partial: position.value || 'start' })?.[col]?.includes(Number(el));\n }\n return true;\n };\n\n // 获取需要渲染的column\n const getColList = (col: EPickerCols) => {\n let count = 0;\n\n if (timeArr.includes(col)) {\n // hour、minute and second columns\n const colIdx = timeArr.indexOf(col);\n const colStep = steps.value[colIdx] || 1;\n\n if (col === EPickerCols.hour)\n count = TWELVE_HOUR_FORMAT.test(format.value) ? 11 : 23; // 小时最大为23 12小时制最大为11\n else if (col === EPickerCols.milliSecond) count = 999; // 毫秒最大为999\n else count = 59;\n\n const colList = range(0, count + 1, Number(colStep)).map((v) => padStart(String(v), 2, '0')) || [];\n return props.hideDisabledTime && !!props.disableTime\n ? colList.filter((t) => {\n const params: [number, number, number, number] = [\n dayjsValue.value.hour(),\n dayjsValue.value.minute(),\n dayjsValue.value.second(),\n dayjsValue.value.millisecond(),\n ];\n params[colIdx] = Number(t);\n return !props\n .disableTime?.(...params, { partial: position.value || 'start' })\n ?.[col]?.includes(Number(t));\n })\n : colList;\n }\n // meridiem column\n return MERIDIEM_LIST;\n };\n\n const getScrollDistance = (col: EPickerCols, time: number | string) => {\n if (col === EPickerCols.hour && /[h]{1}/.test(format.value))\n // eslint-disable-next-line no-param-reassign\n (time as number) %= 12; // 一定是数字,直接cast\n\n const itemIdx = getColList(col).indexOf(padStart(String(time), 2, '0'));\n const { offsetHeight, margin } = getItemHeight();\n const timeItemTotalHeight = offsetHeight + margin;\n const distance = Math.abs(Math.max(0, itemIdx) * timeItemTotalHeight);\n return distance;\n };\n\n const handleScroll = (col: EPickerCols, idx: number, e: MouseEvent) => {\n let val: number | string;\n let formattedVal: string;\n if (!props.isShowPanel) return;\n\n const scrollTop = (colsRef[idx]?.scrollTop || 0) + panelOffset.top;\n const { offsetHeight, margin } = getItemHeight();\n const timeItemTotalHeight = offsetHeight + margin;\n let colStep = Math.abs(Math.round(scrollTop / timeItemTotalHeight + 0.5));\n\n const meridiem = MERIDIEM_LIST[Math.min(colStep - 1, 1)].toLowerCase(); // 处理PM、AM与am、pm\n\n if (Number.isNaN(colStep)) colStep = 1;\n if (timeArr.includes(col)) {\n // hour、minute、 second and milliSecond\n let max = 59;\n if (col === EPickerCols.hour) max = /[h]{1}/.test(format.value) ? 11 : 23; // 小时最大为23 12小时制最大为11\n else if (col === EPickerCols.milliSecond) max = 999; // 毫秒最大为999\n\n const colIdx = timeArr.indexOf(col);\n const availableArr = range(0, max + 1, Number(steps.value[colIdx]) || 1);\n val = closestLookup(\n availableArr,\n Number(getColList(col)[Math.min(colStep - 1, max + 1, availableArr.length - 1)]),\n Number(steps.value[colIdx]) || 1,\n );\n if (Number.isNaN(val)) val = availableArr[availableArr.length - 1];\n if (col === EPickerCols.hour && cols.value.includes(EPickerCols.meridiem) && dayjsValue.value.hour() >= 12) {\n // 如果是十二小时制需要再判断\n val = Number(val) + 12;\n }\n }\n // meridiem columns\n else val = meridiem;\n\n const distance = getScrollDistance(col, val);\n if (!dayjs(dayjsValue.value).isValid() || (value.value && !dayjs(value.value, format.value, true).isValid()))\n return;\n\n if (timeArr.includes(col)) {\n // @ts-ignore\n // TODO: 这里不好改,要改的话需要分类型处理\n if (timeItemCanUsed(col, val)) formattedVal = dayjsValue.value[col]?.(val).format(format.value);\n else formattedVal = dayjsValue.value.format(format.value);\n } else {\n const currentHour = dayjsValue.value.hour();\n if (meridiem === AM && currentHour >= 12) {\n formattedVal = dayjsValue.value.hour(currentHour - 12).format(format.value);\n } else if (meridiem === PM && currentHour < 12) {\n formattedVal = dayjsValue.value.hour(currentHour + 12).format(format.value);\n } else {\n formattedVal = dayjsValue.value.format(format.value);\n }\n }\n if (formattedVal !== value.value) props.onChange?.(formattedVal, e);\n\n if (distance !== scrollTop) {\n const scrollCtrl = colsRef[cols.value.indexOf(col)];\n\n if (!scrollCtrl || scrollCtrl.scrollTop === distance) return;\n\n scrollCtrl.scrollTo?.({\n top: distance,\n behavior: 'smooth',\n });\n }\n };\n\n const scrollToTime = (\n col: EPickerCols,\n time: number | string,\n idx: number,\n behavior: 'auto' | 'smooth' = 'auto',\n ) => {\n const distance = getScrollDistance(col, time);\n const scrollCtrl = colsRef[idx];\n if (!scrollCtrl || scrollCtrl.scrollTop === distance || !timeItemCanUsed(col, time)) return;\n\n scrollCtrl.scrollTo?.({\n top: distance,\n behavior,\n });\n };\n\n const handleTimeItemClick = (col: EPickerCols, el: string | number, idx: number, e: MouseEvent) => {\n if (!timeItemCanUsed(col, el)) return;\n if (timeArr.includes(col)) {\n if (\n col === EPickerCols.hour &&\n dayjsValue.value.format('a') === PM &&\n cols.value.includes(EPickerCols.meridiem)\n ) {\n // eslint-disable-next-line no-param-reassign\n el = Number(el) + 12;\n }\n scrollToTime(col, el, idx, 'smooth');\n } else {\n const currentHour = dayjsValue.value.hour();\n if (el === AM && currentHour >= 12) {\n props.onChange?.(dayjsValue.value.hour(currentHour - 12).format(format.value), e);\n } else if (el === PM && currentHour < 12) {\n props.onChange?.(dayjsValue.value.hour(currentHour + 12).format(format.value), e);\n }\n }\n };\n\n // update each columns scroll distance\n const updateTimeScrollPos = (isAutoScroll = false) => {\n const behavior = value.value && !isAutoScroll ? 'smooth' : 'auto';\n const isStepsSet = !!steps.value.filter((step) => Number(step) > 1).length;\n nextTick(() => {\n cols.value.forEach((col: EPickerCols, idx: number) => {\n if (!isStepsSet || (isStepsSet && value.value)) {\n // 如果没有设置大于1的steps或设置了大于1的step 正常处理滚动\n scrollToTime(\n col,\n // @ts-ignore\n // TODO: 这里不好改,要改的话需要分类型处理\n timeArr.includes(col) ? dayjsValue.value[col]?.() : dayjsValue.value.format('a'),\n idx,\n behavior,\n );\n } else {\n // 否则初始化到每列第一个选项\n scrollToTime(col, getColList(col)?.[0], idx, behavior);\n }\n });\n });\n\n props.resetTriggerScroll();\n };\n\n const isCurrent = (col: EPickerCols, colItem: string | number) => {\n let colVal: number;\n if (col === EPickerCols.meridiem) {\n const currentMeridiem = dayjsValue.value.format('a');\n return currentMeridiem === colItem;\n }\n colVal = dayjsValue.value[col]?.();\n if (col === EPickerCols.hour && /[h]{1}/.test(format.value)) {\n colVal %= 12;\n }\n return colVal === Number(colItem);\n };\n\n return () => (\n
    \n
    \n {/* 渲染遮罩层 */}\n {cols.value.map?.((col, idx) => (\n
    \n ))}\n
    \n {/* 渲染实际滚动列 */}\n {cols.value.map?.((col, idx) => (\n (colsRef[idx] = el as HTMLElement)}\n class={`${COMPONENT_NAME.value}-body-scroll`}\n onScroll={debounce((e) => handleScroll(col, idx, e), 50)}\n >\n {getColList(col).map((el) => (\n handleTimeItemClick(col, el, idx, e)}\n >\n {/* eslint-disable-next-line no-nested-ternary */}\n {timeArr.includes(col)\n ? TWELVE_HOUR_FORMAT.test(format.value) && col === EPickerCols.hour && el === '00'\n ? '12'\n : el\n : globalConfig.value[el === AM ? 'anteMeridiem' : 'postMeridiem']}\n \n ))}\n \n ))}\n
    \n );\n },\n});\n","import { defineComponent, toRefs, computed, ref, onMounted, nextTick, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { isUndefined } from 'lodash-es';\n\nimport { DEFAULT_STEPS, DEFAULT_FORMAT } from '@tdesign/common-js/time-picker/const';\nimport { panelProps } from './props';\nimport SinglePanel from './single-panel';\nimport TButton from '../../button/button';\nimport { useConfig, usePrefixClass } from '../../hooks/useConfig';\nimport { TimePickerValue, TimeRangeValue } from '../type';\nimport log from '@tdesign/common-js/log/index';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimePickerPanel',\n props: {\n ...panelProps(),\n isFooterDisplay: Boolean,\n handleConfirmClick: Function,\n onChange: Function,\n },\n setup(props) {\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker__panel');\n const { steps, isFooterDisplay, isShowPanel } = toRefs(props);\n const triggerScroll = ref(false);\n const panelRef = ref();\n const showNowTimeBtn = computed(() => !!steps.value.filter((step) => Number(step) > 1).length);\n\n const defaultValue = computed(() => {\n const isStepsSet = showNowTimeBtn.value;\n const formattedValue = dayjs(props.value, props.format);\n if (props.value && formattedValue.isValid()) {\n return formattedValue.format(props.format);\n }\n\n if (isStepsSet) {\n return dayjs().hour(0).minute(0).second(0).format(props.format);\n }\n return dayjs().hour(0).minute(0).second(0).format(props.format);\n });\n\n const panelColUpdate = () => {\n nextTick(() => {\n triggerScroll.value = true;\n });\n };\n\n const resetTriggerScroll = () => {\n triggerScroll.value = false;\n };\n const handlePresetClick = (\n presetValue: TimePickerValue | (() => TimePickerValue) | TimeRangeValue | (() => TimeRangeValue),\n ) => {\n const presetVal = typeof presetValue === 'function' ? presetValue() : presetValue;\n if (typeof props.activeIndex === 'number') {\n if (Array.isArray(presetVal)) {\n props.onChange?.(presetVal[props.activeIndex]);\n } else {\n log.error('TimePicker', `preset: ${props.presets} 预设值必须是数组!`);\n }\n } else {\n props.onChange?.(presetVal);\n }\n };\n\n const renderFooter = () => {\n if (!isUndefined(props.presets))\n return Object.keys(props.presets || []).map((key: string) => (\n handlePresetClick(props.presets[key])}\n >\n {key}\n \n ));\n return !showNowTimeBtn.value ? (\n props.onChange?.(dayjs().format(props.format))}\n >\n {globalConfig.value.now}\n \n ) : null;\n };\n\n // 渲染后执行update 使面板滚动至当前时间位置\n onMounted(() => {\n panelColUpdate();\n });\n\n watch(\n () => isShowPanel.value,\n () => {\n panelColUpdate();\n },\n );\n\n return () => (\n
    \n
    \n \n
    \n {isFooterDisplay.value ? (\n \n ) : null}\n
    \n );\n },\n});\n","import { defineComponent, PropType } from 'vue';\nimport { usePrefixClass } from '../../../hooks/useConfig';\nimport type { TdDatePickerProps } from '../../type';\n\nimport TDateHeader from '../base/Header';\nimport TDateTable from '../base/Table';\nimport TTimePickerPanel from '../../../time-picker/panel/time-picker-panel';\nimport { getDefaultFormat } from '@tdesign/common-js/date-picker/format';\n\nexport default defineComponent({\n name: 'TPanelContent',\n props: {\n mode: String as PropType,\n format: String as PropType,\n enableTimePicker: Boolean as PropType,\n timePickerProps: {\n type: Object as PropType,\n default: () => ({}),\n },\n year: Number,\n month: Number,\n tableData: Array,\n time: String,\n multiple: Boolean,\n firstDayOfWeek: Number,\n partial: String,\n popupVisible: Boolean,\n onYearChange: Function,\n onMonthChange: Function,\n onJumperClick: Function,\n onCellMouseEnter: Function,\n onCellClick: Function,\n onCellMouseLeave: Function,\n onTimePickerChange: Function,\n value: [String, Number, Array, Date],\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__panel');\n\n const { timeFormat } = getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n });\n\n const defaultTimeValue = '00:00:00';\n\n return () => (\n
    \n
    \n props.onMonthChange?.(val, { partial: props.partial })}\n onYearChange={(val: number) => props.onYearChange?.(val, { partial: props.partial })}\n onJumperClick={({ trigger }: { trigger: string }) =>\n props.onJumperClick?.({ trigger, partial: props.partial })\n }\n />\n\n \n props.onCellClick?.(date, { e, partial: props.partial })\n }\n onCellMouseEnter={(date: Date) => props.onCellMouseEnter?.(date, { partial: props.partial })}\n onCellMouseLeave={props.onCellMouseLeave}\n />\n
    \n\n {props.enableTimePicker && (\n
    \n
    {props.time || defaultTimeValue}
    \n \n
    \n )}\n
    \n );\n },\n});\n","import { defineComponent, computed, PropType } from 'vue';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\nimport TButton from '../../../button';\n\nimport type { TdDatePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TDatePickerTable',\n props: {\n enableTimePicker: Boolean,\n presetsPlacement: String,\n presets: Object,\n needConfirm: {\n type: Boolean,\n default: true,\n },\n selectedValue: [String, Number, Array, Date] as PropType,\n onPresetClick: Function,\n onConfirmClick: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__footer');\n const presetsClass = usePrefixClass('date-picker__presets');\n const { t, globalConfig } = useConfig('datePicker');\n\n const footerClass = computed(() => [COMPONENT_NAME.value, `${COMPONENT_NAME.value}--${props.presetsPlacement}`]);\n\n return () => (\n
    \n {\n
    \n {props.presets &&\n Object.keys(props.presets).map((key: string) => (\n \n props.onPresetClick?.(props.presets[key], { e, preset: { [key]: props.presets[key] } })\n }\n >\n {key}\n \n ))}\n
    \n }\n {props.enableTimePicker && props.needConfirm && (\n props.onConfirmClick?.({ e })}\n >\n {t(globalConfig.value.confirm)}\n \n )}\n
    \n );\n },\n});\n","import { defineComponent, PropType, computed } from 'vue';\nimport TDateFooter from '../base/Footer';\n\nimport type { TdDatePickerProps, TdDateRangePickerProps } from '../../type';\n\nexport default defineComponent({\n name: 'TExtraContent',\n props: {\n presets: Object as PropType,\n enableTimePicker: Boolean as PropType,\n presetsPlacement: String as PropType,\n needConfirm: { type: Boolean, default: true },\n onPresetClick: Function,\n onConfirmClick: Function,\n selectedValue: [String, Number, Array, Date] as PropType,\n },\n setup(props) {\n // 默认为 true\n const showPanelFooter = computed(() => (props.enableTimePicker && props.needConfirm) || props.presets);\n\n return () =>\n showPanelFooter.value ? (\n \n ) : null;\n },\n});\n","import { isObject } from 'lodash-es';\nimport dayjs from 'dayjs';\nimport type { TdDatePickerProps, TdDateRangePickerProps } from '../type';\nimport { isEnabledDate } from '@tdesign/common-js/date-picker/utils';\n\nexport interface disableDateProps {\n disableDate?: TdDatePickerProps['disableDate'] | TdDateRangePickerProps['disableDate'];\n format?: TdDatePickerProps['format'];\n mode?: TdDatePickerProps['mode'];\n start?: Date;\n end?: Date;\n}\n\nexport function useDisableDate(props: disableDateProps) {\n const { disableDate, format, mode, start, end } = props;\n\n return {\n disableDate: (value: Date) => !isEnabledDate({ disableDate, format, mode, value }),\n minDate:\n isObject(disableDate) && 'before' in disableDate\n ? new Date(dayjs(disableDate.before).startOf('day').format())\n : start,\n maxDate:\n isObject(disableDate) && 'after' in disableDate ? new Date(dayjs(disableDate.after).endOf('day').format()) : end,\n };\n}\n","import { ref, toRefs, watchEffect, computed } from 'vue';\nimport useVModel from '../../hooks/useVModel';\nimport { isArray } from 'lodash-es';\n\nimport { TdDateRangePickerProps } from '../type';\nimport {\n isValidDate,\n formatDate,\n formatTime,\n getDefaultFormat,\n initYearMonthTime,\n extractTimeFormat,\n} from '@tdesign/common-js/date-picker/format';\n\nexport function useRangeValue(props: TdDateRangePickerProps) {\n const { value: valueFromProps, modelValue } = toRefs(props);\n\n const [value, onChange] = useVModel(valueFromProps, modelValue, props.defaultValue, props.onChange);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n if (props.enableTimePicker) {\n if (!extractTimeFormat(formatRef.value.format))\n console.error(`format: ${formatRef.value.format} 不规范,包含时间选择必须要有时间格式化 HH:mm:ss`);\n }\n\n // warning invalid value\n if (!isArray(value.value)) {\n console.error(`typeof value: ${value.value} must be Array!`);\n } else if (!isValidDate(value.value, formatRef.value.format)) {\n console.error(\n `value: ${value.value} is invalid dateTime! Check whether the value is consistent with format: ${formatRef.value.format}`,\n );\n }\n\n const isFirstValueSelected = ref(false); // 记录面板点击次数,两次后才自动关闭\n const time = ref(\n initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n timeFormat: formatRef.value.timeFormat,\n }).time,\n );\n const month = ref(\n initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n enableTimePicker: props.enableTimePicker,\n }).month,\n );\n const year = ref(initYearMonthTime({ value: value.value, mode: props.mode, format: formatRef.value.format }).year);\n const cacheValue = ref(formatDate(value.value, { format: formatRef.value.format })); // 选择阶段预选状态\n\n // 输入框响应 value 变化\n watchEffect(() => {\n if (!value.value) {\n cacheValue.value = [];\n return;\n }\n if (!isValidDate(value.value, formatRef.value.format)) return;\n\n cacheValue.value = formatDate(value.value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n time.value = formatTime(\n value.value,\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ) as string[];\n });\n\n return {\n year,\n month,\n value,\n time,\n isFirstValueSelected,\n cacheValue,\n onChange,\n };\n}\n","import { ref, computed, watch } from 'vue';\nimport { CalendarIcon as TdCalendarIcon } from 'tdesign-icons-vue-next';\nimport { omit } from 'lodash-es';\n\nimport { useTNodeJSX } from '../../hooks/tnode';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport { usePrefixClass, useConfig } from '../../hooks/useConfig';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nimport { TdDateRangePickerProps, DateValue, DateRangePickerPartial } from '../type';\nimport { isValidDate, formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useRangeValue } from './useRangeValue';\n\nexport const PARTIAL_MAP: Record<'first' | 'second', DateRangePickerPartial> = { first: 'start', second: 'end' };\n\nexport function useRange(props: TdDateRangePickerProps) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker');\n const { globalConfig } = useConfig('datePicker');\n const { CalendarIcon } = useGlobalIcon({ CalendarIcon: TdCalendarIcon });\n const renderTNodeJSX = useTNodeJSX();\n\n const isMountedRef = ref(false);\n const inputRef = ref();\n\n const { value, onChange, time, month, year, cacheValue, isFirstValueSelected } = useRangeValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n const popupVisible = ref(false);\n const isHoverCell = ref(false);\n const activeIndex = ref<0 | 1>(0); // 确定当前选中的输入框序号\n const inputValue = ref(formatDate(props.value, { format: formatRef.value.format })); // 未真正选中前可能不断变更输入框的内容\n const isReadOnly = useReadonly();\n\n // input 设置\n const rangeInputProps = computed(() => ({\n ...props.rangeInputProps,\n size: props.size,\n ref: inputRef,\n borderless: props.borderless,\n clearable: props.clearable,\n prefixIcon: () => renderTNodeJSX('prefixIcon'),\n readonly: isReadOnly.value || !props.allowInput,\n separator: props.separator || globalConfig.value.rangeSeparator,\n placeholder:\n props.placeholder || (globalConfig.value.placeholder as { [key in typeof props.mode]: string })[props.mode],\n activeIndex: popupVisible.value ? activeIndex.value : undefined,\n suffixIcon: () => {\n return renderTNodeJSX('suffixIcon') || ;\n },\n class: {\n [`${COMPONENT_NAME.value}__input--placeholder`]: isHoverCell.value,\n },\n onClick: ({ position }: any) => {\n activeIndex.value = position === 'first' ? 0 : 1;\n },\n onClear: ({ e }: { e: MouseEvent }) => {\n e.stopPropagation();\n popupVisible.value = false;\n onChange?.([], { dayjsValue: [], trigger: 'clear' });\n },\n onBlur: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n props.onBlur?.({ value: newVal, partial: PARTIAL_MAP[position], e });\n },\n onFocus: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n props.onFocus?.({ value: newVal, partial: PARTIAL_MAP[position], e });\n activeIndex.value = position === 'first' ? 0 : 1;\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onChange: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n inputValue.value = newVal;\n\n // 跳过不符合格式化的输入框内容\n if (!isValidDate(newVal, formatRef.value.format)) return;\n cacheValue.value = newVal;\n const newYear: Array = [];\n const newMonth: Array = [];\n const newTime: Array = [];\n newVal.forEach((v) => {\n newYear.push(parseToDayjs(v, formatRef.value.format).year());\n newMonth.push(parseToDayjs(v, formatRef.value.format).month());\n newTime.push(parseToDayjs(v, formatRef.value.format).format(formatRef.value.timeFormat));\n });\n year.value = newYear;\n month.value = newMonth;\n time.value = newTime;\n },\n onEnter: (newVal: string[]) => {\n if (!isValidDate(newVal, formatRef.value.format) && !isValidDate(value.value, formatRef.value.format)) return;\n\n popupVisible.value = false;\n if (isValidDate(newVal, formatRef.value.format)) {\n onChange?.(\n formatDate(newVal, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: newVal.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'enter',\n },\n );\n } else if (isValidDate(value.value, formatRef.value.format)) {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n } else {\n inputValue.value = [];\n }\n },\n }));\n\n // popup 设置\n const popupProps = computed(() => ({\n expandAnimation: true,\n ...omit(props.popupProps, 'on-visible-change'),\n overlayInnerStyle: props.popupProps?.overlayInnerStyle ?? { width: 'auto' },\n overlayClassName: [props.popupProps?.overlayClassName, `${COMPONENT_NAME.value}__panel-container`],\n onVisibleChange: (visible: boolean, context: any) => {\n if (isReadOnly.value) return;\n\n // 这里劫持了进一步向 popup 传递的 onVisibleChange 事件,为了保证可以在 Datepicker 中使用 popupProps.onVisibleChange,故此处理\n props.popupProps?.onVisibleChange?.(visible, context);\n // TODO\n // @ts-ignore types only declare onVisibleChange,but not declare on-visible-change\n props.popupProps?.['on-visible-change']?.(visible, context);\n\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n const indexMap = { 0: 'first', 1: 'second' };\n inputRef.value.focus({ position: indexMap[activeIndex.value] });\n popupVisible.value = true;\n return;\n }\n\n popupVisible.value = visible;\n },\n }));\n\n // 输入框响应 value 变化\n watch(\n value,\n (value) => {\n if (!value) {\n inputValue.value = [];\n return;\n }\n if (!isValidDate(value, formatRef.value.format)) return;\n\n inputValue.value = formatDate(value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n },\n {\n immediate: true,\n },\n );\n\n // activeIndex 变化自动 focus 对应输入框\n watch(\n activeIndex,\n (index) => {\n if (!isMountedRef.value) {\n isMountedRef.value = true;\n return;\n }\n if (!popupVisible.value) return;\n const indexMap = { 0: 'first', 1: 'second' };\n inputRef.value?.focus?.({ position: indexMap[index] });\n },\n {\n immediate: true,\n },\n );\n\n return {\n year,\n month,\n value,\n time,\n inputValue,\n popupVisible,\n rangeInputProps,\n popupProps,\n isHoverCell,\n activeIndex,\n isFirstValueSelected,\n cacheValue,\n onChange,\n };\n}\n","import { useConfig } from '../../hooks/useConfig';\n\nimport { getWeeks, getYears, getMonths, getQuarters, flagActive } from '@tdesign/common-js/date-picker/utils';\n\nexport function useTableData(props: any) {\n // 国际化文本初始化\n const { globalConfig } = useConfig('datePicker');\n\n const options = {\n minDate: props.minDate,\n maxDate: props.maxDate,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek ?? globalConfig.value.firstDayOfWeek,\n monthLocal: globalConfig.value.months as string[],\n quarterLocal: globalConfig.value.quarters as string[],\n showWeekOfYear: props.mode === 'week',\n dayjsLocale: globalConfig.value.dayjsLocale,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n };\n\n let data: Array = [];\n if (props.mode === 'date') {\n data = getWeeks({ year: props.year, month: props.month }, options);\n } else if (props.mode === 'week') {\n data = getWeeks({ year: props.year, month: props.month }, options);\n } else if (props.mode === 'quarter') {\n data = getQuarters(props.year, options);\n } else if (props.mode === 'month') {\n data = getMonths(props.year, options);\n } else if (props.mode === 'year') {\n data = getYears(props.year, options);\n }\n return flagActive(data, {\n start: props.start,\n end: props.end,\n hoverStart: props.hoverStart,\n hoverEnd: props.hoverEnd,\n type: props.mode,\n isRange: props.isRange,\n value: props.value,\n multiple: props.multiple,\n });\n}\n","import { defineComponent, PropType, computed } from 'vue';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\nimport TPanelContent from './PanelContent';\nimport TExtraContent from './ExtraContent';\nimport { getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useTableData, useDisableDate } from '../../hooks';\n\nimport type { TdDatePickerProps, DateMultipleValue, DateValue } from '../../type';\n\nexport default defineComponent({\n name: 'TSinglePanel',\n props: {\n disableDate: [Object, Array, Function] as PropType,\n mode: {\n type: String as PropType,\n default: 'date',\n },\n format: String as PropType,\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom',\n },\n value: [String, Number, Array, Date] as PropType,\n timePickerProps: Object as PropType,\n presets: Object as PropType,\n enableTimePicker: Boolean,\n firstDayOfWeek: Number,\n year: Number,\n month: Number,\n time: String,\n popupVisible: Boolean,\n multiple: Boolean,\n needConfirm: {\n type: Boolean,\n default: true,\n },\n onPanelClick: Function,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n onJumperClick: Function,\n onConfirmClick: Function,\n onPresetClick: Function,\n onYearChange: Function,\n onMonthChange: Function,\n onTimePickerChange: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker__panel');\n const { globalConfig } = useConfig('datePicker');\n\n const format = computed(\n () =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n })?.format,\n );\n\n const disableDateOptions = computed(() =>\n useDisableDate({\n format: format.value,\n mode: props.mode,\n disableDate: props.disableDate,\n }),\n );\n const tableData = computed(() =>\n useTableData({\n year: props.year,\n month: props.month,\n mode: props.mode,\n start: props.value\n ? parseToDayjs(\n props.multiple ? (props.value as DateMultipleValue)[0] : (props.value as DateValue),\n format.value,\n ).toDate()\n : undefined,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n multiple: props.multiple,\n value: props.value,\n ...disableDateOptions.value,\n }),\n );\n\n const panelContentProps = computed(() => ({\n format: format.value,\n value: props.value,\n mode: props.mode,\n year: props.year,\n month: props.month,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n tableData: tableData.value,\n popupVisible: props.popupVisible,\n multiple: props.multiple,\n enableTimePicker: props.enableTimePicker,\n timePickerProps: props.timePickerProps,\n time: props.time,\n onMonthChange: props.onMonthChange,\n onYearChange: props.onYearChange,\n onJumperClick: props.onJumperClick,\n onCellClick: props.onCellClick,\n onCellMouseEnter: props.onCellMouseEnter,\n onCellMouseLeave: props.onCellMouseLeave,\n onTimePickerChange: props.onTimePickerChange,\n }));\n\n const extraProps = computed(() => ({\n presets: props.presets,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n onPresetClick: props.onPresetClick,\n onConfirmClick: props.onConfirmClick,\n selectedValue: props.value,\n needConfirm: props.needConfirm,\n }));\n\n return () => (\n props.onPanelClick?.({ e })}\n >\n {['top', 'left'].includes(props.presetsPlacement) ? : null}\n \n {['bottom', 'right'].includes(props.presetsPlacement) ? : null}\n
    \n );\n },\n});\n","import { defineComponent, computed, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { isFunction } from 'lodash-es';\nimport { CalendarIcon as TdCalendarIcon } from 'tdesign-icons-vue-next';\n\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass, useConfig } from '../hooks/useConfig';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useSingle } from './hooks/useSingle';\nimport { parseToDayjs, getDefaultFormat, formatTime, formatDate } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj, covertToDate, isSame } from '@tdesign/common-js/date-picker/utils';\nimport props from './props';\nimport TSelectInput from '../select-input';\nimport TSinglePanel from './components/panel/SinglePanel';\nimport { useReadonly } from '../hooks/useReadonly';\n\nimport type { TdDatePickerProps, DateMultipleValue, DateValue } from './type';\nimport type { TagInputRemoveContext } from '../tag-input';\nimport { isDate } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TDatePicker',\n props,\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-picker');\n\n const {\n inputValue,\n popupVisible,\n inputProps,\n popupProps,\n isHoverCell,\n cacheValue,\n value,\n year,\n month,\n time,\n inputRef,\n onChange,\n } = useSingle(props);\n\n const disabled = useDisabled();\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('datePicker');\n const isReadOnly = useReadonly();\n const { CalendarIcon } = useGlobalIcon({ CalendarIcon: TdCalendarIcon });\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n const valueDisplayParams = computed(() => {\n return {\n value: value.value,\n displayValue: inputValue.value,\n };\n });\n\n watch(popupVisible, (visible) => {\n // 多选不考虑输入情况\n if (props.multiple) return;\n // 如果不需要确认,直接保存当前值\n if (!props.needConfirm && props.enableTimePicker && !visible) {\n const nextValue = formatDate(inputValue.value, {\n format: formatRef.value.format,\n });\n if (nextValue) {\n onChange?.(\n formatDate(inputValue.value, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(inputValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n } else {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n }\n }\n\n // 格式化 input 值\n const dateValue =\n // Date 属性、季度和周不再 parse,避免 dayjs 处理成 Invalid\n value.value && !isDate(value.value) && !['week', 'quarter'].includes(props.mode)\n ? covertToDate(value.value as string, formatRef.value?.valueType)\n : value.value;\n\n cacheValue.value = formatDate(dateValue, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n inputValue.value = formatDate(dateValue, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n\n // 面板展开重置数据\n if (visible) {\n year.value = parseToDayjs(value.value as DateValue, formatRef.value.valueType).year();\n month.value = parseToDayjs(value.value as DateValue, formatRef.value.format).month();\n time.value = formatTime(value.value, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n } else {\n isHoverCell.value = false;\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n if (props.multiple) return;\n\n isHoverCell.value = true;\n inputValue.value = formatDate(date, {\n format: formatRef.value.format,\n });\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n if (props.multiple) return;\n\n isHoverCell.value = false;\n inputValue.value = formatDate(cacheValue.value, {\n format: formatRef.value.format,\n });\n }\n\n // 日期点击\n function onCellClick(date: Date) {\n isHoverCell.value = false;\n // date 模式自动切换年月\n if (props.mode === 'date') {\n year.value = date.getFullYear();\n month.value = date.getMonth();\n }\n if (props.enableTimePicker) {\n cacheValue.value = formatDate(date, {\n format: formatRef.value.format,\n });\n } else {\n if (props.multiple) {\n const newDate = processDate(date);\n onChange(newDate, {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n });\n return;\n }\n\n onChange?.(\n formatDate(date, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n },\n );\n popupVisible.value = false;\n }\n\n props.onPick?.(date);\n }\n\n function processDate(date: Date) {\n let isSameDate: boolean;\n const currentValue = (value.value || []) as DateMultipleValue;\n const { dayjsLocale } = globalConfig.value;\n\n let currentDate: DateMultipleValue;\n if (props.mode !== 'week')\n isSameDate = currentValue.some((val) =>\n isSame(parseToDayjs(val, formatRef.value.format).toDate(), date, props.mode, dayjsLocale),\n );\n else {\n isSameDate = currentValue.some((val) => val === dayjs(date).locale(dayjsLocale).format(formatRef.value.format));\n }\n\n if (!isSameDate) {\n currentDate = currentValue.concat(\n formatDate(date, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }),\n );\n } else {\n currentDate = currentValue.filter(\n (val) =>\n formatDate(val, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }) !==\n formatDate(date, { format: formatRef.value.format, targetFormat: formatRef.value.valueType }),\n );\n }\n return currentDate;\n }\n\n function onTagRemoveClick(ctx: TagInputRemoveContext) {\n const removeDate = dayjs(ctx.item).toDate();\n const newDate = processDate(removeDate);\n onChange?.(newDate, {\n dayjsValue: parseToDayjs(removeDate, formatRef.value.format),\n trigger: 'tag-remove',\n });\n }\n\n function onTagClearClick({ e }: { e: MouseEvent }) {\n e.stopPropagation();\n popupVisible.value = false;\n onChange?.([], { dayjsValue: dayjs(), trigger: 'clear' });\n }\n\n // 头部快速切换\n function onJumperClick({ trigger }: { trigger: string }) {\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n\n const current = new Date(year.value, month.value);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n const nextYear = next.getFullYear();\n const nextMonth = next.getMonth();\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // timePicker 点击\n function onTimePickerChange(val: string) {\n time.value = val;\n\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n const currentDate = !dayjs(inputValue.value as string, formatRef.value.format).isValid()\n ? dayjs()\n : dayjs(inputValue.value as string, formatRef.value.format);\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n inputValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n cacheValue.value = formatDate(nextDate, {\n format: formatRef.value.format,\n });\n\n props.onPick?.(nextDate);\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = formatDate(inputValue.value, {\n format: formatRef.value.format,\n });\n if (nextValue) {\n props?.onConfirm?.({ date: dayjs(nextValue as string).toDate(), e });\n onChange?.(\n formatDate(inputValue.value, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(inputValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n } else {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n }\n popupVisible.value = false;\n }\n\n // 预设\n function onPresetClick(presetValue: DateValue | (() => DateValue)) {\n const presetVal = isFunction(presetValue) ? presetValue() : presetValue;\n onChange?.(\n formatDate(presetVal, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(presetVal, formatRef.value.format),\n trigger: 'preset',\n },\n );\n // 更新到 input,避免 needConfirm 导致值被覆盖\n inputValue.value = formatDate(presetVal, {\n format: formatRef.value.format,\n });\n popupVisible.value = false;\n }\n\n function onYearChange(nextYear: number) {\n year.value = nextYear;\n }\n\n function onMonthChange(nextMonth: number) {\n month.value = nextMonth;\n }\n\n const panelProps = computed(() => ({\n value: cacheValue.value as string,\n year: year.value,\n month: month.value,\n format: formatRef.value.format,\n mode: props.mode,\n presets: props.presets,\n multiple: props.multiple,\n time: props.multiple ? '' : time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: popupVisible.value,\n needConfirm: props.needConfirm,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n onPanelClick: () => inputRef.value?.focus?.(),\n }));\n\n return () => (\n
    \n renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n needConfirm={props.needConfirm}\n {...(props.selectInputProps as TdDatePickerProps['selectInputProps'])}\n panel={() => }\n tagInputProps={{\n onRemove: onTagRemoveClick,\n }}\n onClear={onTagClearClick}\n prefixIcon={() => renderTNodeJSX('prefixIcon')}\n suffixIcon={() => renderTNodeJSX('suffixIcon') || }\n />\n
    \n );\n },\n});\n","import { ref, computed, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { omit } from 'lodash-es';\n\nimport { useDisabled } from '../../hooks/useDisabled';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { TdDatePickerProps, DateValue } from '../type';\nimport {\n isValidDate,\n formatDate,\n formatTime,\n getDefaultFormat,\n parseToDayjs,\n} from '@tdesign/common-js/date-picker/format';\nimport { useSingleValue } from './useSingleValue';\nimport { useReadonly } from '../../hooks/useReadonly';\n\nexport function useSingle(props: TdDatePickerProps) {\n const COMPONENT_NAME = usePrefixClass('date-picker');\n const disabled = useDisabled();\n\n const inputRef = ref();\n const isReadOnly = useReadonly();\n\n const { value, onChange, time, month, year, cacheValue } = useSingleValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.multiple ? false : props.enableTimePicker,\n }),\n );\n\n const popupVisible = ref(false);\n const isHoverCell = ref(false);\n // 未真正选中前可能不断变更输入框的内容\n const inputValue = ref(\n props.multiple\n ? formatDate(value.value, { format: formatRef.value.format }) || []\n : formatDate(value.value, { format: formatRef.value.format }),\n );\n\n // input 设置\n const inputProps = computed(() => {\n const defaultInputProps = {\n ...props.inputProps,\n size: props.size,\n ref: inputRef,\n readonly: isReadOnly.value || !props.allowInput,\n class: [\n {\n [`${COMPONENT_NAME.value}__input--placeholder`]: isHoverCell.value,\n },\n ],\n onClear: (context: { e: InputEvent }) => {\n context?.e?.stopPropagation();\n popupVisible.value = false;\n onChange?.('', { dayjsValue: dayjs(), trigger: 'clear' });\n },\n };\n return props.multiple\n ? defaultInputProps\n : {\n ...defaultInputProps,\n onBlur: (val: string, context: { e: FocusEvent }) => {\n props.onBlur?.({ value: val, e: context.e });\n },\n onFocus: (_: string, { e }: { e: FocusEvent }) => {\n props.onFocus?.({ value: value.value, e });\n },\n onChange: (val: string) => {\n // 输入事件\n inputValue.value = val;\n\n // 跳过不符合格式化的输入框内容\n if (!isValidDate(val, formatRef.value.format)) return;\n cacheValue.value = val;\n const newMonth = parseToDayjs(val, formatRef.value.format).month();\n const newYear = parseToDayjs(val, formatRef.value.format).year();\n const newTime = formatTime(val, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n !Number.isNaN(newYear) && (year.value = newYear);\n !Number.isNaN(newMonth) && (month.value = newMonth);\n !Number.isNaN(newTime) && (time.value = newTime);\n },\n onEnter: (val: string) => {\n if (!val) {\n onChange('', { dayjsValue: dayjs(), trigger: 'enter' });\n popupVisible.value = false;\n return;\n }\n\n if (!isValidDate(val, formatRef.value.format) && !isValidDate(value.value, formatRef.value.format)) return;\n\n popupVisible.value = false;\n if (isValidDate(val, formatRef.value.format)) {\n onChange?.(\n formatDate(val, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(val, formatRef.value.format),\n trigger: 'enter',\n },\n );\n } else if (isValidDate(value.value, formatRef.value.format)) {\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.format,\n });\n } else {\n inputValue.value = '';\n }\n },\n };\n });\n\n // popup 设置\n const popupProps = computed(() => ({\n expandAnimation: true,\n ...omit(props.popupProps, 'on-visible-change'),\n disabled: disabled.value,\n overlayInnerStyle: props.popupProps?.overlayInnerStyle ?? { width: 'auto' },\n overlayClassName: [props.popupProps?.overlayClassName, `${COMPONENT_NAME.value}__panel-container`],\n onVisibleChange: (visible: boolean, context: any) => {\n if (disabled.value) return;\n // 这里劫持了进一步向 popup 传递的 onVisibleChange 事件,为了保证可以在 Datepicker 中使用 popupProps.onVisibleChange,故此处理\n props.popupProps?.onVisibleChange?.(visible, context);\n // TODO\n // @ts-ignore types only declare onVisibleChange,but not declare on-visible-change\n props.popupProps?.['on-visible-change']?.(visible, context);\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n popupVisible.value = true;\n return;\n }\n popupVisible.value = visible;\n },\n }));\n\n watch(value, (value) => {\n if (!value) {\n inputValue.value = '';\n return;\n }\n if (!isValidDate(value, formatRef.value.format)) return;\n\n inputValue.value = formatDate(value, {\n format: formatRef.value.format,\n });\n });\n\n return {\n year,\n month,\n value,\n time,\n inputValue,\n popupVisible,\n inputProps,\n popupProps,\n inputRef,\n cacheValue,\n isHoverCell,\n onChange,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDatePickerPanelProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: String,\n default: '00:00:00',\n },\n /** 点击日期单元格时触发 */\n onCellClick: Function as PropType,\n /** 选中值发生变化时触发。参数 `context.trigger` 表示触发当前事件的来源,不同的模式触发来源也会不同 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 月份切换发生变化时触发 */\n onMonthChange: Function as PropType,\n /** 点击面板时触发 */\n onPanelClick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n /** 时间切换发生变化时触发 */\n onTimeChange: Function as PropType,\n /** 年份切换发生变化时触发 */\n onYearChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport dayjs from 'dayjs';\nimport { isFunction } from 'lodash-es';\nimport { useSingleValue } from './hooks/useSingleValue';\nimport { formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport type {\n DateValue,\n TdDatePickerPanelProps,\n DatePickerYearChangeTrigger,\n DatePickerMonthChangeTrigger,\n} from './type';\n\nimport datePickerPanelProps from './date-picker-panel-props';\nimport datePickerProps from './props';\n\nimport TSinglePanel from './components/panel/SinglePanel';\n\nexport default defineComponent({\n name: 'TDatePickerPanel',\n props: {\n value: datePickerProps.value,\n defaultValue: datePickerProps.defaultValue,\n modelValue: datePickerProps.modelValue,\n disabled: datePickerProps.disabled,\n disableDate: datePickerProps.disableDate,\n enableTimePicker: datePickerProps.enableTimePicker,\n firstDayOfWeek: datePickerProps.firstDayOfWeek,\n format: datePickerProps.format,\n mode: datePickerProps.mode,\n presets: datePickerProps.presets,\n presetsPlacement: datePickerProps.presetsPlacement,\n timePickerProps: datePickerProps.timePickerProps,\n ...datePickerPanelProps,\n },\n\n setup(props: TdDatePickerPanelProps) {\n const { cacheValue, value, year, month, time, onChange } = useSingleValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent }) {\n props.onCellClick?.({ date, e });\n\n // date 模式自动切换年月\n if (props.mode === 'date') {\n year.value = date.getFullYear();\n month.value = date.getMonth();\n }\n if (props.enableTimePicker) {\n cacheValue.value = formatDate(date, { format: formatRef.value.format });\n } else {\n onChange?.(formatDate(date, { format: formatRef.value.format }) as DateValue, {\n dayjsValue: parseToDayjs(date, formatRef.value.format),\n trigger: 'pick',\n });\n }\n }\n\n // 头部快速切换\n function onJumperClick({ trigger }: { trigger: 'prev' | 'next' | 'current' }) {\n const triggerMap = {\n prev: 'arrow-previous',\n next: 'arrow-next',\n };\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n\n const current = new Date(year.value, month.value);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n const nextYear = next.getFullYear();\n const nextMonth = next.getMonth();\n\n if (year.value !== nextYear) {\n props.onYearChange?.({\n year: nextYear,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: trigger === 'current' ? 'today' : (`year-${triggerMap[trigger]}` as DatePickerYearChangeTrigger),\n });\n }\n if (month.value !== nextMonth) {\n props.onMonthChange?.({\n month: nextMonth,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: trigger === 'current' ? 'today' : (`month-${triggerMap[trigger]}` as DatePickerMonthChangeTrigger),\n });\n }\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // timepicker 点击\n function onTimePickerChange(val: string) {\n time.value = val;\n\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n const currentDate = !dayjs(cacheValue.value as string, formatRef.value.format).isValid()\n ? dayjs()\n : dayjs(cacheValue.value as string, formatRef.value.format);\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n cacheValue.value = formatDate(nextDate, { format: formatRef.value.format });\n\n props.onTimeChange?.({\n time: val,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'time-hour',\n });\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n onChange?.(\n formatDate(cacheValue.value, {\n format: formatRef.value.format,\n }) as DateValue,\n {\n dayjsValue: parseToDayjs(cacheValue.value as string, formatRef.value.format),\n trigger: 'confirm',\n },\n );\n props.onConfirm?.({ date: dayjs(cacheValue.value as string).toDate(), e });\n }\n\n // 预设\n function onPresetClick(preset: any, context: any) {\n const presetVal = isFunction(preset) ? preset() : preset;\n onChange?.(formatDate(presetVal, { format: formatRef.value.format }) as DateValue, {\n dayjsValue: parseToDayjs(presetVal, formatRef.value.format),\n trigger: 'preset',\n });\n props.onPresetClick?.(context);\n }\n\n function onYearChange(nextYear: number) {\n year.value = nextYear;\n\n props.onYearChange?.({\n year: year.value,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'year-select',\n });\n }\n\n function onMonthChange(nextMonth: number) {\n month.value = nextMonth;\n\n props.onMonthChange?.({\n month: month.value,\n date: dayjs(value.value as DateValue).toDate(),\n trigger: 'month-select',\n });\n }\n\n const panelProps = computed(() => ({\n value: cacheValue.value as string,\n year: year.value,\n month: month.value,\n mode: props.mode,\n format: formatRef.value.format,\n presets: props.presets,\n time: time.value as string,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: true,\n panelClick: props.onPanelClick,\n onCellClick,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n }));\n\n return () => ;\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDateRangePickerProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许输入日期 */\n allowInput: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 默认的日期选择交互是根据点击前后日期的顺序来决定并且会加以限制。比如:用户先点击开始时间输入框,选择了一个日期例如2020-05-15,紧接着交互会自动将焦点跳到结束日期输入框,等待用户选择结束时间。此时用户只能选择大于2020-05-15的日期(之前的日期会被灰态禁止点击,限制用户的点击)。当该值传递`true`时,则取消该限制 */\n cancelRangeSelectLimit: Boolean,\n /** 是否显示清除按钮 */\n clearable: Boolean,\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: Array as PropType,\n default: (): TdDateRangePickerProps['defaultTime'] => ['00:00:00', '23:59:59'],\n },\n /** 禁用日期,示例:['A', 'B'] 表示日期 A 和日期 B 会被禁用。{ from: 'A', to: 'B' } 表示在 A 到 B 之间的日期会被禁用。{ before: 'A', after: 'B' } 表示在 A 之前和在 B 之后的日期都会被禁用。其中 A = '2021-01-01',B = '2021-02-01'。值类型为 Function 则表示返回值为 true 的日期会被禁用 */\n disableDate: {\n type: [Object, Array, Function] as PropType,\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示时间选择 */\n enableTimePicker: Boolean,\n /** 第一天从星期几开始 */\n firstDayOfWeek: {\n type: Number,\n validator(val: TdDateRangePickerProps['firstDayOfWeek']): boolean {\n if (!val) return true;\n return [1, 2, 3, 4, 5, 6, 7].includes(val);\n },\n },\n /** 用于格式化日期,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: '',\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 选择器模式 */\n mode: {\n type: String as PropType,\n default: 'date' as TdDateRangePickerProps['mode'],\n validator(val: TdDateRangePickerProps['mode']): boolean {\n if (!val) return true;\n return ['year', 'quarter', 'month', 'week', 'date'].includes(val);\n },\n },\n /** 决定在日期时间区间选择器的场景下是否需要点击确认按钮才完成选择动作,默认为 `true` */\n needConfirm: {\n type: Boolean,\n default: true,\n },\n /** 在开始日期选中之前,面板是否显示预选状态,即是否高亮预选日期 */\n panelPreselection: {\n type: Boolean,\n default: true,\n },\n /** 占位符,值为数组表示可分别为开始日期和结束日期设置占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n },\n /** 透传给 popup 组件的参数 */\n popupProps: {\n type: Object as PropType,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 预设快捷日期选择,示例:{ '特定日期范围': ['2021-01-01', '2022-01-01'], '本月': [dayjs().startOf('month'), dayjs().endOf('month')] } */\n presets: {\n type: Object as PropType,\n },\n /** 预设面板展示区域(包含确定按钮) */\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom' as TdDateRangePickerProps['presetsPlacement'],\n validator(val: TdDateRangePickerProps['presetsPlacement']): boolean {\n if (!val) return true;\n return ['left', 'top', 'right', 'bottom'].includes(val);\n },\n },\n /** 透传给范围输入框 RangeInput 组件的参数 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 日期分隔符,支持全局配置,默认为 '-' */\n separator: {\n type: String,\n default: '',\n },\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdDateRangePickerProps['size'],\n validator(val: TdDateRangePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdDateRangePickerProps['status'],\n validator(val: TdDateRangePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 透传 TimePicker 组件属性 */\n timePickerProps: {\n type: Object as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdDateRangePickerProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdDateRangePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdDateRangePickerProps['defaultValue'] => [],\n },\n /** 用于格式化日期的值,仅支持部分格式,时间戳、日期等。⚠️ `YYYYMMDD` 这种格式不支持,请勿使用,如果希望支持可以给 `dayjs` 提个 PR。注意和 `format` 的区别,`format` 仅用于处理日期在页面中呈现的格式 */\n valueType: {\n type: String as PropType,\n validator(val: TdDateRangePickerProps['valueType']): boolean {\n if (!val) return true;\n return [\n 'time-stamp',\n 'Date',\n 'YYYY',\n 'YYYY-MM',\n 'YYYY-MM-DD',\n 'YYYY-MM-DD HH',\n 'YYYY-MM-DD HH:mm',\n 'YYYY-MM-DD HH:mm:ss',\n 'YYYY-MM-DD HH:mm:ss:SSS',\n ].includes(val);\n },\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框数据发生变化时触发,参数 input 表示输入内容,value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 选中日期时触发,可能是开始日期,也可能是结束日期,第二个参数可以区分是开始日期或是结束日期 */\n onPick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n};\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRangeInputProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 输入框高亮状态序号 */\n activeIndex: {\n type: Number,\n },\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否可清空 */\n clearable: Boolean,\n /** 是否禁用范围输入框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 指定输入框展示值的格式 */\n format: {\n type: [Array, Function] as PropType,\n },\n /** 透传 Input 输入框组件全部属性,数组第一项表示第一个输入框属性,第二项表示第二个输入框属性。示例:`[{ label: 'A', name: 'A-name' }, { label: 'B', name: 'B-name' }]` */\n inputProps: {\n type: [Object, Array] as PropType,\n },\n /** 左侧内容 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符,示例:'请输入' 或者 ['开始日期', '结束日期'] */\n placeholder: {\n type: [String, Array] as PropType,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 范围分隔符 */\n separator: {\n type: [String, Function] as PropType,\n default: '-' as TdRangeInputProps['separator'],\n },\n /** 输入框内容为空时,悬浮状态是否显示清空按钮,默认不显示 */\n showClearIconOnEmpty: Boolean,\n /** 输入框尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdRangeInputProps['size'],\n validator(val: TdRangeInputProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdRangeInputProps['status'],\n validator(val: TdRangeInputProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 范围输入框的值 */\n value: {\n type: Array as PropType,\n default: undefined as TdRangeInputProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdRangeInputProps['value'],\n },\n /** 范围输入框的值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdRangeInputProps['defaultValue'] => [],\n },\n /** 范围输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 范围输入框值发生变化时触发 */\n onChange: Function as PropType,\n /** 清空按钮点击时触发 */\n onClear: Function as PropType,\n /** 范围输入框点击时触发 */\n onClick: Function as PropType,\n /** 回车键按下时触发 */\n onEnter: Function as PropType,\n /** 范围输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 进入输入框时触发 */\n onMouseenter: Function as PropType,\n /** 离开输入框时触发 */\n onMouseleave: Function as PropType,\n};\n","import { defineComponent, ref, toRefs, computed, Fragment } from 'vue';\nimport { CloseCircleFilledIcon as TdCloseCircleFilledIcon } from 'tdesign-icons-vue-next';\n\nimport Input from '../input';\nimport props from './props';\nimport { RangeInputValue, RangeInputPosition } from './type';\n\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { isArray } from 'lodash-es';\n\nfunction calcArrayValue(value: unknown | Array) {\n if (isArray(value)) {\n return value;\n }\n return [value, value];\n}\n\nexport default defineComponent({\n name: 'TRangeInput',\n inheritAttrs: false,\n props,\n setup(props, { expose, attrs }) {\n const { value, modelValue } = toRefs(props);\n const { STATUS, SIZE } = useCommonClassName();\n const classPrefix = usePrefixClass();\n const COMPONENT_NAME = usePrefixClass('range-input');\n const { CloseCircleFilledIcon } = useGlobalIcon({ CloseCircleFilledIcon: TdCloseCircleFilledIcon });\n const renderTNodeJSX = useTNodeJSX();\n\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const focused = ref(false);\n const isHover = ref(false);\n const format = computed(() => calcArrayValue(props.format));\n const inputProps = computed(() => calcArrayValue(props.inputProps));\n const placeholder = computed(() => calcArrayValue(props.placeholder));\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const inputValue = computed(() => String((innerValue.value?.[0] || innerValue.value?.[1]) ?? ''));\n\n const isShowClearIcon = computed(\n () =>\n ((props.clearable && inputValue.value?.length && !isDisabled.value) || props.showClearIconOnEmpty) &&\n isHover.value,\n );\n\n const inputRefs = {\n firstInputRef: ref(),\n secondInputRef: ref(),\n };\n\n function handleClear(context: { e: MouseEvent }) {\n props.onClear?.(context);\n setInnerValue(['', ''], { ...context, trigger: 'clear', position: 'all' });\n }\n\n function handleEnter(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n props.onEnter?.(rangeValue, context);\n }\n\n function handleFocus(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n focused.value = true;\n props.onFocus?.(rangeValue, context);\n }\n\n function handleBlur(rangeValue: RangeInputValue, context: { e: MouseEvent }) {\n focused.value = false;\n props.onBlur?.(rangeValue, context);\n }\n\n function handleMouseEnter(e: MouseEvent) {\n isHover.value = true;\n props?.onMouseenter?.({ e });\n }\n\n function handleMouseLeave(e: MouseEvent) {\n isHover.value = false;\n props?.onMouseleave?.({ e });\n }\n\n expose({\n firstInputElement: inputRefs.firstInputRef.value,\n secondInputElement: inputRefs.secondInputRef.value,\n focus: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.focus();\n },\n blur: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.blur();\n },\n select: (options: any) => {\n const { position = 'first' } = options || {};\n inputRefs[`${position as Exclude}InputRef`].value?.select();\n },\n });\n\n return () => {\n const labelContent = renderTNodeJSX('label');\n const prefixIconContent = renderTNodeJSX('prefixIcon');\n const suffixContent = renderTNodeJSX('suffix');\n const suffixIconContent = renderTNodeJSX('suffixIcon');\n const tips = renderTNodeJSX('tips');\n const separator = renderTNodeJSX('separator');\n\n const RangeInputContent = (\n \n
    \n {prefixIconContent &&
    {prefixIconContent}
    }\n {labelContent ?
    {labelContent}
    : null}\n props.onClick?.({ e, position: 'first' })}\n onClear={() => setInnerValue([], { position: 'first', trigger: 'input' })}\n onEnter={(val, { e }) =>\n handleEnter([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onFocus={(val, { e }) =>\n handleFocus([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onBlur={(val, { e }) =>\n handleBlur([val, innerValue.value?.[1]], { e, position: 'first' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onChange={(val, { e }) =>\n setInnerValue([val, innerValue.value?.[1]], { e, position: 'first', trigger: 'input' })\n }\n {...inputProps.value[0]}\n />\n\n
    {separator}
    \n\n props.onClick?.({ e, position: 'second' })}\n onClear={() => setInnerValue([], { position: 'second', trigger: 'input' })}\n onEnter={(val, { e }) =>\n handleEnter([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onFocus={(val, { e }) =>\n handleFocus([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onBlur={(val, { e }) =>\n handleBlur([innerValue.value?.[0], val], { e, position: 'second' } as {\n e: any;\n position: RangeInputPosition;\n })\n }\n onChange={(val, { e }) =>\n setInnerValue([innerValue.value?.[0], val], { e, position: 'second', trigger: 'input' })\n }\n {...inputProps.value[1]}\n />\n {suffixContent ?
    {suffixContent}
    : null}\n {(suffixIconContent || isShowClearIcon.value) && (\n \n {isShowClearIcon.value ? (\n \n ) : (\n suffixIconContent\n )}\n \n )}\n
    \n \n );\n\n const tipsClasses = [\n `${COMPONENT_NAME.value}__tips`,\n `${classPrefix.value}-tips`,\n `${classPrefix.value}-is-${props.status}`,\n ];\n return (\n \n {RangeInputContent}\n {tips &&
    {tips}
    }\n
    \n );\n };\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRangeInputPopupProps } from '../range-input/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 是否禁用范围输入框,值为数组表示可分别控制某一个输入框是否禁用 */\n disabled: Boolean,\n /** 输入框的值 */\n inputValue: {\n type: Array as PropType,\n default: undefined as TdRangeInputPopupProps['inputValue'],\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: Array as PropType,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 下拉框内容,可完全自定义 */\n panel: {\n type: [String, Function] as PropType,\n },\n /** 透传 Popup 浮层组件全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: Boolean,\n /** 透传 RangeInput 组件全部属性 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdRangeInputPopupProps['status'],\n validator(val: TdRangeInputPopupProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n};\n","import { defineComponent, computed } from 'vue';\nimport Popup from '../popup';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport RangeInput from './range-input';\nimport props from './range-input-popup-props';\nimport { useOverlayInnerStyle } from '../select-input/hooks/useOverlayInnerStyle';\nimport { TdRangeInputPopupProps } from './type';\n\nexport default defineComponent({\n name: 'TRangeInputPopup',\n props,\n setup(props: TdRangeInputPopupProps) {\n const COMPONENT_NAME = usePrefixClass('range-input-popup');\n\n const { tOverlayInnerStyle, innerPopupVisible, onInnerPopupVisibleChange } = useOverlayInnerStyle(props);\n\n const popupClasses = computed(() => [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--visible`]: props.popupVisible || innerPopupVisible.value,\n },\n ]);\n\n return () => (\n
    \n \n \n \n
    \n );\n },\n});\n","import _RangeInput from './range-input';\nimport _RangeInputPopup from './range-input-popup';\nimport withInstall from '../utils/withInstall';\nimport { TdRangeInputProps, TdRangeInputPopupProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type RangeInputProps = TdRangeInputProps;\nexport type RangeInputPopupProps = TdRangeInputPopupProps;\n\nexport const RangeInput = withInstall(_RangeInput);\nexport const RangeInputPopup = withInstall(_RangeInputPopup);\n\nexport default RangeInput;\n","import { defineComponent, PropType, computed } from 'vue';\nimport { useConfig, usePrefixClass } from '../../../hooks/useConfig';\nimport TPanelContent from './PanelContent';\nimport TExtraContent from './ExtraContent';\nimport { TdDateRangePickerProps } from '../../type';\nimport { getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useTableData, useDisableDate } from '../../hooks';\n\nexport default defineComponent({\n name: 'TRangePanel',\n props: {\n hoverValue: Array as PropType>,\n activeIndex: Number,\n isFirstValueSelected: Boolean,\n disableDate: [Object, Array, Function] as PropType,\n mode: {\n type: String as PropType,\n default: 'date',\n },\n format: String as PropType,\n presetsPlacement: {\n type: String as PropType,\n default: 'bottom',\n },\n value: Array as PropType>,\n timePickerProps: Object as PropType,\n presets: Object as PropType,\n popupVisible: Boolean,\n enableTimePicker: Boolean,\n panelPreselection: Boolean,\n firstDayOfWeek: Number,\n year: Array as PropType>,\n month: Array as PropType>,\n time: Array as PropType>,\n cancelRangeSelectLimit: Boolean,\n onClick: Function,\n onCellClick: Function,\n onCellMouseEnter: Function,\n onCellMouseLeave: Function,\n onJumperClick: Function,\n onConfirmClick: Function,\n onPresetClick: Function,\n onYearChange: Function,\n onMonthChange: Function,\n onTimePickerChange: Function,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker__panel');\n const { globalConfig } = useConfig('datePicker');\n\n const format = computed(\n () =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n enableTimePicker: props.enableTimePicker,\n })?.format,\n );\n\n // 是否隐藏预选状态,只有 value 有值的时候需要隐藏\n const hidePreselection = !props.panelPreselection && props.value.length === 2;\n\n const disableDateOptions = computed(() =>\n useDisableDate({\n format: format.value,\n mode: props.mode,\n disableDate: props.disableDate,\n start:\n props.isFirstValueSelected && props.activeIndex === 1\n ? new Date(parseToDayjs(props.value[0], format.value, 'start').toDate().setHours(0, 0, 0))\n : undefined,\n end:\n props.isFirstValueSelected && props.activeIndex === 0\n ? new Date(parseToDayjs(props.value[1], format.value).toDate().setHours(23, 59, 59))\n : undefined,\n }),\n );\n\n const startTableData = computed(() =>\n useTableData({\n isRange: true,\n start: props.value[0] ? parseToDayjs(props.value[0], format.value).toDate() : undefined,\n end: props.value[1] ? parseToDayjs(props.value[1], format.value).toDate() : undefined,\n hoverStart:\n !hidePreselection && props.hoverValue[0]\n ? parseToDayjs(props.hoverValue[0], format.value).toDate()\n : undefined,\n hoverEnd:\n !hidePreselection && props.hoverValue[1]\n ? parseToDayjs(props.hoverValue[1], format.value).toDate()\n : undefined,\n year: props.year[0],\n month: props.month[0],\n mode: props.mode,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n ...disableDateOptions.value,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n }),\n );\n\n const endTableData = computed(() =>\n useTableData({\n isRange: true,\n start: props.value[0] ? parseToDayjs(props.value[0], format.value).toDate() : undefined,\n end: props.value[1] ? parseToDayjs(props.value[1], format.value).toDate() : undefined,\n hoverStart:\n !hidePreselection && props.hoverValue[0]\n ? parseToDayjs(props.hoverValue[0], format.value).toDate()\n : undefined,\n hoverEnd:\n !hidePreselection && props.hoverValue[1]\n ? parseToDayjs(props.hoverValue[1], format.value).toDate()\n : undefined,\n year: props.year[1],\n month: props.month[1],\n mode: props.mode,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n ...disableDateOptions.value,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n }),\n );\n\n const panelContentProps = computed(() => ({\n format: format.value,\n mode: props.mode,\n firstDayOfWeek: props.firstDayOfWeek || globalConfig.value.firstDayOfWeek,\n\n popupVisible: props.popupVisible,\n enableTimePicker: props.enableTimePicker,\n timePickerProps: props.timePickerProps,\n onMonthChange: props.onMonthChange,\n onYearChange: props.onYearChange,\n onJumperClick: props.onJumperClick,\n onCellClick: props.onCellClick,\n onCellMouseEnter: props.onCellMouseEnter,\n onCellMouseLeave: props.onCellMouseLeave,\n onTimePickerChange: props.onTimePickerChange,\n }));\n\n return () => (\n props.onClick?.({ e })}\n >\n {['top', 'left'].includes(props.presetsPlacement) ? (\n \n ) : null}\n
    \n {!props.enableTimePicker ? (\n [\n ,\n ,\n ]\n ) : (\n \n )}\n
    \n {['bottom', 'right'].includes(props.presetsPlacement) ? (\n \n ) : null}\n \n );\n },\n});\n","// 用于头部日期切换修正\nexport function dateCorrection(\n partialIndex: number,\n preYear: Array,\n preMonth: Array,\n onlyYearSelect: boolean,\n) {\n let nextYear = preYear;\n const nextMonth = preMonth;\n if (partialIndex === 0) {\n if (nextYear[1] <= nextYear[0]) {\n if (onlyYearSelect) nextYear[1] = nextYear[0] + 1;\n else {\n // eslint-disable-next-line prefer-destructuring\n nextYear[1] = nextYear[0];\n if (nextMonth[1] <= nextMonth[0]) {\n nextMonth[1] = nextMonth[0] + 1;\n if (nextMonth[1] === 12) {\n // 处理跨年的边界场景\n nextMonth[1] = 0;\n nextYear = [nextYear[0], nextYear[1] + 1];\n }\n }\n }\n }\n }\n\n // 保证左侧时间不大于右侧\n if (partialIndex === 1) {\n if (nextYear[0] >= nextYear[1]) {\n // 年/季度/月份场景下,头部只有年选择器,直接 - 1\n if (onlyYearSelect) nextYear[0] = nextYear[1] - 1;\n else {\n // eslint-disable-next-line prefer-destructuring\n nextYear[0] = nextYear[1];\n if (nextMonth[0] >= nextMonth[1]) {\n nextMonth[0] = nextMonth[1] - 1;\n if (nextMonth[0] === -1) {\n // 处理跨年的边界场景\n nextMonth[0] = 11;\n nextYear = [nextYear[0] - 1, nextYear[1]];\n }\n }\n }\n }\n }\n return { nextYear, nextMonth };\n}\n","import { defineComponent, computed, ref, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport props from './date-range-picker-props';\nimport { DateValue, DateRangePickerPartial } from './type';\n\nimport { RangeInputPopup as TRangeInputPopup } from '../range-input';\nimport TRangePanel from './components/panel/RangePanel';\nimport { useRange } from './hooks/useRange';\nimport {\n parseToDayjs,\n formatTime,\n formatDate,\n isValidDate,\n getDefaultFormat,\n initYearMonthTime,\n} from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { dateCorrection } from './utils';\nimport { useReadonly } from '../hooks/useReadonly';\n\nexport default defineComponent({\n name: 'TDateRangePicker',\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('date-range-picker');\n\n const {\n inputValue,\n popupVisible,\n rangeInputProps,\n popupProps,\n value,\n year,\n month,\n time,\n cacheValue,\n activeIndex,\n isHoverCell,\n isFirstValueSelected,\n onChange,\n } = useRange(props);\n\n const disabled = useDisabled();\n const isReadOnly = useReadonly();\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n enableTimePicker: props.enableTimePicker,\n format: props.format,\n valueType: props.valueType,\n }),\n );\n\n // 记录面板是否选中过\n const isSelected = ref(false);\n\n watch(popupVisible, (visible) => {\n // 面板展开重置数据\n if (visible) {\n isSelected.value = false;\n cacheValue.value = formatDate(value.value || [], {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n }) as string[];\n time.value = formatTime(\n value.value || [dayjs().format(formatRef.value.timeFormat), dayjs().format(formatRef.value.timeFormat)],\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ) as string[];\n\n // 空数据重置为当前年月\n if (!value.value.length) {\n const { year: defaultYear, month: defaultMonth } = initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n enableTimePicker: props.enableTimePicker,\n });\n year.value = defaultYear;\n month.value = defaultMonth;\n } else if (value.value.length === 2 && !props.enableTimePicker) {\n // 确保右侧面板月份比左侧大 避免两侧面板月份一致\n const nextMonth = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.valueType).year());\n if (year.value[0] === year.value[1] && nextMonth[0] === nextMonth[1]) {\n nextMonth[0] === 11 ? (nextMonth[0] -= 1) : (nextMonth[1] += 1);\n }\n month.value = nextMonth;\n // 月份季度选择时需要确保右侧面板年份比左侧大\n if ((props.mode === 'month' || props.mode === 'quarter') && year.value[0] === year.value[1]) {\n year.value = [year.value[0], year.value[0] + 1];\n }\n } else {\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).year());\n if (year.value.length === 1) year.value = [year.value[0], year.value[0]];\n\n month.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n if (month.value.length === 1) month.value = [month.value[0], Math.min(month.value[0] + 1, 11)];\n }\n } else {\n activeIndex.value = 0;\n isHoverCell.value = false;\n isFirstValueSelected.value = false;\n inputValue.value = formatDate(value.value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n isHoverCell.value = true;\n const nextValue = [...(inputValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n inputValue.value = nextValue;\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n isHoverCell.value = false;\n inputValue.value = cacheValue.value;\n }\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent; partial: DateRangePickerPartial }) {\n props.onPick?.(date, { e, partial: activeIndex.value ? 'end' : 'start' });\n\n isHoverCell.value = false;\n isSelected.value = true;\n\n const nextValue = [...(inputValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n cacheValue.value = nextValue;\n inputValue.value = nextValue;\n\n // 有时间选择器走 confirm 逻辑\n if (props.enableTimePicker) return;\n\n // 确保两端都是有效值\n const notValidIndex = nextValue.findIndex((v) => !v || !isValidDate(v, formatRef.value.format));\n\n // 当两端都有有效值时更改 value\n if (notValidIndex === -1 && nextValue.length === 2) {\n // 二次修改时当其中一侧不符合上次区间规范时,清空另一侧数据\n if (\n !isFirstValueSelected.value &&\n parseToDayjs(nextValue[0], formatRef.value.format).isAfter(parseToDayjs(nextValue[1], formatRef.value.format))\n ) {\n nextValue[activeIndex.value ? 0 : 1] = '';\n cacheValue.value = nextValue;\n inputValue.value = nextValue;\n } else {\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'pick',\n },\n );\n }\n }\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (!isFirstValueSelected.value || !activeIndex.value) {\n let nextIndex = notValidIndex;\n if (nextIndex === -1) nextIndex = activeIndex.value ? 0 : 1;\n activeIndex.value = nextIndex as 0 | 1;\n isFirstValueSelected.value = !!nextValue[0];\n } else {\n popupVisible.value = false;\n }\n }\n\n // 头部快速切换\n function onJumperClick({ trigger, partial }: { trigger: string; partial: DateRangePickerPartial }) {\n const partialIndex = partial === 'start' ? 0 : 1;\n\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n const current = new Date(year.value[partialIndex], month.value[partialIndex]);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n\n let nextYear = [...year.value];\n nextYear[partialIndex] = next.getFullYear();\n let nextMonth = [...month.value];\n nextMonth[partialIndex] = next.getMonth();\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // time-picker 点击\n function onTimePickerChange(val: string) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n\n const nextInputValue = [...(inputValue.value as DateValue[])];\n const changedInputValue = nextInputValue[activeIndex.value];\n const currentDate = !dayjs(changedInputValue, formatRef.value.format).isValid()\n ? dayjs().year(year.value[activeIndex.value]).month(month.value[activeIndex.value])\n : dayjs(changedInputValue, formatRef.value.format);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n nextInputValue[activeIndex.value] = nextDate;\n\n const nextTime = [...time.value];\n nextTime[activeIndex.value] = val;\n time.value = nextTime;\n\n isSelected.value = true;\n inputValue.value = formatDate(nextInputValue, {\n format: formatRef.value.format,\n });\n cacheValue.value = formatDate(nextInputValue, {\n format: formatRef.value.format,\n });\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = [...(inputValue.value as string[])];\n\n const notValidIndex = nextValue.findIndex((v) => !v || !isValidDate(v, formatRef.value.format));\n\n // 当两端都有有效值时更改 value\n if (notValidIndex === -1 && nextValue.length === 2) {\n // 二次修改时当其中一侧不符合上次区间规范时,清空另一侧数据\n if (\n !isFirstValueSelected.value &&\n parseToDayjs(nextValue[0], formatRef.value.format).isAfter(parseToDayjs(nextValue[1], formatRef.value.format))\n ) {\n nextValue[activeIndex.value ? 0 : 1] = '';\n cacheValue.value = nextValue;\n inputValue.value = nextValue;\n } else {\n props?.onConfirm?.({\n date: nextValue.map((v) => dayjs(v).toDate()),\n e,\n partial: activeIndex.value ? 'end' : 'start',\n });\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'confirm',\n },\n );\n }\n }\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (!isFirstValueSelected.value || !activeIndex.value) {\n let nextIndex = notValidIndex;\n if (nextIndex === -1) nextIndex = activeIndex.value ? 0 : 1;\n activeIndex.value = nextIndex as 0 | 1;\n isFirstValueSelected.value = !!nextValue[0];\n } else if (nextValue.length === 2) {\n popupVisible.value = false;\n }\n }\n\n // 预设\n function onPresetClick(preset: any, context: any) {\n let presetValue = preset;\n if (isFunction(preset)) {\n presetValue = preset();\n }\n if (!isArray(presetValue)) {\n console.error(`preset: ${preset} 预设值必须是数组!`);\n } else {\n onChange?.(\n formatDate(presetValue, {\n format: formatRef.value.format,\n targetFormat: formatRef.value.valueType,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: presetValue.map((p) => parseToDayjs(p, formatRef.value.format)),\n trigger: 'preset',\n },\n );\n popupVisible.value = false;\n props.onPresetClick?.(context);\n }\n }\n\n function onYearChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n let nextYear = [...year.value];\n let nextMonth = [...month.value];\n\n nextYear[partialIndex] = nextVal;\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n year.value = nextYear;\n if (!onlyYearSelect) month.value = nextMonth;\n }\n\n function onMonthChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n const nextMonth = [...month.value];\n nextMonth[partialIndex] = nextVal;\n // 保证左侧时间不大于右侧\n if (year.value[0] === year.value[1]) {\n if (partialIndex === 0) {\n // 操作了左侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错右侧比左侧大 1\n if (nextMonth[1] <= nextMonth[0]) {\n nextMonth[1] = nextMonth[0] + 1;\n if (nextMonth[1] === 12) {\n // 处理跨年的边界场景\n nextMonth[1] = 0;\n year.value = [year.value?.[0], year.value?.[1] + 1];\n }\n }\n }\n if (partialIndex === 1) {\n // 操作了右侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错左侧比右侧小 1\n nextMonth[0] = Math.min(nextMonth[0], nextMonth[1]);\n if (nextMonth[0] >= nextMonth[1]) {\n nextMonth[0] -= 1;\n if (nextMonth[0] === -1) {\n // 处理跨年的边界场景\n nextMonth[0] = 11;\n year.value = [year.value?.[0] - 1, year.value?.[1]];\n }\n }\n }\n }\n\n month.value = nextMonth;\n }\n\n const panelProps = computed(() => ({\n hoverValue: (isHoverCell.value ? inputValue.value : []) as string[],\n value: (isSelected.value ? cacheValue.value : value.value) as string[],\n isFirstValueSelected: isFirstValueSelected.value,\n activeIndex: activeIndex.value,\n year: year.value,\n month: month.value,\n format: formatRef.value.format,\n mode: props.mode,\n presets: props.presets,\n time: time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n popupVisible: popupVisible.value,\n panelPreselection: props.panelPreselection,\n cancelRangeSelectLimit: props.cancelRangeSelectLimit,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n }));\n\n return () => (\n
    \n }\n />\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdDateRangePickerPanelProps } from '../date-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 时间选择器默认值,当 value/defaultValue 未设置值时有效 */\n defaultTime: {\n type: Array as PropType,\n default: (): TdDateRangePickerPanelProps['defaultTime'] => ['00:00:00', '23:59:59'],\n },\n /** 点击日期单元格时触发 */\n onCellClick: Function as PropType,\n /** 选中值发生变化时触发。参数 `context.trigger` 表示触发当前事件的来源,不同的模式触发来源也会不同 */\n onChange: Function as PropType,\n /** 如果存在“确定”按钮,则点击“确定”按钮时触发 */\n onConfirm: Function as PropType,\n /** 月份切换发生变化时触发 */\n onMonthChange: Function as PropType,\n /** 点击面板时触发 */\n onPanelClick: Function as PropType,\n /** 点击预设按钮后触发 */\n onPresetClick: Function as PropType,\n /** 时间切换发生变化时触发 */\n onTimeChange: Function as PropType,\n /** 年份切换发生变化时触发 */\n onYearChange: Function as PropType,\n};\n","import { defineComponent, computed, ref, onMounted } from 'vue';\nimport dayjs from 'dayjs';\nimport { isFunction } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport dateRangePickerPanelProps from './date-range-picker-panel-props';\nimport dateRangePickerProps from './date-range-picker-props';\nimport {\n DateValue,\n DateRangePickerPartial,\n TdDateRangePickerPanelProps,\n DatePickerYearChangeTrigger,\n DatePickerMonthChangeTrigger,\n} from './type';\n\nimport TRangePanel from './components/panel/RangePanel';\nimport { useRangeValue } from './hooks/useRangeValue';\nimport { formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { dateCorrection } from './utils';\n\nexport default defineComponent({\n name: 'TDateRangePickerPanel',\n props: {\n value: dateRangePickerProps.value,\n defaultValue: dateRangePickerProps.defaultValue,\n modelValue: dateRangePickerProps.modelValue,\n disabled: dateRangePickerProps.disabled,\n disableDate: dateRangePickerProps.disableDate,\n enableTimePicker: dateRangePickerProps.enableTimePicker,\n firstDayOfWeek: dateRangePickerProps.firstDayOfWeek,\n format: dateRangePickerProps.format,\n mode: dateRangePickerProps.mode,\n presets: dateRangePickerProps.presets,\n presetsPlacement: dateRangePickerProps.presetsPlacement,\n timePickerProps: dateRangePickerProps.timePickerProps,\n panelPreselection: dateRangePickerProps.panelPreselection,\n ...dateRangePickerPanelProps,\n },\n\n setup(props: TdDateRangePickerPanelProps) {\n const { value, year, month, time, cacheValue, isFirstValueSelected, onChange } = useRangeValue(props);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n enableTimePicker: props.enableTimePicker,\n format: props.format,\n }),\n );\n\n // 记录面板是否选中过\n const isSelected = ref(false);\n const isHoverCell = ref(false);\n const hoverValue = ref([]);\n const activeIndex = computed(() => (isFirstValueSelected.value ? 1 : 0));\n\n onMounted(() => {\n if (value.value.length === 2 && !props.enableTimePicker) {\n // 确保右侧面板月份比左侧大 避免两侧面板月份一致\n const nextMonth = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.valueType).year());\n if (year.value[0] === year.value[1] && nextMonth[0] === nextMonth[1]) {\n nextMonth[0] === 11 ? (nextMonth[0] -= 1) : (nextMonth[1] += 1);\n }\n month.value = nextMonth;\n // 月份季度选择时需要确保右侧面板年份比左侧大\n if (['month', 'quarter'].includes(props.mode) && year.value[0] === year.value[1]) {\n year.value = [year.value[0], year.value[0] + 1];\n }\n }\n });\n\n // 日期 hover\n function onCellMouseEnter(date: Date) {\n isHoverCell.value = true;\n const nextValue = [...(hoverValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n hoverValue.value = nextValue;\n }\n\n // 日期 leave\n function onCellMouseLeave() {\n isHoverCell.value = false;\n hoverValue.value = cacheValue.value as string[];\n }\n\n // 日期点击\n function onCellClick(date: Date, { e }: { e: MouseEvent }) {\n props.onCellClick?.({\n e,\n partial: activeIndex.value ? 'end' : 'start',\n date: value.value.map((v) => dayjs(v).toDate()),\n });\n\n isHoverCell.value = false;\n isSelected.value = true;\n\n const nextValue = [...(cacheValue.value as string[])];\n nextValue[activeIndex.value] = formatDate(date, {\n format: formatRef.value.format,\n }) as string;\n cacheValue.value = nextValue;\n\n // 有时间选择器走 confirm 逻辑\n if (props.enableTimePicker) return;\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (nextValue.length === 2 && isFirstValueSelected.value) {\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'pick',\n },\n );\n isFirstValueSelected.value = false;\n } else {\n isFirstValueSelected.value = true;\n }\n }\n\n // 头部快速切换\n function onJumperClick({\n trigger,\n partial,\n }: {\n trigger: 'prev' | 'next' | 'current';\n partial: DateRangePickerPartial;\n }) {\n const partialIndex = partial === 'start' ? 0 : 1;\n\n const triggerMap = {\n prev: 'arrow-previous',\n next: 'arrow-next',\n };\n const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n const monthCount = monthCountMap[props.mode] || 0;\n const current = new Date(year.value[partialIndex], month.value[partialIndex]);\n\n let next = null;\n if (trigger === 'prev') {\n next = subtractMonth(current, monthCount);\n } else if (trigger === 'current') {\n next = new Date();\n } else if (trigger === 'next') {\n next = addMonth(current, monthCount);\n }\n let nextYear = [...year.value];\n nextYear[partialIndex] = next.getFullYear();\n let nextMonth = [...month.value];\n nextMonth[partialIndex] = next.getMonth();\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n if (year.value.some((y) => !nextYear.includes(y))) {\n props.onYearChange?.({\n partial,\n year: nextYear[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: trigger === 'current' ? 'today' : (`year-${triggerMap[trigger]}` as DatePickerYearChangeTrigger),\n });\n }\n if (month.value.some((m) => !nextMonth.includes(m))) {\n props.onMonthChange?.({\n partial,\n month: nextMonth[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: trigger === 'current' ? 'today' : (`month-${triggerMap[trigger]}` as DatePickerMonthChangeTrigger),\n });\n }\n\n year.value = nextYear;\n month.value = nextMonth;\n }\n\n // time-picker 点击\n function onTimePickerChange(val: string) {\n const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n const nextInputValue = [...(cacheValue.value as DateValue[])];\n // @ts-ignore\n const changedInputValue = cacheValue.value[activeIndex.value];\n const currentDate = !dayjs(changedInputValue, formatRef.value.format).isValid()\n ? dayjs().year(year.value[activeIndex.value]).month(month.value[activeIndex.value])\n : dayjs(changedInputValue, formatRef.value.format);\n // am pm 12小时制转化 24小时制\n let nextHours = hours;\n if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n\n const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n nextInputValue[activeIndex.value] = nextDate;\n\n const nextTime = [...time.value];\n nextTime[activeIndex.value] = val;\n time.value = nextTime;\n\n isSelected.value = true;\n cacheValue.value = formatDate(nextInputValue, {\n format: formatRef.value.format,\n });\n\n props.onTimeChange?.({\n time: val,\n date: value.value.map((v) => parseToDayjs(v, formatRef.value.format).toDate()),\n partial: activeIndex.value ? 'end' : 'start',\n trigger: 'time-hour',\n });\n }\n\n // 确定\n function onConfirmClick({ e }: { e: MouseEvent }) {\n const nextValue = [...(cacheValue.value as string[])];\n\n // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n if (nextValue.length === 2 && isFirstValueSelected.value) {\n onChange?.(\n formatDate(nextValue, {\n format: formatRef.value.format,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: nextValue.map((v) => parseToDayjs(v, formatRef.value.format)),\n trigger: 'confirm',\n },\n );\n year.value = nextValue.map((v) => dayjs(v, formatRef.value.format).year());\n month.value = nextValue.map((v) => dayjs(v, formatRef.value.format).month());\n isFirstValueSelected.value = false;\n } else {\n isFirstValueSelected.value = true;\n }\n\n props.onConfirm?.({ date: value.value.map((v) => dayjs(v).toDate()), e });\n }\n\n // 预设\n function onPresetClick(preset: any, context: any) {\n let presetValue = preset;\n if (isFunction(preset)) {\n presetValue = preset();\n }\n if (!isArray(presetValue)) {\n console.error(`preset: ${preset} 预设值必须是数组!`);\n } else {\n onChange?.(\n formatDate(presetValue, {\n format: formatRef.value.format,\n autoSwap: true,\n }) as DateValue[],\n {\n dayjsValue: presetValue.map((p) => parseToDayjs(p, formatRef.value.format)),\n trigger: 'preset',\n },\n );\n props.onPresetClick?.(context);\n }\n }\n\n function onYearChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n let nextYear = [...year.value];\n nextYear[partialIndex] = nextVal;\n let nextMonth = [...month.value];\n // 年/季度/月份场景下,头部只有年选择器\n const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n // 头部日期切换修正\n const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n nextYear = correctedDate.nextYear;\n nextMonth = correctedDate.nextMonth;\n\n year.value = nextYear;\n if (!onlyYearSelect) month.value = nextMonth;\n\n props.onYearChange?.({\n partial,\n year: nextYear[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: 'year-select',\n });\n }\n\n function onMonthChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n let partialIndex = partial === 'start' ? 0 : 1;\n if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n const nextMonth = [...month.value];\n nextMonth[partialIndex] = nextVal;\n // 保证左侧时间不大于右侧\n if (year.value[0] === year.value[1]) {\n if (partialIndex === 0) {\n // 操作了左侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错右侧比左侧大 1\n if (nextMonth[1] <= nextMonth[0]) {\n nextMonth[1] = nextMonth[0] + 1;\n if (nextMonth[1] === 12) {\n // 处理跨年的边界场景\n nextMonth[1] = 0;\n year.value = [year.value?.[0], year.value?.[1] + 1];\n }\n }\n }\n if (partialIndex === 1) {\n // 操作了右侧区间, 处理右侧区间小于或等于左侧区间的场景,交互上始终报错左侧比右侧小 1\n nextMonth[0] = Math.min(nextMonth[0], nextMonth[1]);\n if (nextMonth[0] >= nextMonth[1]) {\n nextMonth[0] -= 1;\n if (nextMonth[0] === -1) {\n // 处理跨年的边界场景\n nextMonth[0] = 11;\n year.value = [year.value?.[0] - 1, year.value?.[1]];\n }\n }\n }\n }\n\n month.value = nextMonth;\n\n props.onMonthChange?.({\n partial,\n month: nextMonth[partialIndex],\n date: value.value.map((v) => dayjs(v).toDate()),\n trigger: 'month-select',\n });\n }\n\n const panelProps = computed(() => ({\n hoverValue: (isHoverCell.value ? hoverValue.value : []) as string[],\n value: (isSelected.value ? cacheValue.value : value.value) as string[],\n activeIndex: activeIndex.value,\n year: year.value,\n month: month.value,\n mode: props.mode,\n format: formatRef.value.format,\n presets: props.presets,\n time: time.value,\n disableDate: props.disableDate,\n firstDayOfWeek: props.firstDayOfWeek,\n timePickerProps: props.timePickerProps,\n enableTimePicker: props.enableTimePicker,\n presetsPlacement: props.presetsPlacement,\n panelPreselection: props.panelPreselection,\n popupVisible: true,\n panelClick: props.onPanelClick,\n onCellClick,\n onCellMouseEnter,\n onCellMouseLeave,\n onJumperClick,\n onConfirmClick,\n onPresetClick,\n onYearChange,\n onMonthChange,\n onTimePickerChange,\n }));\n\n return () => ;\n },\n});\n","import _DatePicker from './DatePicker';\nimport _DatePickerPanel from './DatePickerPanel';\nimport _DateRangePicker from './DateRangePicker';\nimport _DateRangePickerPanel from './DateRangePickerPanel';\nimport withInstall from '../utils/withInstall';\nimport { TdDatePickerProps, TdDateRangePickerProps, TdDatePickerPanelProps, TdDateRangePickerPanelProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type DatePickerProps = TdDatePickerProps;\n\nexport interface DatePickerPanelProps extends TdDatePickerPanelProps, Pick {}\n\nexport type DateRangePickerProps = TdDateRangePickerProps;\nexport interface DateRangePickerPanelProps\n extends TdDateRangePickerPanelProps,\n Pick {}\n\nexport const DatePicker = withInstall(_DatePicker);\nexport const DatePickerPanel = withInstall(_DatePickerPanel);\nexport const DateRangePicker = withInstall(_DateRangePicker);\nexport const DateRangePickerPanel = withInstall(_DateRangePickerPanel);\n\nexport default DatePicker;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n return obj;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDate;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar default_date_options = {\n format: 'YYYY/MM/DD',\n delimiters: ['/', '-'],\n strictMode: false\n};\nfunction isValidFormat(format) {\n return /(^(y{4}|y{2})[.\\/-](m{1,2})[.\\/-](d{1,2})$)|(^(m{1,2})[.\\/-](d{1,2})[.\\/-]((y{4}|y{2})$))|(^(d{1,2})[.\\/-](m{1,2})[.\\/-]((y{4}|y{2})$))/gi.test(format);\n}\nfunction zip(date, format) {\n var zippedArr = [],\n len = Math.max(date.length, format.length);\n for (var i = 0; i < len; i++) {\n zippedArr.push([date[i], format[i]]);\n }\n return zippedArr;\n}\nfunction isDate(input, options) {\n if (typeof options === 'string') {\n // Allow backward compatibility for old format isDate(input [, format])\n options = (0, _merge.default)({\n format: options\n }, default_date_options);\n } else {\n options = (0, _merge.default)(options, default_date_options);\n }\n if (typeof input === 'string' && isValidFormat(options.format)) {\n if (options.strictMode && input.length !== options.format.length) return false;\n var formatDelimiter = options.delimiters.find(function (delimiter) {\n return options.format.indexOf(delimiter) !== -1;\n });\n var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function (delimiter) {\n return input.indexOf(delimiter) !== -1;\n });\n var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));\n var dateObj = {};\n var _iterator = _createForOfIteratorHelper(dateAndFormat),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n dateWord = _step$value[0],\n formatWord = _step$value[1];\n if (!dateWord || !formatWord || dateWord.length !== formatWord.length) {\n return false;\n }\n dateObj[formatWord.charAt(0)] = dateWord;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var fullYear = dateObj.y;\n\n // Check if the year starts with a hyphen\n if (fullYear.startsWith('-')) {\n return false; // Hyphen before year is not allowed\n }\n if (dateObj.y.length === 2) {\n var parsedYear = parseInt(dateObj.y, 10);\n if (isNaN(parsedYear)) {\n return false;\n }\n var currentYearLastTwoDigits = new Date().getFullYear() % 100;\n if (parsedYear < currentYearLastTwoDigits) {\n fullYear = \"20\".concat(dateObj.y);\n } else {\n fullYear = \"19\".concat(dateObj.y);\n }\n }\n var month = dateObj.m;\n if (dateObj.m.length === 1) {\n month = \"0\".concat(dateObj.m);\n }\n var day = dateObj.d;\n if (dateObj.d.length === 1) {\n day = \"0\".concat(dateObj.d);\n }\n return new Date(\"\".concat(fullYear, \"-\").concat(month, \"-\").concat(day, \"T00:00:00.000Z\")).getUTCDate() === +dateObj.d;\n }\n if (!options.strictMode) {\n return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n if (!isString) {\n var invalidType = _typeof(input);\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = checkHost;\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false,\n ignore_max_length: false\n};\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n\n /* Remove the optional trailing dot before checking validity */\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n /* Remove the optional wildcard before checking validity */\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n }\n\n // disallow spaces\n if (/\\s/.test(tld)) {\n return false;\n }\n }\n\n // reject numeric TLDs\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n }\n\n // disallow full-width chars\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n // disallow parts starting or ending with hyphen\n if (/^-|-$/.test(part)) {\n return false;\n }\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n return true;\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as , those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z-.:]{1,})?$');\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n if (version === '4') {\n return IPv4AddressRegExp.test(str);\n }\n if (version === '6') {\n return IPv6AddressRegExp.test(str);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _checkHost = _interopRequireDefault(require(\"./util/checkHost\"));\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_email_options = {\n allow_display_name: false,\n allow_underscores: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: [],\n host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)]/.test(display_name_without_quotes);\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n }\n\n // the quotes in display name must start with character symbol \\\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n return true;\n}\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n if (display_email) {\n var display_name = display_email[1];\n\n // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n if (options.host_blacklist.length > 0 && (0, _checkHost.default)(lower_domain, options.host_blacklist)) {\n return false;\n }\n if (options.host_whitelist.length > 0 && !(0, _checkHost.default)(lower_domain, options.host_whitelist)) {\n return false;\n }\n var user = parts.join('@');\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase();\n\n // Removing sub-address from username before gmail validation\n var username = user.split('+')[0];\n\n // Dots are not included in gmail length restriction\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n var _user_parts = username.split('.');\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length,\n allow_underscores: options.allow_underscores\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n var noBracketdomain = domain.slice(1, -1);\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n if (user[0] === '\"' && user[user.length - 1] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { isBoolean } from 'lodash-es';\nimport { isObject } from 'lodash-es';\n// https://github.com/validatorjs/validator.js\n\nimport isDate from 'validator/lib/isDate';\nimport isEmail from 'validator/lib/isEmail';\nimport { isEmpty } from 'lodash-es';\nimport isURL from 'validator/lib/isURL';\nimport { isNumber } from 'lodash-es';\nimport { getCharacterLength } from '@tdesign/common-js/utils/helper';\nimport {\n CustomValidator,\n FormRule,\n ValueType,\n AllValidateResult,\n ValidateResultType,\n CustomValidateResolveType,\n} from '../type';\n\n// `{} / [] / '' / undefined / null` 等内容被认为是空; 0 和 false 被认为是正常数据,部分数据的值就是 0 或者 false\nexport function isValueEmpty(val: ValueType): boolean {\n const type: string = Object.prototype.toString.call(val);\n const typeMap: Record = {\n Date: '[object Date]',\n };\n if (type === typeMap.Date) {\n return false;\n }\n return isObject(val) ? isEmpty(val) : ['', undefined, null].includes(val);\n}\n\nconst VALIDATE_MAP = {\n date: isDate,\n url: isURL,\n email: isEmail,\n required: (val: ValueType): boolean => !isValueEmpty(val),\n whitespace: (val: ValueType): boolean => !(/^\\s+$/.test(val) || val === ''),\n boolean: (val: ValueType): boolean => isBoolean(val),\n max: (val: ValueType, num: number): boolean => (isNumber(val) ? val <= num : getCharacterLength(val) <= num),\n min: (val: ValueType, num: number): boolean => (isNumber(val) ? val >= num : getCharacterLength(val) >= num),\n len: (val: ValueType, num: number): boolean => getCharacterLength(String(val)) === num,\n number: (val: ValueType): boolean => isNumber(val),\n enum: (val: ValueType, strs: Array): boolean => strs.includes(val),\n idcard: (val: ValueType): boolean => /^(\\d{18,18}|\\d{15,15}|\\d{17,17}x)$/i.test(val),\n telnumber: (val: ValueType): boolean => /^1[3-9]\\d{9}$/.test(val),\n pattern: (val: ValueType, regexp: RegExp): boolean => regexp.test(val),\n // 自定义校验规则,可能是异步校验\n validator: (val: ValueType, validate: CustomValidator): ReturnType => validate(val),\n};\n\nexport type ValidateFuncType = typeof VALIDATE_MAP[keyof typeof VALIDATE_MAP];\n\n/**\n * 校验某一条数据的某一条规则,一种校验规则不满足则不再进行校验。\n * @param value 值\n * @param rule 校验规则\n * @returns 两种校验结果,一种是内置校验规则的校验结果哦,二种是自定义校验规则(validator)的校验结果\n */\nexport async function validateOneRule(value: ValueType, rule: FormRule): Promise {\n let validateResult: CustomValidateResolveType | ValidateResultType = { result: true };\n const keys = Object.keys(rule) as (keyof FormRule)[];\n let vOptions: undefined | FormRule[keyof FormRule];\n let vValidateFun: ValidateFuncType;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n // 非必填选项,值为空,非自定义规则:无需校验,直接返回 true\n if (!rule.required && isValueEmpty(value) && !rule.validator) {\n return validateResult;\n }\n\n const validateRule: ValidateFuncType = VALIDATE_MAP[key as keyof typeof VALIDATE_MAP];\n // 找到一个校验规则,则无需再找,因为参数只允许对一个规则进行校验\n if (validateRule && (rule[key] || rule[key] === 0)) {\n // rule 值为 true 则表示没有校验参数,只是对值进行默认规则校验\n vOptions = rule[key] === true ? undefined : rule[key];\n vValidateFun = validateRule;\n break;\n }\n }\n if (vValidateFun) {\n // @ts-ignore\n validateResult = await vValidateFun(value, vOptions);\n // 如果校验不通过,则返回校验不通过的规则\n if (isBoolean(validateResult)) {\n return { ...rule, result: validateResult };\n }\n // 校验结果为 CustomValidateObj,只有自定义校验规则会存在这种情况\n if (isObject(validateResult)) {\n return validateResult;\n }\n }\n return validateResult;\n}\n\n// 单个数据进行全规则校验,校验成功也可能会有 message\nexport async function validate(value: ValueType, rules: Array): Promise {\n const all = rules.map((rule) => validateOneRule(value, rule));\n const r = await Promise.all(all);\n return r;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _checkHost = _interopRequireDefault(require(\"./util/checkHost\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation\n max_allowed_length will be ignored if this is set as false\nmax_allowed_length - if set isURL will not allow URLs longer than max_allowed_length\n default is 2084 that IE maximum URL length\n*/\n\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n allow_fragments: true,\n allow_query_components: true,\n validate_length: true,\n max_allowed_length: 2084\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n options = (0, _merge.default)(options, default_url_options);\n if (options.validate_length && url.length > options.max_allowed_length) {\n return false;\n }\n if (!options.allow_fragments && url.includes('#')) {\n return false;\n }\n if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {\n return false;\n }\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.slice(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n split[0] = url.slice(2);\n }\n url = split.join('://');\n if (url === '') {\n return false;\n }\n split = url.split('/');\n url = split.shift();\n if (url === '' && !options.require_host) {\n return true;\n }\n split = url.split('@');\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n if (split[0] === '') {\n return false;\n }\n auth = split.shift();\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n var _auth$split = auth.split(':'),\n _auth$split2 = _slicedToArray(_auth$split, 2),\n user = _auth$split2[0],\n password = _auth$split2[1];\n if (user === '' && password === '') {\n return false;\n }\n }\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n if (split.length) {\n port_str = split.join(':');\n }\n }\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n if (options.host_whitelist) {\n return (0, _checkHost.default)(host, options.host_whitelist);\n }\n if (host === '' && !options.require_host) {\n return true;\n }\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n host = host || ipv6;\n if (options.host_blacklist && (0, _checkHost.default)(host, options.host_blacklist)) {\n return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdFormItemProps } from '../form/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** label 原生属性 */\n for: {\n type: String,\n default: '',\n },\n /** 表单项说明内容 */\n help: {\n type: [String, Function] as PropType,\n },\n /** 字段标签名称 */\n label: {\n type: [String, Function] as PropType,\n default: '' as TdFormItemProps['label'],\n },\n /** 表单字段标签对齐方式:左对齐、右对齐、顶部对齐。默认使用 Form 的对齐方式,优先级高于 Form.labelAlign */\n labelAlign: {\n type: String as PropType,\n validator(val: TdFormItemProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top'].includes(val);\n },\n },\n /** 可以整体设置标签宽度,优先级高于 Form.labelWidth */\n labelWidth: {\n type: [String, Number] as PropType,\n },\n /** 表单字段名称 */\n name: {\n type: String,\n default: '',\n },\n /** 是否显示必填符号(*),优先级高于 Form.requiredMark */\n requiredMark: {\n type: Boolean,\n default: undefined,\n },\n /** 表单字段校验规则 */\n rules: {\n type: Array as PropType,\n },\n /** 校验不通过时,是否显示错误提示信息,优先级高于 `Form.showErrorMessage` */\n showErrorMessage: {\n type: Boolean,\n default: undefined,\n },\n /** 校验状态,可在需要完全自主控制校验状态时使用 */\n status: {\n type: String as PropType,\n default: '' as TdFormItemProps['status'],\n },\n /** 校验状态图标,值为 `true` 显示默认图标,默认图标有 成功、失败、警告 等,不同的状态图标不同。`statusIcon` 值为 `false`,不显示图标。`statusIcon` 值类型为渲染函数,则可以自定义右侧状态图标。优先级高级 Form 的 statusIcon */\n statusIcon: {\n type: [Boolean, Function] as PropType,\n default: undefined as TdFormItemProps['statusIcon'],\n },\n /** 是否显示校验成功的边框,默认不显示 */\n successBorder: Boolean,\n /** 自定义提示内容,样式跟随 `status` 变动,可在需要完全自主控制校验规则时使用 */\n tips: {\n type: [String, Function] as PropType,\n },\n};\n","import {\n computed,\n defineComponent,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n VNode,\n watch,\n} from 'vue';\nimport {\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n GlobalIconType,\n} from 'tdesign-icons-vue-next';\nimport { isArray } from 'lodash-es';\nimport { isNumber } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isBoolean } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\nimport { get as lodashGet } from 'lodash-es';\nimport { set as lodashSet } from 'lodash-es';\nimport { isNil } from 'lodash-es';\n\nimport { validate } from './utils/form-model';\nimport {\n AllValidateResult,\n Data,\n FormErrorMessage,\n FormItemValidateMessage,\n FormRule,\n ValidateTriggerType,\n ValueType,\n} from './type';\nimport props from './form-item-props';\nimport {\n AnalysisValidateResult,\n ErrorListType,\n FormInjectionKey,\n FormItemContext,\n FormItemInjectionKey,\n SuccessListType,\n useCLASSNAMES,\n ValidateStatus,\n} from './consts';\n\nimport { useConfig, usePrefixClass, useTNodeJSX } from '../hooks';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { template } from '@tdesign/common-js/utils/stringTemplate';\n\nexport type FormItemValidateResult = { [key in keyof T]: boolean | AllValidateResult[] };\n\nexport function getFormItemClassName(componentName: string, name?: string) {\n if (!name) return '';\n return `${componentName}__${name}`.replace(/(\\[|\\]\\.)/g, '_');\n}\n\nexport default defineComponent({\n name: 'TFormItem',\n props,\n setup(props, { slots }) {\n const renderContent = useTNodeJSX();\n const CLASS_NAMES = useCLASSNAMES();\n const { globalConfig } = useConfig('form');\n const { CheckCircleFilledIcon, CloseCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n });\n const form = inject(FormInjectionKey, undefined);\n\n const classPrefix = usePrefixClass();\n const formItemClassPrefix = usePrefixClass('form-item');\n\n const needRequiredMark = computed(() => {\n const requiredMark = props.requiredMark ?? form?.requiredMark ?? globalConfig.value.requiredMark;\n const isRequired = innerRules.value.filter((rule) => rule.required).length > 0;\n return requiredMark ?? isRequired;\n });\n\n const hasLabel = computed(() => slots.label || props.label);\n const hasColon = computed(() => !!(form?.colon && hasLabel.value));\n const FROM_LABEL = usePrefixClass('form__label');\n const labelAlign = computed(() => (isNil(props.labelAlign) ? form?.labelAlign : props.labelAlign));\n const labelWidth = computed(() => (isNil(props.labelWidth) ? form?.labelWidth : props.labelWidth));\n\n const labelClasses = computed(() => [\n CLASS_NAMES.value.label,\n {\n [`${FROM_LABEL.value}--required`]: needRequiredMark.value,\n [`${FROM_LABEL.value}--top`]: hasLabel.value && (labelAlign.value === 'top' || !labelWidth.value),\n [`${FROM_LABEL.value}--left`]: labelAlign.value === 'left' && labelWidth.value,\n [`${FROM_LABEL.value}--right`]: labelAlign.value === 'right' && labelWidth.value,\n },\n ]);\n\n const statusClass = computed(\n () =>\n `${classPrefix.value}-is-${props.status || 'default'} ${\n props.status === 'success' ? CLASS_NAMES.value.successBorder : ''\n }`,\n );\n\n const renderLabel = () => {\n if (Number(labelWidth.value) === 0) return;\n\n let labelStyle = {};\n if (labelWidth.value && labelAlign.value !== 'top') {\n if (isNumber(labelWidth.value)) {\n labelStyle = { width: `${labelWidth.value}px` };\n } else {\n labelStyle = { width: labelWidth.value };\n }\n }\n\n return (\n
    \n \n {hasColon.value && globalConfig.value.colonText}\n
    \n );\n };\n\n /** Suffix Icon */\n const getDefaultIcon = (): VNode => {\n const resultIcon = (Icon: GlobalIconType) => (\n \n \n \n );\n const list = errorList.value;\n if (verifyStatus.value === ValidateStatus.SUCCESS) {\n return resultIcon(CheckCircleFilledIcon);\n }\n if (list?.[0]) {\n const type = list[0].type || 'error';\n const icon =\n {\n error: CloseCircleFilledIcon,\n warning: ErrorCircleFilledIcon,\n }[type] || CheckCircleFilledIcon;\n return resultIcon(icon);\n }\n return null;\n };\n const renderSuffixIcon = () => {\n const { statusIcon } = props;\n if (statusIcon === false) return;\n\n let resultIcon = renderContent('statusIcon', { defaultNode: getDefaultIcon() });\n if (resultIcon) return {resultIcon};\n if (resultIcon === false) return;\n\n resultIcon = form?.renderContent('statusIcon', { defaultNode: getDefaultIcon(), params: props });\n if (resultIcon) return resultIcon;\n };\n /** Suffix Icon END */\n\n /** Content Style */\n const errorClasses = computed(() => {\n if (!showErrorMessage.value) return '';\n if (verifyStatus.value === ValidateStatus.SUCCESS) {\n return props.successBorder\n ? [CLASS_NAMES.value.success, CLASS_NAMES.value.successBorder].join(' ')\n : CLASS_NAMES.value.success;\n }\n if (!errorList.value.length) return;\n const type = errorList.value[0].type || 'error';\n if (props.status) return statusClass.value;\n return type === 'error' ? CLASS_NAMES.value.error : CLASS_NAMES.value.warning;\n });\n const contentClasses = computed(() => [CLASS_NAMES.value.controls, errorClasses.value]);\n const contentStyle = computed(() => {\n let contentStyle = {};\n if (labelWidth.value && labelAlign.value !== 'top') {\n if (isNumber(labelWidth.value)) {\n contentStyle = { marginLeft: `${labelWidth.value}px` };\n } else {\n contentStyle = { marginLeft: labelWidth.value };\n }\n }\n\n return contentStyle;\n });\n /** Content Style END */\n\n const errorList = ref([]);\n const successList = ref([]);\n const verifyStatus = ref(ValidateStatus.TO_BE_VALIDATED);\n const resetValidating = ref(false);\n const needResetField = ref(false);\n\n const resetHandler = () => {\n needResetField.value = false;\n errorList.value = [];\n successList.value = [];\n verifyStatus.value = ValidateStatus.TO_BE_VALIDATED;\n };\n const getEmptyValue = (): ValueType => {\n const type = Object.prototype.toString.call(lodashGet(form?.data, props.name));\n let emptyValue: ValueType;\n if (type === '[object String]') {\n emptyValue = '';\n }\n if (type === '[object Array]') {\n emptyValue = [];\n }\n if (type === '[object Object]') {\n emptyValue = {};\n }\n return emptyValue;\n };\n const resetField = async (resetType: 'initial' | 'empty' | undefined = form?.resetType) => {\n if (!props.name) return;\n\n if (resetType === 'empty') lodashSet(form?.data, props.name, getEmptyValue());\n else if (resetType === 'initial') lodashSet(form?.data, props.name, initialValue.value);\n\n await nextTick();\n if (resetValidating.value) {\n needResetField.value = true;\n } else {\n resetHandler();\n }\n };\n\n const errorMessages = computed(() => form?.errorMessage ?? globalConfig.value.errorMessage);\n const innerRules = computed(() => {\n if (props.rules?.length) return props.rules;\n if (!props.name) return [];\n const index = `${props.name}`.lastIndexOf('.') || -1;\n const pRuleName = `${props.name}`.slice(index + 1);\n return lodashGet(form?.rules, props.name) || lodashGet(form?.rules, pRuleName) || [];\n });\n\n const analysisValidateResult = async (trigger: ValidateTriggerType): Promise => {\n const result: AnalysisValidateResult = {\n successList: [],\n errorList: [],\n rules: [],\n resultList: [],\n allowSetValue: false,\n };\n result.rules =\n trigger === 'all'\n ? innerRules.value\n : innerRules.value.filter((item) => (item.trigger || 'change') === trigger);\n if (innerRules.value.length && !result.rules?.length) {\n return result;\n }\n result.allowSetValue = true;\n result.resultList = await validate(value.value, result.rules);\n result.errorList = result.resultList\n .filter((item) => item.result !== true)\n .map((item: ErrorListType) => {\n Object.keys(item).forEach((key) => {\n // @ts-ignore\n if (!item.message && errorMessages.value[key]) {\n const name = isString(props.label) ? props.label : props.name;\n // @ts-ignore\n item.message = template(errorMessages.value[key], {\n name,\n // @ts-ignore\n validate: item[key],\n });\n }\n });\n return item;\n });\n // 仅有自定义校验方法才会存在 successList\n result.successList = result.resultList.filter(\n (item) => item.result === true && item.message && item.type === 'success',\n ) as SuccessListType[];\n\n return result;\n };\n const validateHandler = async (\n trigger: ValidateTriggerType,\n showErrorMessage?: boolean,\n ): Promise> => {\n resetValidating.value = true;\n // undefined | boolean\n freeShowErrorMessage.value = showErrorMessage;\n const {\n successList: innerSuccessList,\n errorList: innerErrorList,\n rules,\n resultList,\n allowSetValue,\n } = await analysisValidateResult(trigger);\n\n if (allowSetValue) {\n successList.value = innerSuccessList;\n errorList.value = innerErrorList;\n }\n // 根据校验结果设置校验状态\n if (rules.length) {\n verifyStatus.value = innerErrorList.length ? ValidateStatus.FAIL : ValidateStatus.SUCCESS;\n }\n // 重置处理\n if (needResetField.value) {\n resetHandler();\n }\n resetValidating.value = false;\n\n return {\n [props.name]: innerErrorList.length === 0 ? true : resultList,\n } as FormItemValidateResult;\n };\n const validateOnly = async (trigger: ValidateTriggerType): Promise> => {\n const { errorList: innerErrorList, resultList } = await analysisValidateResult(trigger);\n\n return {\n [props.name]: innerErrorList.length === 0 ? true : resultList,\n } as FormItemValidateResult;\n };\n\n const setValidateMessage = (validateMessage: FormItemValidateMessage[]) => {\n if (!validateMessage && !isArray(validateMessage)) return;\n if (validateMessage.length === 0) {\n errorList.value = [];\n verifyStatus.value = ValidateStatus.SUCCESS;\n }\n errorList.value = validateMessage.map((item) => ({ ...item, result: false }));\n verifyStatus.value = ValidateStatus.FAIL;\n };\n\n const value = computed(() => form?.data && lodashGet(form?.data, props.name));\n const initialValue = ref(undefined);\n const { name } = toRefs(props);\n const context: FormItemContext = reactive({\n name,\n resetHandler,\n resetField,\n validate: validateHandler,\n validateOnly,\n setValidateMessage,\n });\n\n onMounted(() => {\n initialValue.value = cloneDeep(value.value);\n form?.children.push(context);\n });\n\n onBeforeUnmount(() => {\n if (form) form.children = form?.children.filter((ctx) => ctx !== context);\n });\n\n watch(\n value,\n async () => {\n await validateHandler('change');\n },\n { deep: true },\n );\n\n watch(\n () => [props.name, JSON.stringify(props.rules)].join(','),\n () => {\n validateHandler('change');\n },\n );\n\n const freeShowErrorMessage = ref(undefined);\n const showErrorMessage = computed(() => {\n if (isBoolean(freeShowErrorMessage.value)) return freeShowErrorMessage.value;\n if (isBoolean(props.showErrorMessage)) return props.showErrorMessage;\n return form?.showErrorMessage;\n });\n\n const classes = computed(() => [\n CLASS_NAMES.value.formItem,\n getFormItemClassName(formItemClassPrefix.value, props.name),\n {\n [CLASS_NAMES.value.formItemWithHelp]: helpNode.value,\n [CLASS_NAMES.value.formItemWithExtra]: extraNode.value,\n },\n ]);\n const helpNode = computed(() => {\n const help = renderContent('help');\n if (help) return
    {help}
    ;\n return null;\n });\n const extraNode = computed(() => {\n const getExtraNode = (content: string) => (\n
    \n {content}\n
    \n );\n const list = errorList.value;\n if (showErrorMessage.value && list?.[0]?.message) {\n return getExtraNode(list[0].message);\n }\n if (successList.value.length) {\n return getExtraNode(successList.value[0].message);\n }\n return null;\n });\n\n const tipsNode = computed(() => {\n const tmpTips = renderContent('tips');\n if (!tmpTips) return null;\n const tmpClasses = [`${formItemClassPrefix.value}-tips`, `${classPrefix.value}-tips`, statusClass.value];\n return
    {tmpTips}
    ;\n });\n\n const handleBlur = async () => {\n await validateHandler('blur');\n };\n provide(FormItemInjectionKey, {\n handleBlur,\n });\n\n return () => (\n
    \n {renderLabel()}\n
    \n
    \n {renderContent('default')}\n {renderSuffixIcon()}\n
    \n {helpNode.value}\n {tipsNode.value}\n {extraNode.value}\n
    \n
    \n );\n },\n});\n","/**\n * 用正则实现模板字符串功能\n * @param str 模板字符串\n * @param vars 取值的对象\n * @returns 替换后的字符串\n */\nexport function template>(str: string, vars: T): string {\n return str.replace(/\\${(.*?)}/g, (_, prop: string) => vars[prop.trim()] || '');\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdFormProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否在表单标签字段右侧显示冒号 */\n colon: Boolean,\n /** 表单数据 */\n data: {\n type: Object as PropType,\n default: () => ({}),\n },\n /** 是否禁用整个表单 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 表单错误信息配置,示例:`{ idcard: '请输入正确的身份证号码', max: '字符长度不能超过 ${max}' }` */\n errorMessage: {\n type: Object as PropType,\n },\n /** 允许表单统一控制禁用状态的自定义组件名称列表。默认会有组件库的全部输入类组件:TInput、TInputNumber、TCascader、TSelect、TOption、TSwitch、TCheckbox、TCheckboxGroup、TRadio、TRadioGroup、TTreeSelect、TDatePicker、TTimePicker、TUpload、TTransfer、TSlider。对于自定义组件,组件内部需要包含可以控制表单禁用状态的变量 `formDisabled`。示例:`['CustomUpload', 'CustomInput']` */\n formControlledComponents: {\n type: Array as PropType,\n },\n /** 表单原生的id属性,支持用于配合非表单内的按钮通过form属性来触发表单事件 */\n id: {\n type: String,\n default: undefined,\n },\n /** 表单字段标签对齐方式:左对齐、右对齐、顶部对齐 */\n labelAlign: {\n type: String as PropType,\n default: 'right' as TdFormProps['labelAlign'],\n validator(val: TdFormProps['labelAlign']): boolean {\n if (!val) return true;\n return ['left', 'right', 'top'].includes(val);\n },\n },\n /** 可以整体设置label标签宽度,默认为100px */\n labelWidth: {\n type: [String, Number] as PropType,\n default: '100px' as TdFormProps['labelWidth'],\n },\n /** 表单布局,有两种方式:纵向布局 和 行内布局 */\n layout: {\n type: String as PropType,\n default: 'vertical' as TdFormProps['layout'],\n validator(val: TdFormProps['layout']): boolean {\n if (!val) return true;\n return ['vertical', 'inline'].includes(val);\n },\n },\n /** 是否阻止表单提交默认事件(表单提交默认事件会刷新页面),设置为 `true` 可以避免刷新 */\n preventSubmitDefault: {\n type: Boolean,\n default: true,\n },\n /** 是否整个表单只读 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 是否显示必填符号(*),默认显示 */\n requiredMark: {\n type: Boolean,\n default: undefined,\n },\n /** 重置表单的方式,值为 empty 表示重置表单为空,值为 initial 表示重置表单数据为初始值 */\n resetType: {\n type: String as PropType,\n default: 'empty' as TdFormProps['resetType'],\n validator(val: TdFormProps['resetType']): boolean {\n if (!val) return true;\n return ['empty', 'initial'].includes(val);\n },\n },\n /** 表单字段校验规则 */\n rules: {\n type: Object as PropType,\n },\n /** 表单校验不通过时,是否自动滚动到第一个校验不通过的字段,平滑滚动或是瞬间直达。值为空则表示不滚动 */\n scrollToFirstError: {\n type: String as PropType,\n validator(val: TdFormProps['scrollToFirstError']): boolean {\n if (!val) return true;\n return ['', 'smooth', 'auto'].includes(val);\n },\n },\n /** 校验不通过时,是否显示错误提示信息,统一控制全部表单项。如果希望控制单个表单项,请给 FormItem 设置该属性 */\n showErrorMessage: {\n type: Boolean,\n default: true,\n },\n /** 校验状态图标,值为 `true` 显示默认图标,默认图标有 成功、失败、警告 等,不同的状态图标不同。`statusIcon` 值为 `false`,不显示图标。`statusIcon` 值类型为渲染函数,则可以自定义右侧状态图标 */\n statusIcon: {\n type: [Boolean, Function] as PropType,\n default: undefined as TdFormProps['statusIcon'],\n },\n /** 【讨论中】当校验结果只有告警信息时,是否触发 `submit` 提交事件 */\n submitWithWarningMessage: Boolean,\n /** 表单重置时触发 */\n onReset: Function as PropType,\n /** 表单提交时触发。其中 `context.validateResult` 表示校验结果,`context.firstError` 表示校验不通过的第一个规则提醒。`context.validateResult` 值为 `true` 表示校验通过;如果校验不通过,`context.validateResult` 值为校验结果列表。
    【注意】⚠️ 默认情况,输入框按下 Enter 键会自动触发提交事件,如果希望禁用这个默认行为,可以给输入框添加 enter 事件,并在事件中设置 `e.preventDefault()` */\n onSubmit: Function as PropType,\n /** 校验结束后触发,result 值为 true 表示校验通过;如果校验不通过,result 值为校验结果列表 */\n onValidate: Function as PropType,\n};\n","import { computed, defineComponent, provide, reactive, ref, toRefs } from 'vue';\nimport { isEmpty } from 'lodash-es';\nimport { isBoolean } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { requestSubmit } from '../utils/dom';\nimport { FormItemValidateResult, getFormItemClassName } from './form-item';\nimport {\n Data,\n FormResetParams,\n FormValidateMessage,\n FormValidateParams,\n FormValidateResult,\n TdFormProps,\n ValidateResultList,\n} from './type';\nimport props from './props';\nimport { FormInjectionKey, FormItemContext, useCLASSNAMES } from './consts';\nimport { FormResetEvent, FormSubmitEvent } from '../common';\n\nimport { FormDisabledProvider, FormReadonlyProvider } from './hooks';\nimport { usePrefixClass, useTNodeJSX } from '../hooks';\n\ntype Result = FormValidateResult;\n\nexport default defineComponent({\n name: 'TForm',\n props,\n setup(props, { expose }) {\n const renderContent = useTNodeJSX();\n const { disabled, readonly } = toRefs(props);\n provide('formDisabled', {\n disabled,\n });\n provide('formReadonly', {\n readonly,\n });\n\n const formRef = ref(null);\n const children = ref([]);\n\n const { showErrorMessage, labelWidth, labelAlign, data, colon, requiredMark, rules, errorMessage, resetType } =\n toRefs(props);\n provide(\n FormInjectionKey,\n reactive({\n showErrorMessage,\n labelWidth,\n labelAlign,\n data,\n colon,\n requiredMark,\n rules,\n errorMessage,\n resetType,\n children,\n renderContent,\n }),\n );\n\n const COMPONENT_NAME = usePrefixClass('form');\n const CLASS_NAMES = useCLASSNAMES();\n const formClass = computed(() => [\n CLASS_NAMES.value.form,\n { [`${COMPONENT_NAME.value}-inline`]: props.layout === 'inline' },\n ]);\n\n const FORM_ITEM_CLASS_PREFIX = usePrefixClass('form-item');\n\n const getFirstError = (result: Result) => {\n if (isBoolean(result)) return '';\n const [firstKey] = Object.keys(result);\n if (props.scrollToFirstError) {\n const tmpClassName = getFormItemClassName(FORM_ITEM_CLASS_PREFIX.value, firstKey);\n scrollTo(tmpClassName);\n }\n const resArr = result[firstKey] as ValidateResultList;\n if (!isArray(resArr)) return '';\n return resArr.filter((item) => !item.result)[0].message;\n };\n // 校验不通过时,滚动到第一个错误表单\n const scrollTo = (selector: string) => {\n const [dom] = formRef.value.getElementsByClassName(selector);\n const behavior = props.scrollToFirstError;\n if (behavior) {\n dom && dom.scrollIntoView({ behavior });\n }\n };\n\n const needValidate = (name: string | number, fields: string[] | undefined) => {\n if (!fields || !isArray(fields)) return true;\n return fields.indexOf(`${name}`) !== -1;\n };\n const formatValidateResult = (validateResultList: FormItemValidateResult[]) => {\n const result: Record = validateResultList.reduce((r, err) => Object.assign(r || {}, err), {});\n Object.keys(result).forEach((key) => {\n if (result[key] === true) {\n delete result[key];\n }\n });\n return isEmpty(result) ? true : result;\n };\n const validate = async (param?: FormValidateParams): Promise => {\n const { fields, trigger = 'all', showErrorMessage } = param || {};\n const list = children.value\n .filter((child) => isFunction(child.validate) && needValidate(String(child.name), fields))\n .map((child) => child.validate(trigger, showErrorMessage));\n const arr = await Promise.all(list);\n const result = formatValidateResult(arr);\n const firstError = getFirstError(result);\n props.onValidate?.({\n validateResult: result,\n firstError,\n });\n return result;\n };\n const validateOnly = async (params?: Omit) => {\n const { fields, trigger = 'all' } = params || {};\n const list = children.value\n .filter((child) => isFunction(child.validateOnly) && needValidate(String(child.name), fields))\n .map((child) => child.validateOnly(trigger));\n const arr = await Promise.all(list);\n return formatValidateResult(arr);\n };\n const submitParams = ref>();\n const onSubmit = (e?: FormSubmitEvent) => {\n if (props.preventSubmitDefault && e) {\n e.preventDefault();\n e.stopPropagation();\n }\n validate(submitParams.value).then((r) => {\n props.onSubmit?.({ validateResult: r, firstError: getFirstError(r), e });\n });\n submitParams.value = undefined;\n };\n const submit = async (params?: Pick) => {\n submitParams.value = params;\n requestSubmit(formRef.value);\n };\n\n const resetParams = ref>();\n const onReset = (e?: FormResetEvent) => {\n if (props.preventSubmitDefault && e) {\n e.preventDefault();\n e.stopPropagation();\n }\n children.value\n .filter(\n (child) =>\n isFunction(child.resetField) && needValidate(String(child.name), resetParams.value?.fields as string[]),\n )\n .forEach((child) => child.resetField(resetParams.value?.type));\n resetParams.value = undefined;\n props.onReset?.({ e });\n };\n const reset = (params?: FormResetParams) => {\n (resetParams.value as any) = params;\n formRef.value.reset();\n };\n\n const clearValidate = (fields?: Array) => {\n children.value.forEach((child) => {\n if (isFunction(child.resetHandler) && needValidate(String(child.name), fields)) {\n child.resetHandler();\n }\n });\n };\n const setValidateMessage = (validateMessage: FormValidateMessage) => {\n const keys = Object.keys(validateMessage);\n if (!keys.length) return;\n const list = children.value\n .filter((child) => isFunction(child.setValidateMessage) && keys.includes(`${child.name}`))\n .map((child) => child.setValidateMessage(validateMessage[child.name as keyof FormData]));\n Promise.all(list);\n };\n\n expose({ validate, submit, reset, clearValidate, setValidateMessage, validateOnly });\n\n return () => (\n
    onSubmit(e)} onReset={(e) => onReset(e)}>\n {renderContent('default')}\n
    \n );\n },\n});\n","import _Form from './form';\nimport _FormItem from './form-item';\nimport withInstall from '../utils/withInstall';\nimport { TdFormProps, TdFormItemProps, Data } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type FormProps = TdFormProps;\nexport type FormItemProps = TdFormItemProps;\n\nexport const Form = withInstall(_Form);\nexport const FormItem = withInstall(_FormItem);\nexport default Form;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRadioProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许取消选中 */\n allowUncheck: Boolean,\n /** 是否选中 */\n checked: {\n type: Boolean,\n default: undefined,\n },\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n /** 是否选中,非受控属性 */\n defaultChecked: Boolean,\n /** 单选按钮内容,同 label */\n default: {\n type: [String, Function] as PropType,\n },\n /** 是否为禁用态。如果存在父组件 RadioGroup,默认值由 RadioGroup.disabled 控制。优先级:Radio.disabled > RadioGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 主文案 */\n label: {\n type: [String, Function] as PropType,\n },\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 单选按钮的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioProps['value'],\n },\n /** 选中状态变化时触发 */\n onChange: Function as PropType,\n /** 点击时触发,一般用于外层阻止冒泡场景 */\n onClick: Function as PropType,\n};\n","import { InjectionKey } from 'vue';\nimport { RadioValue } from '../type';\n\nexport const RadioGroupInjectionKey: InjectionKey<{\n name: string;\n disabled: boolean;\n readonly: boolean;\n value: RadioValue;\n allowUncheck: boolean;\n setValue: (value: RadioValue, context: { e: Event; name?: string }) => void;\n}> = Symbol('RadioGroupProvide');\n\nexport const RadioButtonInjectionKey: InjectionKey<{}> = Symbol('RadioButtonProvide');\n","import { defineComponent, inject, toRefs, computed, ref } from 'vue';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { omit } from 'lodash-es';\nimport props from './props';\nimport { RadioGroupInjectionKey, RadioButtonInjectionKey } from './consts';\n\n// hooks\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport useVModel from '../hooks/useVModel';\nimport { useContent } from '../hooks/tnode';\nimport { isString } from 'lodash-es';\nimport { getValidAttrs } from '@tdesign/common-js/utils/helper';\n\nexport default defineComponent({\n name: 'TRadio',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n const inputRef = ref();\n const { checked, modelValue } = toRefs(props);\n const [innerChecked, setInnerChecked] = useVModel(\n checked,\n modelValue,\n props.defaultChecked,\n props.onChange,\n 'checked',\n );\n\n const radioChecked = computed(() => (radioGroup ? props.value === radioGroup.value : innerChecked.value));\n\n const radioGroup = inject(RadioGroupInjectionKey, undefined);\n\n const allowUncheck = computed(() => Boolean(props.allowUncheck || radioGroup?.allowUncheck));\n\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n\n const onLabelClick = (e: MouseEvent) => {\n if (isDisabled.value || isReadonly.value) return;\n props.onClick?.({ e });\n\n if (radioChecked.value && !allowUncheck.value) return;\n\n if (radioGroup) {\n const value = radioChecked.value && allowUncheck.value ? undefined : props.value;\n radioGroup.setValue(value, { e, name: radioGroup.name });\n } else {\n const value = allowUncheck.value ? !radioChecked.value : true;\n setInnerChecked(value, { e });\n }\n };\n\n const inputEvents = computed(() =>\n getValidAttrs({\n focus: attrs.onFocus,\n blur: attrs.onBlur,\n keydown: attrs.onKeydown,\n keyup: attrs.onKeyup,\n keypresss: attrs.onKeypresss,\n }),\n );\n const wrapperAttrs = computed(() => {\n const events = [...Object.keys(inputEvents.value), 'input', 'change'].map(\n (str) => `on${str[0].toUpperCase()}${str.slice(1)}`,\n );\n return omit(attrs, events);\n });\n /** Event END */\n\n // extend radioGroup disabled props\n const groupDisabled = computed(() => radioGroup?.disabled);\n const groupReadonly = computed(() => radioGroup?.readonly);\n const isDisabled = useDisabled({ afterDisabled: groupDisabled });\n const isReadonly = useReadonly({ afterReadonly: groupReadonly });\n\n // attribute\n const inputProps = computed(() => ({\n name: radioGroup ? radioGroup.name : props.name,\n checked: radioChecked.value,\n disabled: isDisabled.value,\n readonly: isReadonly.value,\n value: props.value,\n }));\n\n /** Style */\n const { STATUS } = useCommonClassName();\n const radioButton = inject(RadioButtonInjectionKey, undefined);\n const radioBtnName = usePrefixClass('radio-button');\n const COMPONENT_NAME = usePrefixClass('radio');\n const prefixCls = computed(() => (radioButton ? radioBtnName.value : COMPONENT_NAME.value));\n const inputClass = computed(() => [\n `${prefixCls.value}`,\n {\n [STATUS.value.checked]: inputProps.value.checked,\n [STATUS.value.disabled]: inputProps.value.disabled,\n },\n ]);\n /** Style END */\n\n const renderContent = useContent();\n\n return () => (\n \n \n \n {renderContent('default', 'label')}\n \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdRadioGroupProps } from '../radio/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许取消选中 */\n allowUncheck: Boolean,\n /** 是否禁用全部子单选框。优先级:Radio.disabled > RadioGroup.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 单选组件按钮形式。RadioOption 数据类型为 string 或 number 时,表示 label 和 value 值相同 */\n options: {\n type: Array as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 组件尺寸【讨论中】 */\n size: {\n type: String as PropType,\n default: 'medium' as TdRadioGroupProps['size'],\n validator(val: TdRadioGroupProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 组件风格 */\n theme: {\n type: String as PropType,\n default: 'radio' as TdRadioGroupProps['theme'],\n validator(val: TdRadioGroupProps['theme']): boolean {\n if (!val) return true;\n return ['radio', 'button'].includes(val);\n },\n },\n /** 选中的值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioGroupProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdRadioGroupProps['value'],\n },\n /** 选中的值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean] as PropType,\n },\n /** 单选组件按钮形式 */\n variant: {\n type: String as PropType,\n default: 'outline' as TdRadioGroupProps['variant'],\n validator(val: TdRadioGroupProps['variant']): boolean {\n if (!val) return true;\n return ['outline', 'primary-filled', 'default-filled'].includes(val);\n },\n },\n /** 选中值发生变化时触发, `context.name` 指 RadioGroup 的 name 属性 */\n onChange: Function as PropType,\n};\n","import { computed, defineComponent, provide, reactive } from 'vue';\nimport props from './props';\nimport Radio from './radio';\nimport { omit } from 'lodash-es';\nimport { RadioButtonInjectionKey } from './consts';\n\nimport { useContent } from '../hooks/tnode';\n\nexport default defineComponent({\n name: 'TRadioButton',\n inheritAttrs: false,\n props,\n setup(props, { attrs }) {\n provide(RadioButtonInjectionKey, reactive({}));\n\n const radioProps = computed(() => {\n const res = {\n ...props,\n ...omit(\n attrs,\n Object.keys(attrs).filter((key) => key.startsWith('on')),\n ),\n };\n\n return res;\n });\n\n const renderContent = useContent();\n\n return () => {renderContent('default', 'label')};\n },\n});\n","import type { ComponentPublicInstance, Ref } from 'vue';\nimport { unref, watch, getCurrentScope, onScopeDispose } from 'vue';\n\nexport const defaultWindow = typeof window !== 'undefined' ? window : undefined;\nexport interface ConfigurableWindow {\n window?: Window;\n}\n// eslint-disable-next-line no-undef\nexport interface MutationObserverOptions extends MutationObserverInit, ConfigurableWindow {}\nexport type MaybeRef = T | Ref;\nexport type VueInstance = ComponentPublicInstance;\nexport type MaybeElementRef = MaybeRef;\nexport type MaybeElement = HTMLElement | SVGElement | VueInstance | undefined | null;\nexport type UnRefElementReturn = T extends VueInstance\n ? Exclude\n : T | undefined;\n\nexport type Fn = () => void;\n\nexport function unrefElement(elRef: MaybeElementRef): UnRefElementReturn {\n const plain = unref(elRef);\n return (plain as VueInstance)?.$el ?? plain;\n}\nexport function tryOnScopeDispose(fn: Fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nexport function useMutationObserver(\n target: MaybeElementRef,\n // eslint-disable-next-line no-undef\n callback: MutationCallback,\n options: MutationObserverOptions = {},\n) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer: MutationObserver | undefined;\n const isSupported = window && 'MutationObserver' in window;\n\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = undefined;\n }\n };\n\n const stopWatch = watch(\n () => unrefElement(target),\n (el) => {\n cleanup();\n\n if (isSupported && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n },\n { immediate: true },\n );\n\n const stop = () => {\n cleanup();\n stopWatch();\n };\n\n tryOnScopeDispose(stop);\n\n return {\n isSupported,\n stop,\n };\n}\n\nexport type UseMutationObserverReturn = ReturnType;\n","import {\n VNode,\n defineComponent,\n h,\n provide,\n reactive,\n ref,\n computed,\n onMounted,\n watch,\n nextTick,\n toRefs,\n onUnmounted,\n} from 'vue';\nimport { isString } from 'lodash-es';\nimport { isNumber } from 'lodash-es';\nimport { isNil } from 'lodash-es';\nimport { throttle } from 'lodash-es';\n\nimport props from './radio-group-props';\nimport { RadioOptionObj, RadioOption } from './type';\nimport TRadio from './radio';\nimport TRadioButton from './radio-button';\nimport { RadioGroupInjectionKey } from './consts';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeDefault } from '../hooks/tnode';\nimport { useKeyboard } from './hooks';\nimport { isFunction } from 'lodash-es';\nimport { useMutationObserver } from '../watermark/hooks';\nimport type { UseMutationObserverReturn } from '../watermark/hooks';\nimport useResizeObserver from '../hooks/useResizeObserver';\n\nexport default defineComponent({\n name: 'TRadioGroup',\n props,\n setup(props) {\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n /** calculate bar style */\n const radioGroupRef = ref();\n const radioBtnName = usePrefixClass('radio-button');\n const { STATUS, SIZE } = useCommonClassName();\n\n // 键盘操作\n useKeyboard(radioGroupRef, setInnerValue);\n\n const checkedClassName = computed(() => `.${radioBtnName.value}.${STATUS.value.checked}`);\n\n const barStyle = ref({ width: '0px', height: '0px', left: '0px', top: '0px', 'transition-property': 'none' });\n\n const calcDefaultBarStyle = () => {\n const div = document.createElement('div');\n div.setAttribute('style', 'position: absolute; visibility: hidden;');\n div.appendChild(radioGroupRef.value.cloneNode(true));\n document.body.appendChild(div);\n\n const defaultCheckedRadio: HTMLElement = div.querySelector(checkedClassName.value);\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = defaultCheckedRadio;\n barStyle.value = {\n ...barStyle.value,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n document.body.removeChild(div);\n };\n\n const calcBarStyle = (disableAnimation = false) => {\n if (props.variant === 'outline') return;\n\n const checkedRadio: HTMLElement = radioGroupRef.value.querySelector(checkedClassName.value);\n\n const transitionProperty = disableAnimation ? 'none' : 'all';\n if (!checkedRadio) {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: '0px',\n height: '9px',\n left: '0px',\n top: '0px',\n };\n return;\n }\n\n const { offsetWidth, offsetHeight, offsetLeft, offsetTop } = checkedRadio;\n // current node is not rendered,fallback to default render\n if (!offsetWidth) {\n calcDefaultBarStyle();\n } else {\n barStyle.value = {\n 'transition-property': transitionProperty,\n width: `${offsetWidth}px`,\n height: `${offsetHeight}px`,\n left: `${offsetLeft}px`,\n top: `${offsetTop}px`,\n };\n }\n };\n\n let observerReturn: UseMutationObserverReturn;\n\n watch(innerValue, async () => {\n await nextTick();\n calcBarStyle();\n });\n\n onMounted(() => {\n calcBarStyle(true);\n useResizeObserver(\n radioGroupRef,\n throttle(async () => {\n await nextTick();\n calcBarStyle();\n }, 300),\n );\n\n const checkedRadioLabel: HTMLElement = radioGroupRef.value.querySelector(\n `${checkedClassName.value} .${radioBtnName.value}__label`,\n );\n if (checkedRadioLabel) {\n observerReturn = useMutationObserver(\n checkedRadioLabel,\n (mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'characterData') {\n calcBarStyle();\n }\n });\n },\n {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n },\n );\n }\n });\n onUnmounted(() => {\n observerReturn?.stop();\n });\n /** calculate bar style end */\n\n const { name, disabled, readonly } = toRefs(props);\n provide(\n RadioGroupInjectionKey,\n reactive({\n name,\n disabled,\n readonly,\n value: innerValue,\n allowUncheck: props.allowUncheck,\n setValue: setInnerValue,\n }),\n );\n\n const radioGroupName = usePrefixClass('radio-group');\n const renderSlot = useTNodeDefault();\n const renderBlock = (): VNode => {\n if (props.variant.includes('filled') && !isNil(innerValue.value))\n return
    ;\n };\n const renderOptions = (): VNode[] => {\n return props.options?.map((option: RadioOption) => {\n let opt = option as RadioOptionObj;\n if (isNumber(option) || isString(option)) {\n opt = { value: option, label: option.toString() };\n }\n const RadioComponent = props.theme === 'button' ? TRadioButton : TRadio;\n return (\n \n {isFunction(opt.label) ? opt.label(h) : opt.label}\n \n );\n });\n };\n\n const groupClass = computed(() => [\n `${radioGroupName.value}`,\n SIZE.value[props.size],\n {\n [`${radioGroupName.value}__outline`]: props.variant === 'outline',\n [`${radioGroupName.value}--filled`]: props.variant.includes('filled'),\n [`${radioGroupName.value}--primary-filled`]: props.variant === 'primary-filled',\n },\n ]);\n\n return () => (\n
    \n {renderSlot('default') || renderOptions()}\n {renderBlock()}\n
    \n );\n },\n});\n","import { onBeforeMount, onMounted, Ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { off, on } from '../../utils/dom';\nimport { CHECKED_CODE_REG } from '@tdesign/common-js/common';\n\n/** 键盘操作 */\nexport function useKeyboard(\n radioGroupRef: Ref,\n setInnerValue: (value: any, context: { e: Event }) => void,\n) {\n const checkRadioInGroup = (e: KeyboardEvent) => {\n const isCheckedCode = CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code);\n if (isCheckedCode) {\n e.preventDefault();\n const inputNode = (e.target as HTMLElement).querySelector('input');\n if (!inputNode) return;\n\n const data = inputNode.dataset;\n if (inputNode.checked && data.allowUncheck) {\n setInnerValue(undefined, { e });\n } else {\n // Number\n let value: number | string | boolean = !isNaN(Number(data.value)) ? Number(data.value) : data.value;\n // Boolean\n value = (isString(value) && { true: true, false: false }[value]) || value;\n // String\n value = isString(value) && value[0] === \"'\" ? value.replace(/'/g, '') : value;\n setInnerValue(value, { e });\n }\n }\n };\n\n onMounted(() => {\n on(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n\n onBeforeMount(() => {\n off(radioGroupRef.value, 'keydown', checkRadioInGroup);\n });\n}\n","import _Radio from './radio';\nimport _Group from './group';\nimport _RadioButton from './radio-button';\nimport withInstall from '../utils/withInstall';\nimport { TdRadioProps, TdRadioGroupProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type RadioProps = TdRadioProps;\nexport type RadioGroupProps = TdRadioGroupProps;\n\nexport const Radio = withInstall(_Radio);\nexport const RadioGroup = withInstall(_Group);\nexport const RadioButton = withInstall(_RadioButton);\n\nexport default Radio;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSliderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用于控制数字输入框组件,值为 false 表示不显示数字输入框;值为 true 表示呈现默认数字输入框;值类型为 Object 表示透传属性到数字输入框组件 */\n inputNumberProps: {\n type: [Boolean, Object] as PropType,\n default: false as TdSliderProps['inputNumberProps'],\n },\n /** 滑块当前值文本。
    值为 true 显示默认文案;值为 false 不显示滑块当前值文本;
    值为 `${value}%` 则表示组件会根据占位符渲染文案;
    值类型为函数时,参数 `value` 标识滑块值,参数 `position=start` 表示范围滑块的起始值,参数 `position=end` 表示范围滑块的终点值 */\n label: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdSliderProps['label'],\n },\n /** 滑块布局方向 */\n layout: {\n type: String as PropType,\n default: 'horizontal' as TdSliderProps['layout'],\n validator(val: TdSliderProps['layout']): boolean {\n if (!val) return true;\n return ['vertical', 'horizontal'].includes(val);\n },\n },\n /** 刻度标记,示例:[0, 10, 40, 200] 或者 `{ 10: (val) => val + '%', 50: (h) => }` */\n marks: {\n type: [Object, Array] as PropType,\n },\n /** 滑块范围最大值 */\n max: {\n type: Number,\n default: 100,\n },\n /** 滑块范围最小值 */\n min: {\n type: Number,\n default: 0,\n },\n /** 双游标滑块 */\n range: Boolean,\n /** 控制步长刻度值显示 */\n showStep: Boolean,\n /** 步长 */\n step: {\n type: Number,\n default: 1,\n },\n /** 透传提示组件属性 */\n tooltipProps: {\n type: Object as PropType,\n },\n /** 滑块值 */\n value: {\n type: [Number, Array] as PropType,\n default: undefined as TdSliderProps['value'],\n },\n modelValue: {\n type: [Number, Array] as PropType,\n default: undefined as TdSliderProps['value'],\n },\n /** 滑块值,非受控属性 */\n defaultValue: {\n type: [Number, Array] as PropType,\n default: 0 as TdSliderProps['defaultValue'],\n },\n /** 滑块值变化时触发 */\n onChange: Function as PropType,\n /** 松开拖动`mouseup` 或点击滑块条时触发,适合不希望在拖动滑块过程频繁触发回调的场景实用 */\n onChangeEnd: Function as PropType,\n};\n","import { isString } from 'lodash-es';\nimport { TNode } from '../../common';\n/**\n * 计算刻度区间值停止坐标\n * @param position 刻度坐标值 ;\n * @param isVertical 是否垂直方向\n * @returns {string} style内联样式值\n */\nexport const getStopStyle = (position: number, isVertical: boolean) => {\n return isVertical ? { top: `calc(${100 - position}% - 1px)` } : { left: `${position}%` };\n};\n\n/**\n * 格式化返回slider初始值\n * @param val slider传入的value\n * @param type 第一个滑块or第二个滑块值\n * @returns {number}\n */\nexport const formatSliderValue = (val: number | number[], type: 'first' | 'second') => {\n if (type === 'first') {\n if (val instanceof Array) {\n return val[0];\n }\n return val;\n }\n if (val instanceof Array) {\n return val[1];\n }\n return 0;\n};\n\n/**\n * 格式化label参数\n * @param label slider传入的label属性\n * @param val slider传入的value\n */\nexport const formatLabel = (label: TNode | string, val: number) => {\n if (Boolean(label) === false) {\n return String(val);\n }\n if (isString(label)) {\n let text = String(val);\n try {\n const rule = /\\${value}%/g;\n const enableToReplace = rule.test(label);\n if (enableToReplace) {\n text = label.replace(rule, String(val));\n } else {\n text = label;\n throw new Error();\n }\n } catch (e) {\n console.warn(`fail to parse label prop, please pass string such as '\\${value}%'`);\n }\n return text;\n }\n return label;\n};\n","import { TooltipProps } from '../../tooltip';\nimport { ref, computed, ComputedRef, Ref } from 'vue';\nimport { TdSliderProps } from '../type';\nimport { formatLabel } from '../utils';\nimport { useTNodeJSX } from '../../hooks';\n\nconst initialProps: TooltipProps & { overlayClassName: string } = {\n visible: false,\n trigger: 'hover',\n showArrow: true,\n overlayInnerStyle: undefined,\n overlayClassName: undefined,\n attach: 'body',\n theme: 'default',\n};\n\nexport interface TooltipConfig {\n tooltipProps: boolean | TooltipProps;\n vertical: boolean;\n value: number;\n label: TdSliderProps['label'];\n position: string;\n range: boolean;\n}\n\n/**\n * 聚合管理滑块tooltip内容hook\n * @param tooltipProps tooltip属性配置\n * @param vertical 是否垂直展示\n * @returns\n */\nexport const useSliderTooltip = (tooltipConfig: Ref) => {\n const tooltipRef = ref();\n const showTooltip = computed({\n get() {\n return !tooltipConfig.value.tooltipProps === false;\n },\n set(val) {\n return val;\n },\n });\n const normalizeProps = ref({ ...initialProps });\n /** 开关显示tooltip */\n const toggleTooltip = (toState: boolean) => {\n if (!showTooltip.value) return;\n normalizeProps.value.visible = toState;\n };\n\n const renderTNodeJSX = useTNodeJSX();\n\n /** 合并最终tooltip属性,以外部同名属性覆盖初始化属性 */\n const validProps = computed(() => {\n const { vertical, tooltipProps, label, value, position, range } = tooltipConfig.value;\n const placement = vertical ? 'right' : 'top';\n\n let content = (() => {\n if (label === true) {\n return String(value);\n }\n if (typeof label === 'string') {\n return formatLabel(label, value);\n }\n return renderTNodeJSX('label', {\n params: range\n ? {\n value,\n position,\n }\n : { value },\n });\n })();\n\n if (tooltipProps instanceof Object) {\n if (!tooltipProps?.placement) {\n normalizeProps.value.placement = placement;\n }\n if (tooltipProps.content) {\n content = tooltipProps.content;\n }\n // @ts-ignore\n return { ...normalizeProps.value, ...tooltipProps, content };\n }\n return { ...normalizeProps.value, placement, content };\n });\n\n return {\n tooltipRef,\n tooltipProps: validProps as ComputedRef,\n toggleTooltip,\n showTooltip,\n };\n};\n","import { InjectionKey } from 'vue';\n\ntype SliderPropsInjectKey = InjectionKey<{\n max: number;\n min: number;\n step: number;\n dragging: boolean;\n toggleDragging: (val: boolean) => void;\n precision: number;\n disabled: boolean;\n resetSize: () => void;\n sliderSize: number;\n}>;\nexport const sliderPropsInjectKey: SliderPropsInjectKey = Symbol('sliderProps');\n","import {\n ComponentPublicInstance,\n PropType,\n computed,\n defineComponent,\n inject,\n nextTick,\n reactive,\n ref,\n watchEffect,\n} from 'vue';\nimport TTooltip from '../tooltip/index';\nimport { TdSliderProps } from './type';\n\nimport { isFunction } from 'lodash-es';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useSliderTooltip } from './hooks/useSliderTooltip';\nimport { sliderPropsInjectKey } from './consts';\n\nexport default defineComponent({\n name: 'TSliderButton',\n props: {\n value: {\n type: [Number],\n default: 0,\n },\n vertical: {\n type: Boolean,\n default: false,\n },\n tooltipProps: {\n type: [Boolean, Object],\n default: true,\n },\n label: {\n type: [String, Boolean, Function] as PropType,\n },\n range: {\n type: Boolean,\n default: false,\n },\n position: {\n type: String,\n },\n },\n emits: ['input', 'mouseup'],\n setup(props, ctx) {\n const COMPONENT_NAME = usePrefixClass('slider__button');\n const tooltipConfig = computed(() => props);\n const { tooltipRef, tooltipProps, toggleTooltip, showTooltip } = useSliderTooltip(tooltipConfig);\n const parentProps = inject(sliderPropsInjectKey);\n const buttonRef = ref();\n const dragged = ref(false);\n\n /** --------------------- slide button 相关状态start ------------------- */\n const slideButtonProps = reactive({\n dragging: false,\n isClick: false,\n startX: 0,\n startY: 0,\n startPos: 0,\n newPos: null,\n });\n\n const rangeDiff = computed(() => {\n return Number(parentProps.max) - Number(parentProps.min);\n });\n\n const currentPos = computed(() => {\n return `${((props.value - parentProps.min) / rangeDiff.value) * 100}%`;\n });\n\n const step = computed(() => {\n return parentProps.step;\n });\n\n const wrapperStyle = computed(() => {\n return props.vertical ? { bottom: currentPos.value } : { left: currentPos.value };\n });\n\n watchEffect(() => {\n parentProps.toggleDragging(slideButtonProps.dragging);\n });\n /** --------------------- slide button 相关状态end ------------------- */\n\n /** --------------------- slide button 相关事件start ------------------- */\n /** 设置当前位置 */\n const setPosition = (pos: number) => {\n let newPos = pos;\n if (newPos === null || Number.isNaN(newPos)) {\n return;\n }\n\n if (newPos > 100) {\n newPos = 100;\n } else if (newPos < 0) {\n newPos = 0;\n }\n const perStepLen = (100 * step.value) / rangeDiff.value;\n const steps = Math.round(newPos / perStepLen);\n let value = steps * perStepLen * rangeDiff.value * 0.01;\n value += parentProps.min;\n value = Number(parseFloat(`${value}`).toFixed(parentProps.precision));\n ctx.emit('input', value);\n nextTick(() => {\n tooltipRef.value && tooltipRef.value.updatePopper?.();\n });\n };\n\n const handleMouseEnter = () => {\n (buttonRef.value as ComponentPublicInstance).focus();\n toggleTooltip(true);\n };\n const handleMouseLeave = () => {\n if (!slideButtonProps.dragging) {\n toggleTooltip(false);\n }\n };\n\n const onDragStart = (event: MouseEvent | TouchEvent) => {\n slideButtonProps.dragging = true;\n slideButtonProps.isClick = true;\n const { type } = event;\n let { clientY, clientX } = event as MouseEvent;\n if (type === 'touchstart') {\n const touch = (event as TouchEvent).touches;\n [clientY, clientX] = [touch[0].clientY, touch[0].clientX];\n }\n if (props.vertical) {\n slideButtonProps.startY = clientY;\n } else {\n slideButtonProps.startX = clientX;\n }\n slideButtonProps.startPos = parseFloat(currentPos.value);\n slideButtonProps.newPos = slideButtonProps.startPos;\n };\n\n const onDragging = (e: MouseEvent | TouchEvent) => {\n const event = e;\n if (!slideButtonProps.dragging) {\n return;\n }\n dragged.value = true;\n slideButtonProps.isClick = false;\n if (parentProps?.resetSize && isFunction(parentProps?.resetSize)) {\n parentProps.resetSize();\n }\n let diff = 0;\n const parentSliderSize = parentProps.sliderSize;\n const { type } = event;\n let { clientY, clientX } = event as MouseEvent;\n if (type === 'touchmove') {\n const touch = (event as TouchEvent).touches;\n [clientY, clientX] = [touch[0].clientY, touch[0].clientX];\n }\n if (props.vertical) {\n diff = slideButtonProps.startY - clientY;\n } else {\n diff = clientX - slideButtonProps.startX;\n }\n diff = (diff / parentSliderSize) * 100;\n slideButtonProps.newPos = slideButtonProps.startPos + diff;\n setPosition(slideButtonProps.newPos);\n };\n\n const onDragEnd = () => {\n if (slideButtonProps.dragging) {\n setTimeout(() => {\n slideButtonProps.dragging = false;\n toggleTooltip(false);\n if (!slideButtonProps.isClick) {\n setPosition(slideButtonProps.newPos);\n }\n dragged.value && ctx.emit('mouseup');\n dragged.value = false;\n }, 0);\n window.removeEventListener('mousemove', onDragging);\n window.removeEventListener('touchmove', onDragging);\n window.removeEventListener('mouseup', onDragEnd);\n window.removeEventListener('touchend', onDragEnd);\n window.removeEventListener('contextmenu', onDragEnd);\n }\n };\n\n function onButtonDown(event: MouseEvent | TouchEvent) {\n if (parentProps.disabled) {\n return;\n }\n event.preventDefault();\n onDragStart(event);\n window.addEventListener('mousemove', onDragging);\n window.addEventListener('mouseup', onDragEnd);\n window.addEventListener('touchmove', onDragging);\n window.addEventListener('touchend', onDragEnd);\n window.addEventListener('contextmenu', onDragEnd);\n }\n\n const onKeyDown = (state: 'sub' | 'add') => {\n if (parentProps.disabled) {\n return;\n }\n let stepLength = (step.value / rangeDiff.value) * 100;\n if (state === 'sub') {\n stepLength = -stepLength;\n }\n slideButtonProps.newPos = parseFloat(currentPos.value) + stepLength;\n setPosition(slideButtonProps.newPos);\n };\n\n const onNativeKeyDown = (e: KeyboardEvent) => {\n const { code } = e;\n e.preventDefault();\n if (code === 'ArrowDown' || code === 'ArrowLeft') {\n onKeyDown('sub');\n }\n if (code === 'ArrowUp' || code === 'ArrowRight') {\n onKeyDown('add');\n }\n };\n /** --------------------- slide button 相关事件end ------------------- */\n\n /** 暴露设置按钮坐标方法供父组件调用 */\n ctx.expose({\n setPosition,\n });\n\n return () => (\n \n {/* hide tooltip with `hideEmptyPopup`, empty content won't show */}\n \n
    \n \n
    \n );\n },\n});\n","import { defineComponent, PropType } from 'vue';\nimport { TdSliderProps } from './type';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport default defineComponent({\n name: 'TSliderMark',\n props: {\n mark: {\n type: [Object, Array, String, Number] as PropType,\n },\n point: {\n type: Number,\n },\n onClickMarkPoint: {\n type: Function,\n default: () => {},\n },\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('slider__mark');\n const changeValue = (e: MouseEvent) => {\n e.stopPropagation();\n props?.onClickMarkPoint?.(props.point);\n };\n\n return () => (\n
    \n {props.mark}\n
    \n );\n },\n});\n","import { computed, Ref } from 'vue';\nimport { omit } from 'lodash-es';\nimport { TdSliderProps } from '../type';\nimport InputNumber, { InputNumberProps, ChangeContext } from '../../input-number';\nimport { isBoolean } from 'lodash-es';\n\ninterface useSliderInputProps {\n inputNumberProps: boolean | TdSliderProps['inputNumberProps'];\n max: number;\n min: number;\n step: number;\n prefixName: string;\n vertical: boolean;\n disabled: boolean;\n}\n\n/**\n * 聚合管理inputNumber渲染逻辑\n */\nexport const useSliderInput = (config: Ref) => {\n const name = config.value.prefixName;\n\n /** 根据传入属性缓存计算inputNumber props */\n const sliderInputState = computed(() => {\n let initialState: InputNumberProps = {\n format: undefined,\n placeholder: '',\n theme: 'column',\n decimalPlaces: config.value.step.toString().split('.')[1]?.length || 0,\n };\n const inputProps = config.value;\n if (!isBoolean(inputProps.inputNumberProps)) {\n const inputTheme = inputProps.inputNumberProps?.theme;\n initialState = { ...initialState, ...omit(inputProps.inputNumberProps, 'onChange') };\n if (['column', 'row', 'normal'].includes(inputTheme)) {\n initialState.theme = inputTheme;\n }\n }\n return initialState;\n });\n\n const sliderNumberClass = computed(() => {\n return [\n `${name}__input`,\n {\n 'is-vertical': config.value.vertical,\n },\n ];\n });\n\n const renderInputNumber = (val: number, changeFn: (val: number) => void) => {\n // if exist min or max prop, onChange callback function will pass undefined value when decrease\n const normalizeChangeFn = (num: number | undefined, context: ChangeContext) => {\n if (num !== undefined && !isNaN(num)) {\n changeFn(num);\n }\n (config.value?.inputNumberProps as InputNumberProps)?.onChange?.(num, context);\n };\n return (\n \n );\n };\n\n return renderInputNumber;\n};\n","/**\n * Thanks to https://github.com/ElemeFE/element/blob/dev/packages/input/src/calcTextareaHeight.js\n */\n\nimport { CSSProperties } from 'vue';\n\ntype RowsType = number | null;\n\nlet hiddenTextarea: HTMLTextAreaElement;\n\nconst HIDDEN_TEXTAREA_STYLE = `\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow-y:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n`;\n\nconst SIZING_PROPS = [\n 'letter-spacing',\n 'line-height',\n 'padding-top',\n 'padding-bottom',\n 'font-family',\n 'font-weight',\n 'font-size',\n 'font-variant',\n 'text-rendering',\n 'text-transform',\n 'width',\n 'text-indent',\n 'padding-left',\n 'padding-right',\n 'border-width',\n 'box-sizing',\n];\n\nfunction calculateNodeStyling(targetElement: HTMLTextAreaElement) {\n if (typeof window === 'undefined' || !targetElement) return;\n\n const style = window.getComputedStyle(targetElement);\n\n const boxSizing =\n style.getPropertyValue('box-sizing') ||\n style.getPropertyValue('-moz-box-sizing') ||\n style.getPropertyValue('-webkit-box-sizing');\n\n const paddingSize =\n parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n\n const borderSize =\n parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n\n const sizingStyle = SIZING_PROPS.map((name) => `${name}:${style.getPropertyValue(name)}`).join(';');\n\n return {\n sizingStyle,\n paddingSize,\n borderSize,\n boxSizing,\n };\n}\n\nexport function calcTextareaHeight(\n targetElement: HTMLTextAreaElement,\n minRows: RowsType = 1,\n maxRows: RowsType = null,\n) {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.appendChild(hiddenTextarea);\n }\n\n const { paddingSize, borderSize, boxSizing, sizingStyle } = calculateNodeStyling(targetElement);\n\n hiddenTextarea.setAttribute('style', `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`);\n hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';\n\n let height = hiddenTextarea.scrollHeight;\n const result: CSSProperties = {};\n\n if (boxSizing === 'border-box') {\n height += borderSize;\n } else if (boxSizing === 'content-box') {\n height -= paddingSize;\n }\n\n hiddenTextarea.value = '';\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n\n if (minRows !== null) {\n let minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n result.minHeight = `${minHeight}px`;\n }\n if (maxRows !== null) {\n let maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n height = Math.min(maxHeight, height);\n }\n result.height = `${height}px`;\n hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);\n hiddenTextarea = null;\n return result;\n}\n","import {\n defineComponent,\n VNode,\n ref,\n reactive,\n provide,\n computed,\n onBeforeUnmount,\n onMounted,\n watch,\n toRefs,\n} from 'vue';\nimport { isNumber } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport props from './props';\nimport TSliderButton from './slider-button';\nimport { SliderValue } from './type';\n\n// hooks\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useSliderMark } from './hooks/useSliderMark';\nimport { useSliderInput } from './hooks/useSliderInput';\nimport { formatSliderValue, getStopStyle } from './utils';\nimport { sliderPropsInjectKey } from './consts';\nimport useVModel from '../hooks/useVModel';\nimport { useDisabled } from '../hooks/useDisabled';\n\ninterface SliderButtonType {\n setPosition: (param: number) => {};\n}\nexport default defineComponent({\n name: 'TSlider',\n model: {\n prop: 'value',\n event: 'change',\n },\n props,\n setup(props) {\n const disabled = useDisabled();\n const COMPONENT_NAME = usePrefixClass('slider');\n const { STATUS } = useCommonClassName();\n const { value, modelValue } = toRefs(props) as any;\n const [sliderValue, setSliderValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const sliderContainerRef = ref();\n const sliderRef = ref();\n const firstButtonRef = ref();\n const secondButtonRef = ref();\n\n const firstValue = ref(formatSliderValue(sliderValue.value, 'first'));\n const secondValue = ref(formatSliderValue(sliderValue.value, 'second'));\n const dragging = ref(false);\n const sliderSize = ref(1);\n\n const vertical = computed(() => {\n return props.layout === 'vertical';\n });\n\n /** ----------------- 样式计算 start ------------- */\n const containerClass = computed(() => [`${COMPONENT_NAME.value}__container`, { 'is-vertical': vertical.value }]);\n const sliderClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n {\n 'is-vertical': vertical.value,\n [`${COMPONENT_NAME.value}--with-input`]: props.inputNumberProps,\n [`${COMPONENT_NAME.value}--vertical`]: vertical.value,\n [STATUS.value.disabled]: disabled.value,\n },\n ];\n });\n const sliderRailClass = computed(() => [\n `${COMPONENT_NAME.value}__rail`,\n { 'show-input': props.inputNumberProps, disabled: disabled.value },\n ]);\n const runwayStyle = computed(() => {\n return vertical.value ? { height: '100%' } : {};\n });\n const barStyle = computed(() => {\n const barStart = props.range ? `${(100 * (minValue.value - props.min)) / rangeDiff.value}%` : '0%';\n const currentDiff = props.range ? maxValue.value - minValue.value : firstValue.value - props.min;\n const barSize = `${(100 * currentDiff) / rangeDiff.value}%`;\n return vertical.value\n ? {\n height: barSize,\n bottom: barStart,\n }\n : {\n width: barSize,\n left: barStart,\n };\n });\n /** ----------------- 样式计算 end ------------- */\n\n // 差值范围\n const rangeDiff = computed(() => {\n return props.max - props.min;\n });\n const minValue = computed(() => {\n return Math.min(firstValue.value, secondValue.value);\n });\n const maxValue = computed(() => {\n return Math.max(firstValue.value, secondValue.value);\n });\n const steps = computed(() => {\n if (!props.showStep || props.min > props.max) return [];\n if (props.step === 0) {\n console.warn('[Element Warn][Slider]step should not be 0.');\n return [];\n }\n const stepCount = rangeDiff.value / props.step;\n const stepWidth = (100 * props.step) / rangeDiff.value;\n const result = [];\n for (let i = 1; i < stepCount; i++) {\n result.push(i * stepWidth);\n }\n if (props.range) {\n const r = result.filter(\n (step) =>\n step < (100 * (minValue.value - props.min)) / rangeDiff.value ||\n props.step > (100 * (maxValue.value - props.max)) / rangeDiff.value,\n );\n return r;\n }\n return result.filter((step) => step > (100 * (firstValue.value - props.min)) / rangeDiff.value);\n });\n const precision = computed(() => {\n const precisions = [props.min, props.max, props.step].map((item) => {\n const decimalArr = `${item}`.split('.');\n return decimalArr[1] ? decimalArr[1].length : 0;\n });\n return Math.max.apply(null, precisions);\n });\n // 防止值越级\n const setValues = (value: SliderValue): SliderValue => {\n const [min, max] = [props.min, props.max];\n if (min > max) {\n console.warn('[Slider] max should be greater than min.');\n return;\n }\n // 双向滑块\n if (props.range && isArray(value)) {\n let [maxLimit, minLimit] = [Math.min(...value), Math.max(...value)];\n if (maxLimit > max) {\n maxLimit = firstValue.value;\n }\n if (maxLimit < min) {\n maxLimit = min;\n }\n if (minLimit < min) {\n minLimit = secondValue.value;\n }\n if (minLimit > max) {\n minLimit = max;\n }\n [firstValue.value, secondValue.value] = [maxLimit, minLimit];\n return [maxLimit, minLimit];\n }\n let preValue = value as number;\n if (preValue < min) {\n preValue = min;\n }\n if (preValue > max) {\n preValue = max;\n }\n return preValue;\n };\n // 只要触发修改就要有这个方法抛出change事件\n const emitChange = (value: SliderValue) => {\n let changeValue = value;\n if (changeValue === undefined) {\n if (props.range) {\n changeValue = [firstValue.value, secondValue.value];\n } else {\n changeValue = firstValue.value;\n }\n }\n const fixValue: SliderValue = setValues(changeValue);\n setSliderValue(fixValue);\n };\n\n const resetSize = () => {\n if (sliderRef.value) {\n sliderSize.value = sliderRef.value[`client${vertical.value ? 'Height' : 'Width'}`];\n }\n };\n\n // 是否以完成挂载(部分组合组件如inputNumber依赖于首次init后的状态值进行渲染)\n const isAlreadyMount = ref(false);\n // 初始化传入的value\n const init = () => {\n let valuetext: string | number;\n if (props.range) {\n if (isArray(sliderValue.value)) {\n firstValue.value = Math.max(props.min || 0, sliderValue.value[0]);\n secondValue.value = Math.min(props.max || 100, sliderValue.value[1]);\n } else {\n firstValue.value = props.min || 0;\n secondValue.value = props.max || 100;\n }\n valuetext = `${firstValue.value}-${secondValue.value}`;\n } else {\n if (!isNumber(sliderValue.value)) {\n firstValue.value = props.min;\n } else {\n firstValue.value = Math.min(props.max, Math.max(props.min, sliderValue.value as number));\n }\n valuetext = String(firstValue.value);\n }\n if (sliderContainerRef.value) {\n sliderContainerRef.value.setAttribute('aria-valuetext', valuetext);\n }\n resetSize();\n window.addEventListener('resize', resetSize);\n };\n // 相应button的位置\n const setPosition = (percent: number): void => {\n let targetValue = (percent * rangeDiff.value) / 100;\n targetValue = props.min + targetValue;\n if (!props.range && firstButtonRef.value) {\n firstButtonRef.value.setPosition(percent);\n return;\n }\n let button;\n if (Math.abs(minValue.value - targetValue) < Math.abs(maxValue.value - targetValue)) {\n button = firstValue.value < secondValue.value ? 'button1' : 'button2';\n } else {\n button = firstValue.value > secondValue.value ? 'button1' : 'button2';\n }\n if (button === 'button1' && firstButtonRef.value) {\n firstButtonRef.value.setPosition(percent);\n }\n if (button === 'button2' && secondButtonRef.value) {\n secondButtonRef.value.setPosition(percent);\n }\n };\n\n const getFixValue = () => {\n const changeValue = props.range ? [firstValue.value, secondValue.value] : firstValue.value;\n return setValues(changeValue);\n };\n\n // 全局点击\n const onSliderClick = (event: MouseEvent): void => {\n if (disabled.value || dragging.value) {\n return;\n }\n if (!sliderRef.value) return;\n resetSize();\n let value = 0;\n if (vertical.value) {\n const sliderOffsetBottom = sliderRef.value.getBoundingClientRect().bottom;\n value = ((sliderOffsetBottom - event.clientY) / sliderSize.value) * 100;\n setPosition(value);\n } else {\n const sliderOffsetLeft = sliderRef.value.getBoundingClientRect().left;\n value = ((event.clientX - sliderOffsetLeft) / sliderSize.value) * 100;\n setPosition(value);\n }\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n };\n\n // mark 点击触发修改事件\n const changeValue = (point: number) => {\n if (disabled.value || dragging.value) {\n return;\n }\n resetSize();\n const value = Number((point / rangeDiff.value) * 100);\n setPosition(value);\n emitChange(point);\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n };\n\n /** 副作用监听 */\n watch(\n () => sliderValue.value,\n (newVal) => {\n if (dragging.value === true) return;\n if (isArray(newVal) && props.range) {\n [firstValue.value, secondValue.value] = newVal;\n } else {\n firstValue.value = newVal as number;\n }\n },\n );\n\n watch([firstValue, secondValue, dragging], (newStates, prevStates) => {\n if (newStates[0] !== prevStates[0]) {\n if (props.range) {\n emitChange([minValue.value, maxValue.value]);\n } else {\n emitChange(firstValue.value);\n }\n }\n if (newStates[1] !== prevStates[1]) {\n if (props.range) {\n emitChange([minValue.value, maxValue.value]);\n }\n }\n if (newStates[2] !== prevStates[2] && newStates[2] === false) {\n init();\n }\n });\n\n /** 挂载&卸载 */\n onMounted(() => {\n init();\n isAlreadyMount.value = true;\n });\n onBeforeUnmount(() => {\n window.removeEventListener('resize', resetSize);\n });\n\n /** -------------------------- 渲染相关逻辑 start -------------------------- */\n const markConfig = computed(() => ({\n max: props.max,\n min: props.min,\n marks: props.marks,\n vertical: vertical.value,\n prefixName: COMPONENT_NAME.value,\n }));\n const renderMask = useSliderMark(markConfig);\n\n const inputConfig = computed(() => ({\n max: props.max,\n min: props.min,\n inputNumberProps: props.inputNumberProps,\n step: props.step,\n prefixName: COMPONENT_NAME.value,\n vertical: vertical.value,\n disabled: disabled.value,\n }));\n const renderInputNumber = useSliderInput(inputConfig);\n\n const renderInputButton = (): VNode => {\n const firstInputVal = setValues(firstValue.value) as number;\n const firstInputOnChange = (v: number) => {\n firstValue.value = setValues(v) as number;\n };\n const secondInputVal = setValues(secondValue.value) as number;\n const secondInputOnChange = (v: number) => {\n secondValue.value = setValues(v) as number;\n };\n return (\n \n {renderInputNumber(firstInputVal, firstInputOnChange)}\n {props.range &&
    }\n {props.range && renderInputNumber(secondInputVal, secondInputOnChange)}\n
    \n );\n };\n /** -------------------------- 渲染相关逻辑 end -------------------------- */\n\n /** 父子共用状态&方法 */\n const toggleDragging = (toState: boolean) => {\n dragging.value = toState;\n };\n\n const { min, max, step } = toRefs(props);\n provide(\n sliderPropsInjectKey,\n reactive({\n min,\n max,\n step,\n dragging,\n toggleDragging,\n precision,\n disabled,\n resetSize,\n sliderSize,\n }),\n );\n\n return () => (\n
    \n \n
    \n
    \n {\n firstValue.value = v;\n }}\n onMouseup={() => {\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n }}\n />\n {props.range && (\n {\n secondValue.value = v;\n }}\n onMouseup={() => {\n const fixValue = getFixValue();\n props.onChangeEnd?.(fixValue);\n }}\n />\n )}\n {props.showStep && (\n
    \n {steps.value.map((item: any, key) => {\n if (item.position === 0 || item.position === 100) return null;\n return (\n
    \n );\n })}\n
    \n )}\n {renderMask(changeValue)}\n
    \n
    \n {isAlreadyMount.value && props.inputNumberProps && renderInputButton()}\n
    \n );\n },\n});\n","import { computed, VNode, Ref } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { SliderMarks } from '../type';\nimport { TNode } from '../../common';\nimport log from '@tdesign/common-js/log/log';\nimport { getStopStyle } from '../utils';\nimport TSliderMark from '../slider-mark';\nimport { isArray } from 'lodash-es';\n\ninterface MarkItem {\n point: number;\n position: number;\n mark: string | number | TNode<{ value: number }>;\n}\n\ninterface useSliderMarkProps {\n max: number;\n min: number;\n marks: number[] | SliderMarks;\n vertical: boolean;\n prefixName: string;\n}\n\n/**\n * 聚合管理刻度值渲染逻辑\n */\nexport const useSliderMark = (config: Ref) => {\n const name = config.value.prefixName;\n const markList = computed(() => {\n const markProps = config.value;\n if (!markProps.marks) {\n return [];\n }\n const legalMarks: Array = [];\n if (isArray(markProps.marks)) {\n const marksList = cloneDeep(markProps.marks).sort((a, b) => a - b);\n const maxLimit = Math.max(...marksList, markProps.max);\n const minLimit = Math.min(...marksList, markProps.min);\n if (minLimit < markProps.min) {\n log.errorOnce('TSlider', 'marks min value should >= props min');\n }\n if (maxLimit > markProps.max) {\n log.errorOnce('TSlider', 'marks max value should <= props max');\n }\n marksList.forEach((item) => {\n legalMarks.push({\n point: item,\n position: ((item - minLimit) / (maxLimit - minLimit)) * 100,\n mark: item,\n });\n });\n } else {\n Object.keys(markProps.marks)\n .map(parseFloat)\n .sort((a, b) => a - b)\n .filter((point) => point <= markProps.max && point >= markProps.min)\n .forEach((point) => {\n const item: MarkItem = {\n point,\n position: ((point - markProps.min) * 100) / (markProps.max - markProps.min),\n mark: markProps.marks[point],\n };\n legalMarks.push(item);\n });\n }\n return legalMarks;\n });\n\n const renderMask = (onChangeFn?: (point: number) => void): VNode => {\n if (!markList.value.length) return null;\n\n return (\n
    \n
    \n {markList.value.map((item, index) => {\n if (item.position === 0 || item.position === 100) return null;\n return (\n \n );\n })}\n
    \n
    \n {markList.value.map((item, key) => (\n \n ))}\n
    \n
    \n );\n };\n\n return renderMask;\n};\n","import _Slider from './slider';\nimport _SliderButton from './slider-button';\nimport withInstall from '../utils/withInstall';\nimport { TdSliderProps } from './type';\n\nimport './style';\n\nexport * from './type';\n\nexport type SliderProps = TdSliderProps;\nexport const Slider = withInstall(_Slider);\nexport const SliderButton = withInstall(_SliderButton);\nexport default Slider;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdSwitchProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** Switch 切换状态前的回调方法,常用于需要发起异步请求的场景,回调返回值支持布尔和 Promise 类型,返回`false`或 Promise reject不继续执行change,否则则继续执行。 */\n beforeChange: {\n type: Function as PropType,\n },\n /** 用于自定义开关的值,[打开时的值,关闭时的值]。默认为 [true, false]。示例:[1, 0]、['open', 'close'] */\n customValue: {\n type: Array as PropType,\n },\n /** 是否禁用组件。优先级:Switch.disabled > Form.disabled */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 开关内容,[开启时内容,关闭时内容]。示例:['开', '关'] 或 (value) => value ? '开' : '关' */\n label: {\n type: [Array, Function] as PropType,\n default: (): TdSwitchProps['label'] => [] as TdSwitchProps['label'],\n },\n /** 是否处于加载中状态 */\n loading: Boolean,\n /** 开关尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdSwitchProps['size'],\n validator(val: TdSwitchProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 开关值 */\n value: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdSwitchProps['value'],\n },\n modelValue: {\n type: [String, Number, Boolean] as PropType,\n default: undefined as TdSwitchProps['value'],\n },\n /** 开关值,非受控属性 */\n defaultValue: {\n type: [String, Number, Boolean] as PropType,\n },\n /** 数据发生变化时触发 */\n onChange: Function as PropType,\n};\n","import { defineComponent, h, VNodeChild, computed, watch, toRefs } from 'vue';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport TLoading from '../loading';\nimport props from './props';\nimport { TNodeReturnValue } from '../common';\n\n// hooks\nimport { useDisabled } from '../hooks/useDisabled';\nimport useVModel from '../hooks/useVModel';\nimport { isFunction } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TSwitch',\n props,\n setup(props, { slots }) {\n const disabled = useDisabled();\n const COMPONENT_NAME = usePrefixClass('switch');\n const { STATUS, SIZE } = useCommonClassName();\n // values\n const { value, modelValue } = toRefs(props);\n const [innerValue, setSwitchVal] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const activeValue = computed(() => {\n if (props.customValue && props.customValue.length > 0) {\n return props.customValue[0];\n }\n return true;\n });\n const inactiveValue = computed(() => {\n if (props.customValue && props.customValue.length > 1) {\n return props.customValue[1];\n }\n return false;\n });\n\n // methods\n function handleToggle(e: MouseEvent) {\n const checked = innerValue.value === activeValue.value ? inactiveValue.value : activeValue.value;\n // emits\n setSwitchVal(checked, { e });\n }\n\n function toggle(e: MouseEvent) {\n if (disabled.value || props.loading) {\n return;\n }\n if (!props.beforeChange) {\n handleToggle(e);\n return;\n }\n Promise.resolve(props.beforeChange())\n .then((v) => {\n if (v) {\n handleToggle(e);\n }\n })\n .catch((e) => {\n throw new Error(`Switch: some error occurred: ${e}`);\n });\n }\n\n // classes\n const classes = computed(() => [\n `${COMPONENT_NAME.value}`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.loading]: props.loading,\n [STATUS.value.checked]: innerValue.value === activeValue.value || props.modelValue === activeValue.value,\n },\n ]);\n const nodeClasses = computed(() => {\n return [\n `${COMPONENT_NAME.value}__handle`,\n {\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.loading]: props.loading,\n },\n ];\n });\n const contentClasses = computed(() => {\n return [\n `${COMPONENT_NAME.value}__content`,\n SIZE.value[props.size],\n {\n [STATUS.value.disabled]: disabled.value,\n },\n ];\n });\n\n watch(\n innerValue,\n (val) => {\n if (props.customValue && props.customValue.length && !props.customValue.includes(val)) {\n throw new Error(`value is not in ${JSON.stringify(props.customValue)}`);\n }\n },\n {\n immediate: true,\n },\n );\n\n const content = computed(() => {\n if (isFunction(props.label)) {\n return props.label(h, { value: innerValue.value });\n }\n if (isString(props.label)) {\n return props.label;\n }\n if (isArray(props.label) && props.label.length) {\n const label = innerValue.value === activeValue.value ? props.label[0] : props.label[1];\n if (!label) return;\n if (isString(label)) {\n return label;\n }\n if (isFunction(label)) {\n return label(h);\n }\n }\n if (slots.label) {\n return slots.label({ value: innerValue.value });\n }\n return null;\n });\n return () => {\n let switchContent: VNodeChild;\n let loadingContent: TNodeReturnValue;\n if (props.loading) {\n loadingContent = ;\n } else if (content.value) {\n switchContent = content.value;\n }\n\n return (\n
    \n {loadingContent}\n
    {switchContent}
    \n
    \n );\n };\n },\n});\n","import _Switch from './switch';\nimport withInstall from '../utils/withInstall';\nimport { TdSwitchProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type SwitchProps = TdSwitchProps;\n\nexport const Switch = withInstall(_Switch);\nexport default Switch;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTextareaProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 超出maxlength或maxcharacter之后是否还允许输入 */\n allowInputOverMax: Boolean,\n /** 自动聚焦,拉起键盘 */\n autofocus: Boolean,\n /** 高度自动撑开。 autosize = true 表示组件高度自动撑开,同时,依旧允许手动拖高度。如果设置了 autosize.maxRows 或者 autosize.minRows 则不允许手动调整高度 */\n autosize: {\n type: [Boolean, Object] as PropType,\n default: false as TdTextareaProps['autosize'],\n },\n /** 是否禁用文本框 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度 */\n maxcharacter: {\n type: Number,\n },\n /** 用户最多可以输入的字符个数 */\n maxlength: {\n type: [String, Number] as PropType,\n },\n /** 名称,HTML 元素原生属性 */\n name: {\n type: String,\n default: '',\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 文本框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTextareaProps['status'],\n validator(val: TdTextareaProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 文本框值 */\n value: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n modelValue: {\n type: [String, Number] as PropType,\n default: undefined as TdTextareaProps['value'],\n },\n /** 文本框值,非受控属性 */\n defaultValue: {\n type: [String, Number] as PropType,\n },\n /** 失去焦点时触发 */\n onBlur: Function as PropType,\n /** 输入内容变化时触发 */\n onChange: Function as PropType,\n /** 获得焦点时触发 */\n onFocus: Function as PropType,\n /** 键盘按下时触发 */\n onKeydown: Function as PropType,\n /** 按下字符键时触发(keydown -> keypress -> keyup) */\n onKeypress: Function as PropType,\n /** 释放键盘时触发 */\n onKeyup: Function as PropType,\n /** 字数超出限制时触发 */\n onValidate: Function as PropType,\n};\n","import {\n defineComponent,\n computed,\n watch,\n ref,\n nextTick,\n onMounted,\n toRefs,\n inject,\n StyleValue,\n CSSProperties,\n} from 'vue';\nimport { isObject, merge, omit } from 'lodash-es';\n\nimport { calcTextareaHeight } from './utils';\nimport { FormItemInjectionKey } from '../form/consts';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\nimport { getCharacterLength } from '@tdesign/common-js/utils/helper';\n\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useLengthLimit } from '../input/hooks/useLengthLimit';\n\nimport props from './props';\nimport type { TextareaValue, TdTextareaProps } from './type';\n\nimport { getValidAttrs } from '@tdesign/common-js/utils/helper';\n\nexport default defineComponent({\n name: 'TTextarea',\n inheritAttrs: false,\n props,\n setup(props: TdTextareaProps, { attrs, expose }) {\n const prefix = usePrefixClass();\n const name = usePrefixClass('textarea');\n const TEXTAREA_TIPS_CLASS = computed(() => `${name.value}__tips`);\n const TEXTAREA_LIMIT = computed(() => `${name.value}__limit`);\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const disabled = useDisabled();\n const isReadonly = useReadonly();\n const textareaStyle = ref({});\n\n const refTextareaElem = ref();\n const focused = ref(false);\n const isComposing = ref(false);\n\n const focus = () => refTextareaElem.value?.focus();\n const blur = () => refTextareaElem.value?.blur();\n\n // methods\n const adjustTextareaHeight = () => {\n if (props.autosize === true) {\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value);\n } else if (props.autosize && typeof props.autosize === 'object') {\n const { minRows, maxRows } = props.autosize;\n textareaStyle.value = calcTextareaHeight(refTextareaElem.value, minRows, maxRows);\n } else if (attrs.rows) {\n textareaStyle.value = { height: 'auto', minHeight: 'auto' };\n } else if (attrs.style && refTextareaElem.value?.style?.height) {\n textareaStyle.value = { height: refTextareaElem.value.style.height };\n }\n };\n\n const setInputValue = (v: TextareaValue = '') => {\n const textareaElem = refTextareaElem.value;\n const sV = String(v);\n if (!textareaElem) {\n return;\n }\n\n if (textareaElem.value !== sV) {\n textareaElem.value = sV;\n innerValue.value = sV;\n }\n };\n const inputValueChangeHandle = (e: InputEvent) => {\n const { target } = e;\n let val = (target as HTMLInputElement).value;\n if (props.maxcharacter && props.maxcharacter >= 0) {\n const stringInfo = getCharacterLength(val, props.maxcharacter);\n val = typeof stringInfo === 'object' && stringInfo.characters;\n }\n !isComposing.value && setInnerValue(val, { e });\n nextTick(() => setInputValue(val));\n adjustTextareaHeight();\n };\n\n const handleInput = (e: InputEvent) => {\n inputValueChangeHandle(e);\n };\n\n const onCompositionstart = () => {\n isComposing.value = true;\n };\n\n const onCompositionend = (e: InputEvent | CompositionEvent) => {\n isComposing.value = false;\n inputValueChangeHandle(e as InputEvent);\n };\n\n const eventDeal = (name: T, e: KeyboardEvent) => {\n if (disabled.value) return;\n const eventName = `on${name[0].toUpperCase()}${name.slice(1)}` as `on${Capitalize}`;\n props[eventName]?.(innerValue.value, { e });\n };\n\n const emitKeyDown = (e: KeyboardEvent) => {\n eventDeal('keydown', e);\n };\n const emitKeyUp = (e: KeyboardEvent) => {\n eventDeal('keyup', e);\n };\n const emitKeypress = (e: KeyboardEvent) => {\n eventDeal('keypress', e);\n };\n\n const emitFocus = (e: FocusEvent) => {\n adjustTextareaHeight();\n if (disabled.value) return;\n focused.value = true;\n props.onFocus?.(innerValue.value, { e });\n };\n\n const formItem = inject(FormItemInjectionKey, undefined);\n const emitBlur = (e: FocusEvent) => {\n if (!e.target) return;\n adjustTextareaHeight();\n focused.value = false;\n props.onBlur?.(innerValue.value, { e });\n formItem?.handleBlur();\n };\n\n // computed\n const textareaClasses = computed(() => {\n return [\n name.value,\n {\n [`${prefix.value}-is-disabled`]: disabled.value,\n [`${prefix.value}-is-readonly`]: isReadonly.value,\n },\n ];\n });\n const inputAttrs = computed>(() => {\n return getValidAttrs({\n autofocus: props.autofocus,\n disabled: disabled.value,\n readonly: isReadonly.value,\n placeholder: props.placeholder,\n maxlength: (!props.allowInputOverMax && props.maxlength) || undefined,\n name: props.name || undefined,\n });\n });\n const characterNumber = computed(() => {\n const characterInfo = getCharacterLength(String(innerValue.value || ''));\n if (typeof characterInfo === 'object') {\n // @ts-ignore\n // TODO: 这里的写法本身就有问题,因为 getCharacterLength(String(innerValue.value || '')) 一定会返回 number,所以这个分支肯定是进不了的,除非 getCharacterLength 写得有问题\n return characterInfo.length;\n }\n return characterInfo;\n });\n\n const limitParams = computed(() => ({\n value: [undefined, null].includes(innerValue.value) ? undefined : String(innerValue.value),\n status: props.status,\n maxlength: Number(props.maxlength),\n maxcharacter: props.maxcharacter,\n allowInputOverMax: props.allowInputOverMax,\n onValidate: props.onValidate,\n }));\n const { tStatus } = useLengthLimit(limitParams);\n\n // watch\n watch(\n () => innerValue.value,\n () => adjustTextareaHeight(),\n );\n\n watch(refTextareaElem, (el) => {\n if (!el) return;\n adjustTextareaHeight();\n });\n\n watch(\n () => props.autofocus,\n (val) => {\n if (val) {\n refTextareaElem.value.focus();\n }\n },\n );\n\n watch(textareaStyle, (val) => {\n const { style } = attrs as { style: StyleValue };\n if (isObject(style)) {\n setStyle(refTextareaElem.value, merge(style, val) as Record);\n } else {\n setStyle(refTextareaElem.value, val);\n }\n });\n\n watch(innerValue, () => {\n nextTick(() => adjustTextareaHeight());\n });\n\n watch(() => props.autosize, adjustTextareaHeight, { deep: true });\n\n expose({\n focus,\n blur,\n });\n\n onMounted(() => {\n adjustTextareaHeight();\n });\n\n const renderTNodeJSX = useTNodeJSX();\n return () => {\n const inputEvents = getValidAttrs({\n onFocus: emitFocus,\n onBlur: emitBlur,\n onKeydown: emitKeyDown,\n onKeyup: emitKeyUp,\n onKeypress: emitKeypress,\n });\n const { STATUS } = useCommonClassName();\n const classes = computed(() => [\n `${name.value}__inner`,\n {\n [`${prefix.value}-is-${tStatus.value}`]: tStatus.value,\n [STATUS.value.disabled]: disabled.value,\n [STATUS.value.focused]: focused.value,\n [`${prefix.value}-resize-none`]: typeof props.autosize === 'object',\n },\n 'narrow-scrollbar',\n ]);\n\n const tips = renderTNodeJSX('tips');\n\n const textTips = tips && (\n
    {tips}
    \n );\n\n const limitText =\n (props.maxcharacter && (\n {`${characterNumber.value}/${props.maxcharacter}`}\n )) ||\n (!props.maxcharacter && props.maxlength && (\n {`${innerValue.value ? String(innerValue.value)?.length : 0}/${\n props.maxlength\n }`}\n ));\n\n return (\n
    \n \n {textTips || limitText ? (\n \n {textTips}\n {limitText}\n
    \n ) : null}\n
    \n );\n };\n },\n});\n","import _Textarea from './textarea';\nimport withInstall from '../utils/withInstall';\nimport { TdTextareaProps } from './type';\n\nimport './style';\n\nexport * from './type';\nexport type TextareaProps = TdTextareaProps;\n\nexport const Textarea = withInstall(_Textarea);\nexport default Textarea;\n","import { ComponentPublicInstance } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { isUndefined } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nimport { TransferListOptionBase, TransferItemOption, TdTransferProps, TransferValue, DataOption } from '../types';\n\nexport { emitEvent } from '../../utils/event';\n\nexport const TRANSFER_NAME = 'TTransfer';\n\nexport const SOURCE = 'source';\nexport const TARGET = 'target';\n\ninterface TreeNode {\n children?: Array;\n}\n\nfunction findTopNode(vm: ComponentPublicInstance): ComponentPublicInstance {\n // 找到t-transfer这层父节点\n if (vm.$options.name === 't-transfer') {\n return vm;\n }\n if (vm.$parent) {\n return findTopNode(vm.$parent);\n }\n return vm;\n}\n\nfunction getTransferListOption(prop: T | Array): TransferListOptionBase {\n if (isArray(prop)) {\n return {\n source: prop[0],\n target: prop[1],\n };\n }\n return {\n source: prop,\n target: prop,\n };\n}\n\nfunction getDataValues(\n data: Array,\n filterValues: Array,\n {\n isTreeMode = false,\n include = true, // true=保留filterValues,false=删除filterValues中元素\n remainValue = [] as Array,\n } = {},\n): Array {\n // 用于处理 tree 组件这种数据结构是树形的\n if (isTreeMode) {\n let result: Array = [];\n if (data) {\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n const isInclude = filterValues.includes(item.value) && !item.disabled;\n if (!include && isInclude) {\n continue; // 排除模式下子元素一律排除\n }\n\n // 只找叶子节点\n if (item.children && item.children.length > 0) {\n const childResult = getDataValues(item.children, filterValues, {\n isTreeMode,\n include,\n });\n result = result.concat(childResult);\n } else if ((include && isInclude) || (!include && !isInclude)) {\n result.push(item.value);\n }\n }\n }\n return result;\n }\n return data\n .filter((item) => {\n if (!item) return false;\n const isInclude = filterValues.includes(item.value);\n return (\n ((include && isInclude) || (!include && !isInclude)) && (!item.disabled || remainValue.includes(item.value))\n );\n })\n .map((item) => item.value);\n}\n\nfunction getTransferData(\n data: Array,\n keys: TdTransferProps['keys'],\n isTreeMode = false,\n): Array {\n const list: Array = data.map((transferDataItem, index): TransferItemOption => {\n const labelKey = keys?.label || 'label';\n const valueKey = keys?.value || 'value';\n const disabledKey = keys?.disabled || 'disabled';\n if (isUndefined(transferDataItem[labelKey])) {\n throw new Error(`${labelKey} is not in DataOption ${JSON.stringify(transferDataItem)}`);\n }\n if (isUndefined(transferDataItem[valueKey])) {\n throw new Error(`${valueKey} is not in DataOption ${JSON.stringify(transferDataItem)}`);\n }\n const result: TransferItemOption = {\n label: transferDataItem[labelKey] as string,\n value: transferDataItem[valueKey],\n key: `key__value_${transferDataItem[valueKey]}_index_${index}`,\n disabled: transferDataItem[disabledKey] ?? false,\n data: transferDataItem,\n };\n if (isTreeMode && transferDataItem.children) {\n result.children = getTransferData(transferDataItem.children, keys, true);\n }\n return result;\n });\n return list;\n}\n\nfunction isAllNodeValid(data: TransferItemOption, filterValues: Array, needMatch: boolean): boolean {\n if (filterValues.includes(data.value)) {\n return needMatch;\n }\n return false;\n}\n\nfunction isTreeNodeValid(data: TransferItemOption, filterValues: Array, needMatch: boolean): boolean {\n if (!data) return !needMatch;\n\n if (filterValues.includes(data.value)) {\n return needMatch;\n }\n\n if (data.children?.length) {\n return data.children.some((item) => isTreeNodeValid(item, filterValues, needMatch));\n }\n return !needMatch;\n}\n\n// 复制树并过滤节点\nfunction cloneTreeWithFilter(\n sourceTree: TransferItemOption[],\n targetTree: TransferItemOption[],\n filterValues: Array,\n needMatch: boolean,\n) {\n sourceTree.forEach((item) => {\n let newNode: TransferItemOption;\n if (isAllNodeValid(item, filterValues, needMatch)) {\n // 如果当前节点直接命中,则复制所有子节点\n newNode = cloneDeep(item);\n targetTree.push(newNode);\n } else if (isTreeNodeValid(item, filterValues, needMatch)) {\n // 如果有合法子节点,就复制这个节点\n newNode = {\n ...item,\n };\n delete newNode.children;\n targetTree.push(newNode);\n if (item.children) {\n newNode.children = [];\n cloneTreeWithFilter(item.children, newNode.children, filterValues, needMatch);\n if (newNode.children.length === 0) {\n delete newNode.children;\n }\n }\n }\n });\n}\n\n// 过滤列表,如果是树的话需要保持树的结构\nfunction filterTransferData(\n data: Array,\n filterValues: Array,\n needMatch = true,\n isTreeMode = false,\n) {\n if (!isTreeMode) {\n if (needMatch) {\n // 正向过滤。要保持filterValues顺序\n return filterValues.map((value) => data.find((item) => item.value === value)).filter((item) => !!item);\n }\n // 反向过滤\n return data.filter((item) => {\n const isMatch = filterValues.includes(item.value);\n return !isMatch;\n });\n }\n\n const result: Array = [];\n cloneTreeWithFilter(data, result, filterValues, needMatch);\n return result;\n}\n\n// 获取树节点的叶子数量\nfunction getLefCount(nodes: Array): number {\n let total = 0;\n nodes.forEach((child) => {\n if (child.children && child.children.length > 0) {\n total += getLefCount(child.children);\n } else {\n total += 1;\n }\n });\n return total;\n}\n\nexport {\n findTopNode,\n getTransferListOption,\n getDataValues,\n getTransferData,\n cloneTreeWithFilter,\n filterTransferData,\n getLefCount,\n};\n","import { defineComponent, PropType } from 'vue';\nimport { SearchIcon as TdSearchIcon } from 'tdesign-icons-vue-next';\n\nimport { SearchOption } from '../types';\nimport TInput from '../../input';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\n\nexport default defineComponent({\n name: 'TTransferSearch',\n props: {\n value: {\n type: String,\n default: '',\n },\n search: {\n type: [Boolean, Object] as PropType,\n default: false,\n },\n placeholder: {\n type: String,\n default: '',\n },\n onChange: Function,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const { SearchIcon } = useGlobalIcon({ SearchIcon: TdSearchIcon });\n const handleChange = (value: string, changeCtx: any) => {\n const { e, trigger } = changeCtx;\n props.onChange?.({\n value,\n e,\n trigger,\n });\n };\n const inputProps = typeof props.search === 'object' ? props.search : { clearable: true };\n\n return () => (\n
    \n \n \n \n
    \n );\n },\n});\n","import { defineComponent, VNode, PropType, ref, computed, watch, toRefs } from 'vue';\nimport {\n EmptyType,\n SearchEvent,\n SearchOption,\n TransferValue,\n TdTransferProps,\n TransferListType,\n TransferItemOption,\n} from '../types';\nimport { PageInfo, TdPaginationProps, Pagination } from '../../pagination';\nimport { Checkbox as TCheckbox, CheckboxGroup as TCheckboxGroup, CheckboxProps } from '../../checkbox';\nimport { getLefCount, getDataValues, TARGET } from '../utils';\nimport Search from './transfer-search';\nimport { useTNodeDefault } from '../../hooks/tnode';\n\nimport { useConfig, usePrefixClass } from '../../hooks/useConfig';\nimport { isString } from 'lodash-es';\nimport { filter } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\nimport useDragSort from '../hooks/useDragSort';\n\nconst props = {\n checkboxProps: {\n type: Object as PropType,\n default: () => ({}),\n },\n dataSource: {\n type: Array as PropType>,\n default(): Array {\n return [];\n },\n },\n listType: {\n type: String as PropType,\n default: 'target',\n },\n title: {\n type: [String, Function],\n },\n checkedValue: {\n type: Array as PropType>,\n default(): Array {\n return [];\n },\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n search: {\n type: [Boolean, Object] as PropType,\n default: false,\n },\n transferItem: Function as PropType,\n empty: {\n type: [Function, String] as PropType,\n },\n pagination: [Boolean, Object],\n footer: [Function, String],\n checkAll: Boolean,\n isTreeMode: {\n type: Boolean as PropType,\n default: false,\n },\n onCheckedChange: Function as PropType<(event: Array) => void>,\n onPageChange: Function,\n onScroll: Function,\n onSearch: Function,\n onDataChange: Function as PropType<(data: Array, movedValue: Array) => void>,\n draggable: Boolean,\n currentValue: {\n type: Array as PropType>,\n },\n};\n\nexport default defineComponent({\n name: 'TTransferList',\n props,\n setup(props) {\n const classPrefix = usePrefixClass();\n const { currentValue } = toRefs(props);\n const { t, globalConfig } = useConfig('transfer');\n // 搜索框输入内容\n const filterValue = ref('');\n // 用于兼容处理 Pagination 的非受控属性(非受控属性仅有 change 事件变化,无 props 变化,因此只需监听事件)\n const defaultCurrent = ref(1);\n // 用于兼容处理 Pagination 的非受控属性\n const defaultPageSize = ref(0);\n\n const currentPage = computed(() => {\n const pagination = props.pagination as any;\n return pagination?.current || defaultCurrent.value || pagination?.defaultCurrent;\n });\n const pageSize = computed(() => {\n const pagination = props.pagination as any;\n return pagination?.pageSize || defaultPageSize.value || pagination?.defaultPageSize;\n });\n\n const filteredData = computed(() => {\n const isTreeData = props.dataSource.some((item) => item.children && item.children.length);\n if (!isTreeData) {\n return props.dataSource.filter((item: TransferItemOption) => {\n const label = item && item.label.toString();\n return label.toLowerCase().indexOf(filterValue.value.toLowerCase()) > -1;\n });\n } else {\n return filteredTreeData(props.dataSource, filterValue.value);\n }\n });\n\n const pageTotal = computed(() => {\n return (filteredData.value && filteredData.value.length) || 0;\n });\n\n const curPageData = computed(() => {\n let pageData = filteredData.value;\n if (!props.pagination) return pageData;\n if (pageSize.value === 0) return pageData;\n const startIndex = (currentPage.value - 1) * pageSize.value;\n const endIndex = currentPage.value * pageSize.value;\n pageData = pageData.slice(startIndex, endIndex);\n return pageData;\n });\n const paginationProps = computed(() => {\n const defaultPaginationProps: TdPaginationProps = {\n totalContent: false,\n pageSizeOptions: [],\n };\n return typeof props.pagination === 'object'\n ? {\n ...defaultPaginationProps,\n ...props.pagination,\n size: 'small',\n theme: 'simple',\n current: currentPage.value,\n total: pageTotal.value,\n pageSize: pageSize.value,\n }\n : {};\n });\n const { onDragStart, onDragEnd, onDrop, onDragOver, onDragLeave } = useDragSort(\n currentValue,\n curPageData,\n props.onDataChange,\n );\n const isAllChecked = computed(() => {\n const allValue = getDataValues(props.dataSource, [], { isTreeMode: props.isTreeMode, include: false });\n\n return (\n props.checkedValue.length > 0 &&\n (props.isTreeMode\n ? allValue.every((item) => props.checkedValue.includes(item))\n : (props.search ? filteredData.value : props.dataSource).every(\n (item: TransferItemOption) => item.disabled || props.checkedValue.includes(item.value),\n ))\n );\n });\n const indeterminate = computed(() => {\n return !isAllChecked.value && props.checkedValue.length > 0;\n });\n\n const totalCount = computed(() => {\n return getLefCount(props.dataSource);\n });\n\n watch(totalCount, (val) => {\n if (val <= (currentPage.value - 1) * pageSize.value) {\n const lastPage = Math.ceil(val / pageSize.value);\n defaultCurrent.value = lastPage;\n }\n });\n\n const filteredTreeData = (list: TransferItemOption[], keyword: string) => {\n const res = filter(cloneDeep(list), (node) => {\n if (node.label.toLowerCase().includes(keyword.toLowerCase())) {\n return true;\n }\n if (node.children && node.children.length > 0) {\n node.children = filteredTreeData(node.children, keyword);\n if (node.children.length > 0) {\n return true;\n }\n }\n return false;\n });\n return res;\n };\n\n const handlePaginationChange = (pageInfo: PageInfo) => {\n props.onPageChange?.(pageInfo);\n defaultCurrent.value = pageInfo.current;\n defaultPageSize.value = pageInfo.pageSize;\n };\n const handleCheckedChange = (val: Array) => {\n props.onCheckedChange?.(val);\n };\n const handleCheckedAllChange = (checked: boolean) => {\n if (checked) {\n const allValue = getDataValues(props.search ? filteredData.value : props.dataSource, [], {\n isTreeMode: props.isTreeMode,\n include: false,\n });\n handleCheckedChange(allValue);\n } else {\n handleCheckedChange([]);\n }\n };\n const handleScroll = (e: Event) => {\n props.onScroll?.(e);\n };\n const handleSearch = (e: any) => {\n const event: SearchEvent = {\n query: e.value,\n type: props.listType as TransferListType,\n e: e.e,\n trigger: e.trigger,\n };\n filterValue.value = e.value;\n props.onSearch?.(event);\n };\n const renderTNodeJSX = useTNodeDefault();\n const renderTitle = () => {\n const defaultNode = props.title && isString(props.title) ? : null;\n const titleNode = renderTNodeJSX('title', {\n defaultNode,\n params: {\n type: props.listType,\n },\n });\n return {titleNode};\n };\n const renderContent = () => {\n const isDraggable = props.draggable && props.listType === TARGET;\n let defaultNode: JSX.Element = null;\n if (!isDraggable) {\n defaultNode = (\n \n {curPageData.value.map((item, index) => (\n \n {renderTNodeJSX('transferItem', {\n defaultNode: {item.label},\n params: { data: item.data, index, type: props.listType },\n })}\n \n ))}\n \n );\n } else {\n defaultNode = (\n \n {curPageData.value.map((item, index) => (\n \n \n {renderTNodeJSX('transferItem', {\n defaultNode: {item.label},\n params: { data: item.data, index, type: props.listType },\n })}\n \n
    \n ))}\n \n );\n }\n\n return (\n
    \n {renderTNodeJSX('tree', {\n defaultNode,\n params: {\n data: curPageData.value,\n value: props.checkedValue,\n onChange: handleCheckedChange,\n },\n })}\n
    \n );\n };\n const renderEmpty = () => {\n const empty = props.empty || t(globalConfig.value.empty);\n const defaultNode: VNode = isString(empty) ? {empty} : null;\n return (\n
    \n {renderTNodeJSX('empty', {\n defaultNode,\n params: {\n type: props.listType,\n },\n })}\n
    \n );\n };\n const renderFooter = () => {\n const defaultNode = isString(props.footer) ? (\n
    {props.footer}
    \n ) : null;\n return renderTNodeJSX('footer', {\n defaultNode,\n params: {\n type: props.listType,\n },\n });\n };\n\n return () => (\n
    \n
    \n
    \n {props.checkAll && (\n \n )}\n \n {t(globalConfig.value.title, {\n checked: props.checkedValue.length,\n total: totalCount.value,\n })}\n \n
    \n {renderTitle()}\n
    \n \n {props.search && (\n \n )}\n {curPageData.value.length > 0 ? renderContent() : renderEmpty()}\n
    \n {props.pagination && pageSize.value > 0 && pageTotal.value > 0 && (\n
    \n \n
    \n )}\n {renderFooter()}\n \n );\n },\n});\n","import { ref, ComputedRef, Ref } from 'vue';\nimport type { TransferValue } from '../type';\nimport type { TransferItemOption } from '../types';\nexport default function useDragSort(\n currentValue: Ref>,\n curPageData: ComputedRef,\n handleDataChange: (data: Array, movedValue: Array) => void,\n) {\n const draggingIndex = ref(null);\n const dragoverIndex = ref(null);\n const dragoverPos = ref(null);\n\n const onDragStart = (e: DragEvent) => {\n const index = Number((e.target as HTMLElement).dataset.index);\n draggingIndex.value = index;\n };\n\n const onDragOver = (e: DragEvent) => {\n e.preventDefault();\n if (e.currentTarget) {\n const currentElement = e.currentTarget as HTMLElement;\n const index = Number(currentElement.dataset.index);\n const elemHeight = currentElement.offsetHeight;\n const dragY = e.clientY - currentElement.getBoundingClientRect().top;\n const insertAreaPercent = 0.3;\n const insertAreaHeight = elemHeight * insertAreaPercent;\n\n dragoverIndex.value = index;\n\n if (dragoverIndex.value === draggingIndex.value) {\n dragoverPos.value = '';\n return;\n }\n if (dragY < insertAreaHeight) {\n dragoverPos.value = 'top';\n } else if (dragY > elemHeight - insertAreaHeight) {\n dragoverPos.value = 'bottom';\n } else {\n dragoverPos.value = 'center';\n }\n }\n };\n\n const onDragLeave = () => {\n dragoverPos.value = '';\n dragoverIndex.value = null;\n };\n\n const onDragEnd = () => {\n draggingIndex.value = null;\n dragoverIndex.value = null;\n dragoverPos.value = '';\n };\n\n const onDrop = (e: DragEvent) => {\n e.preventDefault();\n const currentDraggingIndex = draggingIndex.value;\n const currentDragoverIndex = dragoverIndex.value;\n\n draggingIndex.value = null;\n dragoverIndex.value = null;\n dragoverPos.value = '';\n if (currentDraggingIndex === currentDragoverIndex) {\n return;\n }\n\n const newData = [...currentValue.value];\n\n const sourceItem = curPageData.value[currentDraggingIndex].value;\n const targetItem = curPageData.value[currentDragoverIndex].value;\n const sourceIndex = newData.indexOf(sourceItem);\n let targetIndex = newData.indexOf(targetItem);\n\n newData.splice(sourceIndex, 1);\n\n if (dragoverPos.value === 'bottom') {\n targetIndex += 1;\n }\n newData.splice(targetIndex, 0, sourceItem);\n handleDataChange?.(newData, [sourceItem, targetItem]);\n };\n\n return {\n onDragStart,\n onDragEnd,\n onDrop,\n onDragOver,\n onDragLeave,\n };\n}\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTransferProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 用于控制复选框属性 */\n checkboxProps: {\n type: Object as PropType,\n },\n /** 数据列表选中项 */\n checked: {\n type: Array as PropType,\n default: undefined as TdTransferProps['checked'],\n },\n /** 数据列表选中项,非受控属性 */\n defaultChecked: {\n type: Array as PropType,\n default: (): TdTransferProps['defaultChecked'] => [],\n },\n /** 全量数据 */\n data: {\n type: Array as PropType,\n default: (): TdTransferProps['data'] => [],\n },\n /** 穿梭框可操作方向 */\n direction: {\n type: String as PropType,\n default: 'both' as TdTransferProps['direction'],\n validator(val: TdTransferProps['direction']): boolean {\n if (!val) return true;\n return ['left', 'right', 'both'].includes(val);\n },\n },\n /** 禁用全部操作:搜索、选中、移动、分页等。[源列表, 目标列表],示例:[true, false] 或者 true */\n disabled: {\n type: [Boolean, Array] as PropType,\n default: undefined,\n },\n /** 列表为空时呈现的内容。值类型为数组,则表示分别控制源列表和目标列表数据为空的呈现内容 */\n empty: {\n type: [String, Array, Function] as PropType,\n default: '' as TdTransferProps['empty'],\n },\n /** 穿梭框底部内容 */\n footer: {\n type: [Array, Function] as PropType,\n },\n /** 用来定义 value / label / disabled 在 `data` 中对应的字段别名,示例:`{ label: 'text', value: 'id' }`,表示选项文本取 `text` 字段,选项值取 `id` 字段 */\n keys: {\n type: Object as PropType,\n },\n /** 方向操作按钮。默认显示组件内置操作图标。自定义操作图标示例:['向左', '向右'] 或者 `[() => , () => ]` 或者 `(h, direction) => direction === 'left' ? '《' : '》'` */\n operation: {\n type: [Array, Function] as PropType,\n },\n /** 分页配置,值为空则不显示。具体 API 参考分页组件。值类型为数组,表示可分别控制源列表和目标列表分页组件 */\n pagination: {\n type: [Object, Array] as PropType,\n },\n /** 搜索框配置,值为 false 表示不显示搜索框;值为 true 表示显示默认搜索框;值类型为对象,用于透传 Props 到 Input 组件;值类型为数组,则分别表示控制两侧搜索框 */\n search: {\n type: [Boolean, Object, Array] as PropType,\n default: false,\n },\n /** 是否显示全选,值类型为数组则表示分别控制源列表和目标列表 */\n showCheckAll: {\n type: [Boolean, Array] as PropType,\n default: true as TdTransferProps['showCheckAll'],\n },\n /** 是否允许通过拖拽对目标列表进行排序 */\n targetDraggable: Boolean,\n /** 目标数据列表排列顺序 */\n targetSort: {\n type: String as PropType,\n default: 'original' as TdTransferProps['targetSort'],\n validator(val: TdTransferProps['targetSort']): boolean {\n if (!val) return true;\n return ['original', 'push', 'unshift'].includes(val);\n },\n },\n /** 穿梭框标题,示例:['源列表', '目标列表'] 或者 `[() => 'A', () => 'B']` 或者 `({ type }) => type === 'source' ? '源' : '目标'` */\n title: {\n type: [Array, Function] as PropType,\n default: (): TdTransferProps['title'] => [] as TdTransferProps['title'],\n },\n /** 自定义渲染节点 */\n transferItem: {\n type: Function as PropType,\n },\n /** 目标数据列表数据 */\n value: {\n type: Array as PropType,\n default: undefined as TdTransferProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTransferProps['value'],\n },\n /** 目标数据列表数据,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdTransferProps['defaultValue'] => [],\n },\n /** 数据列表发生变化时触发,`type` 值为 `source`,表示源列表移动到目标列表,值为 `target` 表示目标列表移动到源列表,movedValue 则表示被移动的选项 */\n onChange: Function as PropType,\n /** 源数据列表或目标数据列表的选中项发生变化时触发,`context.type` 可以区分触发来源是目标列表,还是源列表 */\n onCheckedChange: Function as PropType,\n /** 分页发生变化时触发 */\n onPageChange: Function as PropType,\n /** 列表滚动时触发,bottomDistance 表示元素滚动到底部的距离 */\n onScroll: Function as PropType,\n /** 搜索时触发,options.query 表示用户输入的内容 */\n onSearch: Function as PropType,\n};\n","import { defineComponent, createElementVNode, PropType, h } from 'vue';\nimport { ChevronRightIcon as TdChevronRightIcon, ChevronLeftIcon as TdChevronLeftIcon } from 'tdesign-icons-vue-next';\n\nimport Button from '../../button';\nimport { TNode } from '../../common';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { useGlobalIcon } from '../../hooks/useGlobalIcon';\nimport props from '../props';\nimport { isFunction } from 'lodash-es';\nimport { isString } from 'lodash-es';\nimport { isArray } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TTransferOperations',\n props: {\n // 控制左按钮的禁用与否\n leftDisabled: {\n type: Boolean as PropType,\n required: true,\n },\n // 控制右按钮的禁用与否\n rightDisabled: {\n type: Boolean as PropType,\n required: true,\n },\n operation: props.operation,\n },\n emits: ['moveToRight', 'moveToLeft'],\n setup(props, { slots, emit }) {\n const classPrefix = usePrefixClass();\n const { ChevronRightIcon, ChevronLeftIcon } = useGlobalIcon({\n ChevronRightIcon: TdChevronRightIcon,\n ChevronLeftIcon: TdChevronLeftIcon,\n });\n const moveToRight = () => {\n emit('moveToRight');\n };\n const moveToLeft = () => {\n emit('moveToLeft');\n };\n const getIconRight = () => {\n return ;\n };\n const getIconLeft = () => {\n return ;\n };\n const getIcon = (direction: 'left' | 'right') => {\n if (isFunction(props.operation)) {\n return null;\n }\n if (direction === 'right' && props.operation && isFunction(props.operation[0])) {\n return null;\n }\n if (direction === 'left' && props.operation && isFunction(props.operation[1])) {\n return null;\n }\n\n if (slots.operation) {\n return null;\n }\n\n return direction === 'left' ? getIconLeft : getIconRight;\n };\n // right:去右边,left:去左边\n const renderButton = (h: typeof createElementVNode, direction: 'left' | 'right') => {\n if (isFunction(slots.operation)) {\n return slots.operation({\n direction,\n });\n }\n if (isFunction(props.operation)) {\n const renderContent = props.operation;\n return renderContent(h as any, { direction });\n }\n let renderContent: string | TNode;\n if (isArray(props.operation)) {\n const [left, right] = props.operation;\n renderContent = direction === 'right' ? right : left;\n } else {\n renderContent = '';\n }\n return renderContent;\n };\n\n return () => (\n
    \n \n {slots.operation || (isArray(props.operation) && props.operation[1]) ? renderButton(h, 'right') : null}\n \n \n {slots.operation || (isArray(props.operation) && props.operation[0]) ? renderButton(h, 'left') : null}\n \n
    \n );\n },\n});\n","import { defineComponent, computed, toRefs } from 'vue';\nimport { pick } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\n\nimport TransferList from './components/transfer-list';\nimport TransferOperations from './components/transfer-operations';\nimport { TransferListType, CheckedOptions, TransferValue, EmptyType, TargetParams, SearchEvent } from './types';\n\nimport {\n getTransferListOption,\n getDataValues,\n getTransferData,\n filterTransferData,\n TRANSFER_NAME,\n SOURCE,\n TARGET,\n} from './utils';\nimport { PageInfo, TdPaginationProps } from '../pagination/type';\nimport props from './props';\nimport { TNode } from '../common';\n\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport useDefaultValue from '../hooks/useDefaultValue';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport default defineComponent({\n name: TRANSFER_NAME,\n props,\n\n setup(props, { slots }) {\n const disabled = useDisabled();\n const classPrefix = usePrefixClass();\n const { value, modelValue, checked } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n // @ts-ignore TODO\n const [innerChecked] = useDefaultValue(checked, props.defaultChecked, props.onCheckedChange, 'checked');\n const valueList = computed(() => innerValue.value);\n\n const isTreeMode = computed(() => {\n const treeSlot = slots.tree;\n return isFunction(treeSlot);\n });\n\n const leftButtonDisabled = computed(() => props.direction === 'right');\n const rightButtonDisabled = computed(() => props.direction === 'left');\n // props 传入的 data 格式化后的数据\n const transferData = computed(() => {\n return getTransferData(props.data, props.keys, isTreeMode.value);\n });\n const sourceList = computed(() => {\n return filterTransferData(transferData.value, valueList.value as TransferValue[], false, isTreeMode.value);\n });\n const targetList = computed(() => {\n return filterTransferData(transferData.value, valueList.value as TransferValue[], true, isTreeMode.value);\n });\n // 被选中的value\n const checkedValue = computed(() => {\n return {\n [SOURCE]: getDataValues(sourceList.value, innerChecked.value, { isTreeMode: isTreeMode.value }),\n [TARGET]: getDataValues(targetList.value, innerChecked.value, { isTreeMode: isTreeMode.value }),\n };\n });\n const hasFooter = computed(() => {\n return !!slots.footer || !!props.footer;\n });\n const showPagination = computed(() => {\n // 翻页在自定义列表无效\n return !!props.pagination && !slots.content;\n });\n const showSearch = computed(() => {\n // 翻页在自定义列表无效\n return !!props.search;\n });\n const footerOption = computed(() => {\n const footer = props.footer || '';\n return getTransferListOption(footer);\n });\n const emptyOption = computed(() => {\n return getTransferListOption(props.empty);\n });\n const searchOption = computed(() => {\n return getTransferListOption(props.search);\n });\n const checkAllOption = computed(() => {\n return getTransferListOption(props.showCheckAll);\n });\n const disabledOption = computed(() => {\n return getTransferListOption(disabled.value);\n });\n const titleOption = computed(() => {\n return getTransferListOption>(props.title);\n });\n const paginationOption = computed(() => {\n return getTransferListOption(props.pagination);\n });\n\n const handleCheckedChange = (val: Array, listType: TransferListType) => {\n const sourceChecked = listType === SOURCE ? val : checkedValue.value[SOURCE];\n const targetChecked = listType === TARGET ? val : checkedValue.value[TARGET];\n const checked = [...sourceChecked, ...targetChecked];\n const event: CheckedOptions = {\n checked,\n sourceChecked,\n targetChecked,\n type: listType,\n };\n // TODO onCheckedChange 参数有点不合理\n innerChecked.value = checked;\n props.onCheckedChange?.(event);\n };\n\n const transferTo = (toDirection: TransferListType) => {\n const oldTargetValue: Array = JSON.parse(JSON.stringify(valueList.value));\n let newTargetValue: Array;\n const selfCheckedValue = toDirection === TARGET ? checkedValue.value[SOURCE] : checkedValue.value[TARGET];\n // target->source\n if (toDirection === SOURCE) {\n newTargetValue = oldTargetValue.filter((v) => !selfCheckedValue.includes(v));\n } else if (props.targetSort === 'original') {\n // 按照原始顺序\n const remainValue = transferData.value.reduce((acc, data) => {\n if (oldTargetValue.includes(data.value) && data.disabled) {\n return acc.concat(data.value);\n }\n return acc;\n }, []);\n newTargetValue = getDataValues(transferData.value, oldTargetValue.concat(selfCheckedValue), {\n isTreeMode: isTreeMode.value,\n remainValue,\n });\n } else if (props.targetSort === 'unshift') {\n newTargetValue = selfCheckedValue.concat(oldTargetValue);\n } else {\n newTargetValue = oldTargetValue.concat(selfCheckedValue);\n }\n\n // 清空checked。与toDirection相反\n handleCheckedChange([], toDirection === SOURCE ? TARGET : SOURCE);\n\n const params: TargetParams = {\n type: toDirection,\n movedValue: selfCheckedValue,\n };\n setInnerValue(newTargetValue, params);\n };\n\n // 点击移到右边按钮触发的函数\n const transferToRight = () => {\n transferTo(TARGET);\n };\n // 点击移到左边按钮触发的函数\n const transferToLeft = () => {\n transferTo(SOURCE);\n };\n\n const handleScroll = (e: Event, listType: TransferListType) => {\n const target = e.target as HTMLElement;\n const bottomDistance = target.scrollHeight - target.scrollTop - target.clientHeight;\n const event: { e: Event; bottomDistance: number; type: TransferListType } = {\n e,\n bottomDistance,\n type: listType,\n };\n props.onScroll?.(event);\n };\n const handleSearch = (e: SearchEvent) => {\n props.onSearch?.(e);\n };\n const handlePageChange = (pageInfo: PageInfo, listType: TransferListType) => {\n props.onPageChange?.(pageInfo, { type: listType });\n };\n\n const handleDataChange = (data: Array, movedValue: Array) => {\n setInnerValue(data, {\n type: TARGET,\n movedValue,\n });\n };\n const renderTransferList = (listType: TransferListType) => {\n const scopedSlots = pick(slots, ['title', 'empty', 'footer', 'operation', 'transferItem', 'default', 'tree']);\n return (\n handleCheckedChange($event, listType)}\n onScroll={($event: any) => handleScroll($event, listType)}\n onSearch={handleSearch}\n onPageChange={($event: any) => handlePageChange($event, listType)}\n isTreeMode={isTreeMode.value}\n onDataChange={handleDataChange}\n currentValue={valueList.value}\n draggable={props.targetDraggable && listType === TARGET}\n >\n {scopedSlots}\n \n );\n };\n\n return () => (\n \n {renderTransferList(SOURCE)}\n \n {renderTransferList(TARGET)}\n \n );\n },\n});\n","import _Transfer from './transfer';\nimport withInstall from '../utils/withInstall';\nimport { TdTransferProps } from './type';\n\nimport './style';\n\nexport type TransferProps = TdTransferProps;\n\nexport const Transfer = withInstall(_Transfer);\n\nexport default Transfer;\n","import { computed, defineComponent, ref, toRefs, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { TimeIcon as TdTimeIcon } from 'tdesign-icons-vue-next';\n\nimport TimePickerPanel from './panel/time-picker-panel';\nimport TSelectInput, { SelectInputBlurContext } from '../select-input';\nimport { formatInputValue, validateInputValue } from '@tdesign/common-js/time-picker/utils';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport type { InputProps } from '../input';\n\nimport props from './props';\n\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useCommonClassName, useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { TdTimePickerProps } from './type';\nimport { useReadonly } from '../hooks/useReadonly';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimePicker',\n props,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const { globalConfig } = useConfig('timePicker');\n const COMPONENT_NAME = usePrefixClass('time-picker');\n const { STATUS } = useCommonClassName();\n const { TimeIcon } = useGlobalIcon({ TimeIcon: TdTimeIcon });\n\n const currentValue = ref('');\n const isShowPanel = ref(false);\n const isReadonly = useReadonly();\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const disabled = useDisabled();\n const { allowInput, format } = toRefs(props);\n\n const inputClasses = computed(() => [\n `${COMPONENT_NAME.value}__group`,\n {\n [STATUS.value.focused]: isShowPanel.value,\n },\n ]);\n\n const handleShowPopup = (visible: boolean, context: { e: MouseEvent }) => {\n isShowPanel.value = visible;\n visible ? props.onOpen?.(context) : props.onClose?.(context); // trigger on-open and on-close\n };\n\n const handleClear = (context: { e: MouseEvent }) => {\n const { e } = context;\n e.stopPropagation();\n currentValue.value = null;\n setInnerValue(null);\n };\n\n const handleInputChange = (value: string) => {\n currentValue.value = value;\n };\n\n const handleInputBlur = (value: string, context: SelectInputBlurContext) => {\n if (allowInput.value) {\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) {\n setInnerValue(formatInputValue(currentValue.value, format.value));\n }\n }\n props.onBlur?.({ value, inputValue: context.inputValue, e: context.e });\n };\n\n const handleClickConfirm = () => {\n const isValidTime = validateInputValue(currentValue.value, format.value);\n if (isValidTime) setInnerValue(currentValue.value);\n isShowPanel.value = false;\n };\n\n const handlePanelChange = (v: string, e: MouseEvent) => {\n currentValue.value = v;\n props.onPick?.(v, { e });\n };\n\n const valueDisplayParams = computed(() => {\n return {\n value: isShowPanel.value ? currentValue.value : innerValue.value ?? undefined,\n };\n });\n\n watch(\n () => isShowPanel.value,\n () => {\n currentValue.value = isShowPanel.value ? innerValue.value ?? '' : '';\n },\n );\n\n return () => (\n
    \n }\n popupVisible={!isReadonly.value && isShowPanel.value}\n onInputChange={handleInputChange}\n onBlur={handleInputBlur}\n onPopupVisibleChange={handleShowPopup}\n placeholder={!innerValue.value ? props.placeholder || globalConfig.value.placeholder : undefined}\n value={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputValue={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n inputProps={{ ...(props.inputProps as InputProps), size: props.size }}\n popupProps={{ overlayInnerStyle: { width: 'auto', padding: 0 }, ...(props.popupProps as object) }}\n status={props.status}\n tips={props.tips}\n valueDisplay={() => renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n {...(props.selectInputProps as TdTimePickerProps['selectInputProps'])}\n panel={() => (\n \n )}\n />\n
    \n );\n },\n});\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTimeRangePickerProps } from '../time-picker/type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 是否允许直接输入时间 */\n allowInput: Boolean,\n /** 是否自动调换左右区间的顺序,默认为 true;若需要支持跨天的场景,可以设置为 false */\n autoSwap: {\n type: Boolean,\n default: true,\n },\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清除选中值 */\n clearable: Boolean,\n /** 禁用时间项 */\n disableTime: {\n type: Function as PropType,\n },\n /** 是否禁用组件,值为数组表示可分别控制开始日期和结束日期是否禁用 */\n disabled: {\n type: [Boolean, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['disabled'],\n },\n /** 用于格式化时间,[详细文档](https://day.js.org/docs/en/display/format) */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /** 是否隐藏禁用状态的时间项 */\n hideDisabledTime: {\n type: Boolean,\n default: true,\n },\n /** 左侧文本 */\n label: {\n type: [String, Function] as PropType,\n },\n /** 占位符,值为数组表示可分别为开始日期和结束日期设置占位符 */\n placeholder: {\n type: [String, Array] as PropType,\n default: undefined as TdTimeRangePickerProps['placeholder'],\n },\n /** 透传给 popup 组件的参数 */\n popupProps: {\n type: Object as PropType,\n },\n /** 预设快捷时间范围选择,示例:{ '下午': ['13:00:00', '18:00:00'] } */\n presets: {\n type: Object as PropType,\n },\n /** 透传给范围输入框 RangeInput 组件的参数 */\n rangeInputProps: {\n type: Object as PropType,\n },\n /** 只读状态 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTimeRangePickerProps['size'],\n validator(val: TdTimeRangePickerProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 输入框状态 */\n status: {\n type: String as PropType,\n default: 'default' as TdTimeRangePickerProps['status'],\n validator(val: TdTimeRangePickerProps['status']): boolean {\n if (!val) return true;\n return ['default', 'success', 'warning', 'error'].includes(val);\n },\n },\n /** 时间间隔步数,数组排列 [小时, 分钟, 秒],示例:[2, 1, 1] 或者 ['2', '1', '1'] */\n steps: {\n type: Array as PropType,\n default: (): TdTimeRangePickerProps['steps'] => [1, 1, 1],\n },\n /** 输入框下方提示文本,会根据不同的 `status` 呈现不同的样式 */\n tips: {\n type: [String, Function] as PropType,\n },\n /** 选中值 */\n value: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTimeRangePickerProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n },\n /** 当输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 选中值发生变化时触发 */\n onChange: Function as PropType,\n /** 范围输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 当输入框内容发生变化时触发,参数 input 表示输入内容,value 表示组件当前有效值 */\n onInput: Function as PropType,\n /** 面板选中值后触发 */\n onPick: Function as PropType,\n};\n","import { defineComponent, ref, toRefs, watch, computed } from 'vue';\nimport dayjs from 'dayjs';\nimport { isArray } from 'lodash-es';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { TimeIcon as TdTimeIcon } from 'tdesign-icons-vue-next';\n\nimport { RangeInputPopup, RangeInputPosition } from '../range-input';\nimport TimePickerPanel from './panel/time-picker-panel';\n\nimport { TIME_PICKER_EMPTY } from '@tdesign/common-js/time-picker/const';\nimport { formatInputValue, validateInputValue } from '@tdesign/common-js/time-picker/utils';\n\n// interfaces\nimport props from './time-range-picker-props';\nimport { TimeRangeValue } from './types';\nimport { TimeRangePickerPartial } from './type';\n// hooks\nimport useVModel from '../hooks/useVModel';\nimport { useCommonClassName, useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n name: 'TTimeRangePicker',\n props: { ...props, rangeInputProps: Object, popupProps: Object },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('time-range-picker');\n const { globalConfig } = useConfig('timePicker');\n const { STATUS } = useCommonClassName();\n const { TimeIcon } = useGlobalIcon({ TimeIcon: TdTimeIcon });\n\n const disabled = useDisabled();\n const currentPanelIdx = ref(undefined);\n const currentValue = ref>(TIME_PICKER_EMPTY);\n const isShowPanel = ref(false);\n const isReadOnly = useReadonly();\n\n const inputClasses = computed(() => [\n `${COMPONENT_NAME.value}__group`,\n {\n [STATUS.value.focused]: isShowPanel.value,\n },\n ]);\n const { value, modelValue, allowInput, format } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange as any);\n\n const handleShowPopup = (visible: boolean, context: any) => {\n if (isReadOnly.value) return;\n // 输入框点击不关闭面板\n if (context.trigger === 'trigger-element-click') {\n isShowPanel.value = true;\n return;\n }\n isShowPanel.value = visible;\n };\n\n const handleClear = (context: { e: MouseEvent }) => {\n const { e } = context;\n e.stopPropagation();\n currentValue.value = TIME_PICKER_EMPTY;\n setInnerValue(null);\n };\n\n const handleClick = ({ position }: { position: 'first' | 'second' }) => {\n currentPanelIdx.value = position === 'first' ? 0 : 1;\n };\n\n const handleTimeChange = (newValue: string | string[], e: MouseEvent) => {\n if (isArray(newValue)) {\n currentValue.value = newValue;\n } else if (currentPanelIdx.value === 0) {\n currentValue.value = [newValue, currentValue.value[1] ?? newValue];\n } else {\n currentValue.value = [currentValue.value[0] ?? newValue, newValue];\n }\n handleOnPick(newValue, e);\n };\n\n const handleInputBlur = (value: TimeRangeValue, { e }: { e: FocusEvent }) => {\n if (allowInput.value) {\n const isValidTime = validateInputValue(currentValue.value[currentPanelIdx.value], format.value);\n if (isValidTime) {\n const formattedVal = formatInputValue(currentValue.value[currentPanelIdx.value], format.value);\n currentPanelIdx.value === 0\n ? (currentValue.value = [formattedVal, currentValue.value[1] ?? formattedVal])\n : (currentValue.value = [currentValue.value[0] ?? formattedVal, formattedVal]);\n }\n }\n props.onBlur?.({ value, e });\n };\n\n const handleInputChange = (\n inputVal: TimeRangeValue,\n { e, position }: { e: InputEvent; position: RangeInputPosition },\n ) => {\n currentValue.value = inputVal;\n props.onInput?.({ value: innerValue.value, e, position: position === 'first' ? 'start' : 'end' });\n };\n\n const handleClickConfirm = () => {\n const isValidTime = !currentValue.value.find((v) => !validateInputValue(v, format.value));\n if (isValidTime) setInnerValue(currentValue.value);\n if (props.autoSwap) autoSwapTime();\n isShowPanel.value = false;\n };\n\n const handleFocus = (value: TimeRangeValue, { e, position }: { e: FocusEvent; position: RangeInputPosition }) => {\n props.onFocus?.({ value, e, position: position === 'first' ? 'start' : 'end' });\n };\n\n const autoSwapTime = () => {\n const [startTime, endTime] = currentValue.value;\n const startDayjs = dayjs(startTime, props.format);\n const endDayjs = dayjs(endTime, props.format);\n\n if (startDayjs.isAfter(endDayjs, 'second')) {\n setInnerValue([currentValue.value[1], currentValue.value[0]]);\n } else {\n setInnerValue([currentValue.value[0], currentValue.value[1]]);\n }\n };\n\n const handleOnPick = (pickValue: string | string[], e: MouseEvent) => {\n let pickedRangeValue = [];\n let context;\n if (isArray(pickValue)) {\n pickedRangeValue = pickValue;\n context = { e };\n } else if (currentPanelIdx.value === 0) {\n pickedRangeValue = [pickValue, currentValue.value[1] ?? pickValue];\n context = { e, position: 'start' as TimeRangePickerPartial };\n } else {\n pickedRangeValue = [currentValue.value[0] ?? pickValue, pickValue];\n context = { e, position: 'end' as TimeRangePickerPartial };\n }\n props.onPick?.(pickedRangeValue, context);\n };\n\n watch(\n () => isShowPanel.value,\n () => {\n currentValue.value = isShowPanel.value ? innerValue.value ?? TIME_PICKER_EMPTY : TIME_PICKER_EMPTY;\n if (!isShowPanel.value) currentPanelIdx.value = undefined;\n },\n );\n\n return () => (\n
    \n ,\n onClear: handleClear,\n onClick: handleClick,\n onFocus: handleFocus,\n onBlur: handleInputBlur,\n readonly: isReadOnly.value || !allowInput.value,\n activeIndex: currentPanelIdx.value,\n ...props.rangeInputProps,\n }}\n label={props.label}\n status={props.status}\n tips={props.tips}\n panel={() => (\n \n )}\n />\n
    \n );\n },\n});\n","import _TimePicker from './time-picker';\nimport _TimeRangePicker from './time-range-picker';\nimport _TimePickerPanel from './panel/time-picker-panel';\nimport { TdTimePickerProps, TdTimeRangePickerProps } from './type';\n\nimport withInstall from '../utils/withInstall';\n\nimport './style';\n\nexport * from './type';\nexport type TimePickerProps = TdTimePickerProps;\nexport type TimeRangePickerProps = TdTimeRangePickerProps;\nexport type TimePickerPanelProps = TdTimePickerProps;\n\nexport const TimePicker = withInstall(_TimePicker);\nexport const TimeRangePicker = withInstall(_TimeRangePicker);\nexport const TimePickerPanel = withInstall(_TimePickerPanel);\n\nexport default TimePicker;\n","/**\n * 基于原作者(@louiszhai)的思路二次开发,为保证其他组件暂不受影响,单独开一个文件\n * 新增支持以下 3 个特性\n * 1. 支持不同表格高度\n * 2. 支持滚动到特定元素,方便 Select 等组件展开时直接定位到选中元素\n * 3. 支持数据变化不重置,方便支持树形结构虚拟滚动\n */\nimport { ref, computed, watch, Ref } from 'vue';\nimport { TScroll } from '../common';\nimport useResizeObserver from './useResizeObserver';\nimport { max } from 'lodash-es';\nimport { min } from 'lodash-es';\nimport { sum } from 'lodash-es';\nimport { throttle } from 'lodash-es';\n\nexport type UseVirtualScrollParams = Ref<{\n /** 列数据 */\n data: { [key: string]: any }[];\n scroll: TScroll & {\n /** 固定行(冻结行),示例:[M, N],表示冻结头 M 行和尾 N 行。M 和 N 值为 0 时,表示不冻结行 */\n fixedRows?: Array;\n };\n preventResizeRefresh?: boolean;\n}>;\n\nexport interface ScrollToElementParams {\n /** 跳转元素下标 */\n index: number;\n /** 跳转元素距离顶部的距离 */\n top?: number;\n /** 单个元素高度非固定场景下,即 isFixedRowHeight = false。延迟设置元素位置,一般用于依赖不同高度异步渲染等场景,单位:毫秒 */\n time?: number;\n behavior?: 'auto' | 'smooth';\n}\n\nconst useVirtualScroll = (container: Ref, params: UseVirtualScrollParams) => {\n /** 注意测试:数据长度为空;数据长度小于表格高度等情况。即期望只有数据量达到一定程度才允许开启虚拟滚动 */\n const visibleData = ref([]);\n // 用于显示表格列\n const translateY = ref((params.value.data?.length || 0) * (params.value.scroll?.rowHeight || 50));\n // 滚动高度,用于显示滚动条\n const scrollHeight = ref(0);\n // 已经通过节点渲染计算出来的各自行高\n // 不要使用响应式,数据量大时会产生卡顿\n let trHeightList: number[] = [];\n const containerHeight = ref(0);\n const containerWidth = ref(0);\n const startAndEndIndex = ref<[number, number]>([0, 15]);\n\n // 设置初始值\n const tScroll = computed(() => {\n const { scroll } = params.value;\n if (!scroll) return {};\n return {\n bufferSize: scroll.bufferSize || 10,\n isFixedRowHeight: scroll.isFixedRowHeight ?? false,\n rowHeight: scroll.rowHeight || 47,\n threshold: scroll.threshold || 100,\n type: scroll.type,\n fixedRows: scroll.fixedRows ?? [0, 0],\n };\n });\n\n // 当前场景是否满足开启虚拟滚动的条件\n const isVirtualScroll = computed(() => {\n const { data } = params.value;\n return tScroll.value.type === 'virtual' && tScroll.value.threshold < data.length;\n });\n\n // 一次循环遍历中计算可视范围的相关信息,减少大数据量时的遍历开销\n function getVisibleRangeConfig() {\n const scrollTop = container.value?.scrollTop ?? 0;\n const fixedStart = tScroll.value.fixedRows[0];\n\n // 记录前置 buffer 的高度\n const prevBufferHeightList: number[] = [];\n // 没有被渲染的行的高度,用于设定容器的 translateY\n let hiddenHeight = 0;\n\n let visibleStart = -1;\n let visibleEnd = -1;\n\n let totalHeight = 0;\n\n for (let i = 0, len = params.value.data.length; i < len; i++) {\n const rowHeight = trHeightList[i] ?? tScroll.value.rowHeight;\n totalHeight = totalHeight + rowHeight;\n // 获取第一个可视范围内的元素\n if (totalHeight > scrollTop && visibleStart === -1) {\n visibleStart = i;\n if (visibleStart - tScroll.value.bufferSize > 0) {\n hiddenHeight = totalHeight - rowHeight - sum(prevBufferHeightList);\n }\n }\n if (visibleStart === -1) {\n prevBufferHeightList.push(rowHeight);\n if (prevBufferHeightList.length > tScroll.value.bufferSize) {\n prevBufferHeightList.shift();\n }\n }\n // 获取最后一个可视范围内的元素\n if (\n visibleEnd === -1 &&\n (totalHeight > containerHeight.value + scrollTop || i === params.value.data.length - 1)\n ) {\n visibleEnd = i;\n }\n\n if (visibleStart !== -1 && visibleEnd !== -1) {\n // 不再统计高度\n break;\n }\n }\n\n // 前后偏移 buffer\n const startIndex = max([visibleStart - tScroll.value.bufferSize, 0]);\n const endIndex = min([visibleEnd + tScroll.value.bufferSize, params.value.data.length]);\n\n // 以 sticky 定位渲染的固定行,会占据高度,影响整体高度\n const stickyHeight = sum(trHeightList.slice(0, Math.min(startIndex, fixedStart)));\n\n return {\n startIndex,\n endIndex,\n translateY: hiddenHeight - stickyHeight,\n };\n }\n\n const updateVisibleData = throttle(() => {\n // 计算前后的buffer偏移后的渲染数据\n const { startIndex, endIndex, translateY: translateYValue } = getVisibleRangeConfig();\n\n // 需要考虑固定行的情况\n const fixedRows = tScroll.value.fixedRows;\n const [fixedStart, fixedEnd] = fixedRows;\n let fixedStartData = fixedStart ? params.value.data.slice(0, fixedStart) : [];\n if (fixedStart && startIndex < fixedStart) {\n fixedStartData = fixedStartData.slice(0, startIndex);\n }\n let fixedEndData = fixedEnd ? params.value.data.slice(params.value.data.length - fixedEnd) : [];\n const bottomStartIndex = endIndex - params.value.data.length + 1 + (fixedEnd ?? 0);\n if (fixedEnd && bottomStartIndex > 0) {\n fixedEndData = fixedEndData.slice(bottomStartIndex);\n }\n\n if (startAndEndIndex.value.join() !== [startIndex, endIndex].join() && startIndex >= 0) {\n translateY.value = translateYValue;\n visibleData.value = fixedStartData.concat(params.value.data.slice(startIndex, endIndex), fixedEndData);\n startAndEndIndex.value = [startIndex, endIndex];\n }\n }, 100);\n\n // 固定高度场景,不需要通过行渲染获取高度(仅非固定高度场景需要)\n const handleRowMounted = (rowData: any) => {\n if (!isVirtualScroll.value || !rowData || tScroll.value.isFixedRowHeight || !container.value) return;\n const trHeight = rowData.ref.value?.getBoundingClientRect().height || tScroll.value.rowHeight;\n const rowIndex = rowData.data.VIRTUAL_SCROLL_INDEX;\n\n if (trHeightList[rowIndex] !== trHeight) {\n const diff = trHeight - trHeightList[rowIndex];\n trHeightList[rowIndex] = trHeight;\n // 采用 diff 的方式更新,不再遍历数组\n scrollHeight.value = scrollHeight.value + diff;\n }\n };\n\n const handleScroll = () => {\n if (!isVirtualScroll.value) return;\n updateVisibleData();\n };\n\n const refreshVirtualScroll = ([{ contentRect }]: [ResizeObserverEntry]) => {\n // 如果宽度发生变化,重置滚动位置\n if (params.value.preventResizeRefresh) return;\n const maxScrollbarWidth = 16;\n if (Math.abs(contentRect.width - containerWidth.value) > maxScrollbarWidth && !!container.value) {\n container.value.scrollTop = 0;\n translateY.value = 0;\n }\n containerWidth.value = contentRect.width;\n // 高度更新后,由 height 独立的 watch 触发可视区域的更新\n containerHeight.value = contentRect.height;\n };\n\n const addIndexToData = (data: any[]) => {\n data.forEach((item, index) => {\n // eslint-disable-next-line\n item['VIRTUAL_SCROLL_INDEX'] = index;\n });\n };\n\n const updateScrollTop = ({ index, top = 0, behavior }: ScrollToElementParams) => {\n const scrollTop = sum(trHeightList.slice(0, index + 1)) - top;\n\n container.value.scrollTo({\n top: scrollTop,\n behavior: behavior || 'auto',\n });\n };\n\n /**\n * 滚动到指定元素(对外暴露的方法,谨慎修改)\n */\n const scrollToElement = (p: ScrollToElementParams) => {\n updateScrollTop(p);\n // 不同行高的表格需要异步计算\n if (!tScroll.value.isFixedRowHeight) {\n const duration = p.time ?? 60;\n const timer = setTimeout(() => {\n updateScrollTop(p);\n clearTimeout(timer);\n }, duration);\n }\n };\n\n // 如果初始化时 isVirtualScroll 为 false,undefined 的 ref 会导致无法监听元素高度变化\n useResizeObserver(\n computed(() => (isVirtualScroll.value ? container.value : undefined)),\n refreshVirtualScroll,\n );\n\n // 固定高度场景,可直接通过数据长度计算出最大滚动高度\n watch(\n () => [[...params.value.data], tScroll.value, isVirtualScroll.value, container.value],\n () => {\n if (!isVirtualScroll.value || !container.value) return;\n const { data } = params.value;\n addIndexToData(data);\n\n // 有可能初始化时,resize 监听没触发,尝试设置初始化容器高度\n containerHeight.value = container.value.getBoundingClientRect().height;\n\n if (trHeightList.length !== params.value.data.length) {\n // 暂时对于 table 和 tree 场景,信任之前缓存的行高\n // 后续优化可能提供一个参数,进行监听从而清除记录的行高会更好\n const initHeightList: number[] = Array.from(trHeightList);\n // 数据长度如果发生变化,裁剪高度记录的数组,避免算出异常的总高度\n initHeightList.length = params.value.data.length;\n initHeightList.fill(tScroll.value.rowHeight || 47);\n trHeightList = initHeightList;\n }\n\n scrollHeight.value = sum(trHeightList);\n\n // 清除记录的滚动顺序\n startAndEndIndex.value = [0, 0];\n updateVisibleData();\n },\n { immediate: true },\n );\n\n // 当容器高度变化后,重新计算可视区域数据\n watch(\n () => containerHeight.value,\n () => {\n updateVisibleData();\n },\n );\n\n return {\n visibleData,\n translateY,\n scrollHeight,\n isVirtualScroll,\n handleScroll,\n handleRowMounted,\n scrollToElement,\n };\n};\n\nexport type VirtualScrollConfig = ReturnType;\n\nexport default useVirtualScroll;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nexport default max;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n","// 在这个文件,解决 vue2/vue3 tree 组件依赖的差异问题\n// 除此文件之外的其他组件文件,可从 vue2 项目直接复制到 vue3 项目进行维护\nimport * as Vue from 'vue';\nimport { Ref, SetupContext, ToRefs, VNode, PropType, ComponentPublicInstance, UnwrapNestedRefs } from 'vue';\nimport { CheckboxProps } from '../checkbox';\nimport { ClassName, TScroll, Styles, TNode, TreeOptionData, TNodeReturnValue } from '../common';\nimport { TypeTreeEventState as TreeEventState } from '@tdesign/common-js/tree/types';\nimport { TdTreeProps, TreeInstanceFunctions } from './type';\nimport { VirtualScrollConfig } from '../hooks/useVirtualScrollNew';\nimport tdWithInstall from '../utils/withInstall';\nimport tdUseVModel from '../hooks/useVModel';\nimport tdUseDefaultValue from '../hooks/useDefaultValue';\nimport { TreeStore } from '@tdesign/common-js/tree/tree-store';\n\nexport { ref, reactive, computed, watch, onMounted, toRefs, defineComponent, TransitionGroup } from 'vue';\nexport { CaretRightSmallIcon as TdCaretRightSmallIcon } from 'tdesign-icons-vue-next';\nexport { Checkbox as TCheckBox } from '../checkbox';\nexport { Loading as TLoading } from '../loading';\nexport { useConfig, usePrefixClass } from '../hooks/useConfig';\nexport { useGlobalIcon } from '../hooks/useGlobalIcon';\nexport { default as useLazyLoad } from '../hooks/useLazyLoad';\nexport { default as useVirtualScroll } from '../hooks/useVirtualScrollNew';\nexport { TreeNode, privateKey } from '@tdesign/common-js/tree/tree-node';\nexport type TypeVModel = ReturnType;\n\nexport type TypeRef = Ref;\nexport type TypeSetupContext = SetupContext;\nexport type TypeCreateElement = typeof Vue.h;\nexport type TypeVNode = VNode;\nexport type TypePropType = PropType;\nexport type TypeCheckboxProps = CheckboxProps;\nexport type TypeClassName = ClassName;\nexport type TypeScroll = TScroll;\nexport type TypeStyles = Styles;\nexport type TypeTNode = TNode;\nexport type TypeTNodeReturnValue = TNodeReturnValue;\nexport type TypeTreeOptionData = TreeOptionData;\nexport type TypeTreeEventState = TreeEventState;\nexport type TypeVirtualScrollConfig = VirtualScrollConfig;\nexport type TypeToRefs = ToRefs;\nexport type TypeUnwrapNestedRefs = UnwrapNestedRefs;\nexport interface TypeTreeInstance extends ComponentPublicInstance, TreeInstanceFunctions {}\n\nexport type TreeProps = TdTreeProps & {\n treeStore?: TreeStore;\n};\n\nexport interface TypeOnDrag {\n default?: unknown;\n}\n\nconst onDrag: TypeOnDrag = {\n default: undefined,\n};\n\nexport const isVueNext = true;\n\nexport const TreeItemDefinition = {\n name: 'TTreeNode',\n inject: {\n onDrag,\n },\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function useRipple(el: unknown) {}\n\nexport function withInstall(construct: T) {\n return tdWithInstall(construct);\n}\n\nexport interface UseVModelParams {\n value: Ref;\n eventName?: string;\n propName?: string;\n}\n\nexport function getCreateElement(h?: TypeCreateElement) {\n if (h) {\n // do nothing, just for adapt\n }\n return Vue.h;\n}\n\nexport function getScopedSlots(instance: ComponentPublicInstance) {\n return instance.$slots;\n}\n\nexport function useVModel(\n props: TreeProps & Record,\n refsProps: ToRefs & Record,\n propName = 'value',\n defaultPropName = 'defaultValue',\n eventPropName = 'onChange',\n eventName = 'change',\n) {\n if (eventName) {\n // do nothing,just for adapt\n }\n const { modelValue } = refsProps;\n let vm;\n if (propName === 'value') {\n vm = tdUseVModel(refsProps[propName], modelValue, props[defaultPropName], props[eventPropName], propName);\n } else {\n vm = tdUseDefaultValue(refsProps[propName], props[defaultPropName], props[eventPropName], propName);\n }\n return vm;\n}\n","import { throttle } from 'lodash-es';\nimport { reactive } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\n\nexport interface TypeDragStates {\n isDragOver: boolean;\n isDragging: boolean;\n dropPosition: number;\n}\n\nexport enum DragPosition {\n Before = -1,\n Inside = 0,\n After = 1,\n}\n\ntype TypeDrag = 'dragStart' | 'dragOver' | 'dragLeave' | 'dragEnd' | 'drop';\n\nexport default function useDraggable(state: TypeTreeItemState) {\n const { treeItemRef } = state;\n const dragStates = reactive({\n isDragOver: false,\n isDragging: false,\n dropPosition: DragPosition.Inside,\n });\n\n const updateDropPosition = (dragEvent: DragEvent) => {\n const rootNode = treeItemRef.value;\n if (!rootNode) return;\n\n const rect = rootNode?.getBoundingClientRect?.();\n const offsetY = window.scrollY + rect.top;\n const { pageY } = dragEvent;\n const gapHeight = rect.height / 4;\n const diff = pageY - offsetY;\n\n if (diff < gapHeight) {\n dragStates.dropPosition = DragPosition.Before;\n } else if (diff < rect.height - gapHeight) {\n dragStates.dropPosition = DragPosition.Inside;\n } else {\n dragStates.dropPosition = DragPosition.After;\n }\n };\n\n const setDragStatus = (status: TypeDrag, dragEvent: DragEvent) => {\n const { node, treeScope } = state;\n const { drag } = treeScope;\n if (!drag) return;\n\n switch (status) {\n case 'dragStart':\n dragStates.isDragging = true;\n dragStates.dropPosition = DragPosition.Inside;\n drag.handleDragStart?.({ node, dragEvent });\n break;\n case 'dragEnd':\n dragStates.isDragging = false;\n dragStates.isDragOver = false;\n dragStates.dropPosition = DragPosition.Inside;\n throttleUpdateDropPosition.cancel();\n drag.handleDragEnd?.({ node, dragEvent });\n break;\n case 'dragOver':\n dragStates.isDragOver = true;\n throttleUpdateDropPosition(dragEvent);\n drag.handleDragOver?.({ node, dragEvent });\n break;\n case 'dragLeave':\n dragStates.isDragOver = false;\n dragStates.dropPosition = DragPosition.Inside;\n throttleUpdateDropPosition.cancel();\n drag.handleDragLeave?.({ node, dragEvent });\n break;\n case 'drop':\n drag.handleDrop?.({ node, dropPosition: dragStates.dropPosition, dragEvent });\n dragStates.isDragOver = false;\n throttleUpdateDropPosition.cancel();\n break;\n default:\n break;\n }\n };\n\n const handleDragStart = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n setDragStatus('dragStart', evt);\n\n try {\n // ie throw error firefox-need-it\n evt.dataTransfer?.setData('text/plain', '');\n } catch (e) {\n // empty\n }\n };\n\n const handleDragEnd = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n setDragStatus('dragEnd', evt);\n };\n\n const handleDragOver = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n evt.preventDefault();\n setDragStatus('dragOver', evt);\n };\n\n const handleDragLeave = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n setDragStatus('dragLeave', evt);\n };\n\n const handleDrop = (evt: DragEvent) => {\n const { node } = state;\n if (!node.isDraggable()) return;\n evt.stopPropagation();\n evt.preventDefault();\n setDragStatus('drop', evt);\n };\n\n const throttleUpdateDropPosition = throttle((dragEvent: DragEvent) => {\n updateDropPosition(dragEvent);\n });\n\n return {\n dragStates,\n handleDragStart,\n handleDragEnd,\n handleDragOver,\n handleDragLeave,\n handleDrop,\n };\n}\n","import { camelCase } from 'lodash-es';\nimport { TypeVNode, TypeSetupContext, isVueNext } from './adapt';\nimport {\n TreeProps,\n TypeTreeStore,\n TypeTreeNode,\n TypeMark,\n TypeLineModel,\n TypeTNodeProp,\n TypeGetTNodeOption,\n TypeTargetNode,\n} from './tree-types';\n\nexport function emitEvent(\n props: TreeProps & Record,\n context: TypeSetupContext,\n evtName: string,\n ...args: T\n) {\n const apiName = camelCase(`on-${evtName}`);\n evtName.replace(/^on/, '').toLowerCase();\n if (typeof props[apiName] === 'function') {\n props[apiName](...args);\n }\n if (!isVueNext) {\n // vue3 调用 props.onClick 时就已经派发了事件了\n context.emit(evtName, ...args);\n }\n}\n\nexport function getParentsToRoot(element?: HTMLElement, root?: HTMLElement): HTMLElement[] {\n const list = [];\n let el: HTMLElement = element;\n while (el && el.parentNode) {\n list.push(el);\n if (el === root) {\n break;\n }\n el = el.parentNode as HTMLElement;\n }\n return list;\n}\n\nexport function getParentMarks(name: string, element?: HTMLElement, root?: HTMLElement): TypeMark[] {\n const list = getParentsToRoot(element, root);\n return list\n .map((el) => {\n const mark: TypeMark = {\n name,\n value: el?.getAttribute(name) || '',\n el,\n };\n return mark;\n })\n .filter((mark) => mark.value);\n}\n\nexport function getMark(name: string, element?: HTMLElement, root?: HTMLElement): TypeMark {\n const list = getParentMarks(name, element, root);\n const info = list.pop() || null;\n return info;\n}\n\nexport function pathMatchClass(name: string, element?: HTMLElement, root?: HTMLElement): boolean {\n const list = getParentsToRoot(element, root);\n const rs = list.some((el) => el.classList.contains(name));\n return rs;\n}\n\nexport function getTNode(prop: TypeTNodeProp, options: TypeGetTNodeOption): string | TypeVNode {\n let tnode = null;\n let item = null;\n const conf = {\n ...options,\n };\n if (typeof prop === 'function') {\n item = prop(conf.createElement, conf.node?.getModel());\n } else if (typeof prop === 'string') {\n item = prop;\n }\n if (typeof item === 'string') {\n tnode = item;\n } else if (item) {\n tnode = item as TypeVNode;\n }\n return tnode;\n}\n\n// 获取一个节点层级位置的连线模型\nexport function getLineModel(nodes: TypeTreeNode[], node: TypeTreeNode, index: number): TypeLineModel {\n // 标记 [上,右,下,左] 是否有连线\n const lineModel: TypeLineModel = {\n top: false,\n right: false,\n bottom: false,\n left: false,\n };\n\n let nodeChildren = [];\n if (Array.isArray(node.children)) {\n nodeChildren = node.children;\n }\n const childNode = nodes[index - 1] || null;\n const nodeItemIndex = childNode ? childNode.getIndex() : 0;\n\n if (index === 0) {\n lineModel.left = !!node.parent;\n lineModel.bottom = node.children && node.expanded;\n lineModel.right = node.parent && !node.children;\n } else if (index === 1) {\n lineModel.top = true;\n lineModel.right = true;\n lineModel.bottom = nodeItemIndex < nodeChildren.length - 1;\n } else if (nodeItemIndex < nodeChildren.length - 1) {\n lineModel.top = true;\n lineModel.bottom = true;\n }\n\n return lineModel;\n}\n\nexport function isTreeNodeValue(item: unknown): boolean {\n return typeof item === 'string' || typeof item === 'number';\n}\n\nexport function getNode(store: TypeTreeStore, item: TypeTargetNode): TypeTreeNode {\n let node = null;\n let val = null;\n if (typeof item === 'string' || typeof item === 'number') {\n val = item;\n } else if (item && isTreeNodeValue(item.value)) {\n val = item.value;\n }\n node = store.getNode(val);\n return node;\n}\n","import { usePrefixClass } from '../adapt';\nimport {\n TreeNodeValue,\n TypeTreeState,\n TypeTargetNode,\n TypeExpandEventContext,\n TypeActiveEventContext,\n TypeChangeEventContext,\n} from '../tree-types';\nimport { getNode, pathMatchClass } from '../util';\n\n// tree 组件节点状态设置\nexport default function useTreeAction(state: TypeTreeState) {\n const treeState = state;\n const { store } = treeState;\n const componentName = usePrefixClass('tree').value;\n\n const [tValue, setTValue] = state.vmValue;\n const [tActived, setTActived] = state.vmActived;\n const [tExpanded, setTExpanded] = state.vmExpanded;\n\n const setExpanded = (item: TypeTargetNode, isExpanded: boolean): TreeNodeValue[] => {\n const node = getNode(store, item);\n const mouseEvent = treeState.mouseEvent as MouseEvent;\n const evtCtx: TypeExpandEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n const target = mouseEvent.target as HTMLElement;\n const currentTarget = mouseEvent.currentTarget as HTMLElement;\n if (pathMatchClass(`${componentName}__icon`, target, currentTarget)) {\n evtCtx.trigger = 'icon-click';\n }\n }\n const expanded = node.setExpanded(isExpanded, {\n directly: true,\n });\n setTExpanded(expanded, evtCtx);\n if (evtCtx.trigger !== 'setItem') {\n store.replaceExpanded((tExpanded.value || []) as TreeNodeValue[]);\n }\n return expanded;\n };\n\n const toggleExpanded = (item: TypeTargetNode): TreeNodeValue[] => {\n const node = getNode(store, item);\n\n if (!node.children) return;\n\n return setExpanded(node, !node.isExpanded());\n };\n\n const setActived = (item: TypeTargetNode, isActived: boolean) => {\n const node = getNode(store, item);\n const mouseEvent = treeState.mouseEvent as MouseEvent;\n const evtCtx: TypeActiveEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n }\n const actived = node.setActived(isActived, {\n isAction: evtCtx.trigger === 'node-click',\n directly: true,\n });\n setTActived(actived, evtCtx);\n if (evtCtx.trigger !== 'setItem') {\n store.replaceActived((tActived.value || []) as TreeNodeValue[]);\n }\n return actived;\n };\n\n const toggleActived = (item: TypeTargetNode): TreeNodeValue[] => {\n const node = getNode(store, item);\n return setActived(node, !node.isActived());\n };\n\n const setChecked = (item: TypeTargetNode, isChecked: boolean, ctx: { e: Event }): TreeNodeValue[] => {\n const node = getNode(store, item);\n const mouseEvent = ctx?.e as MouseEvent;\n const evtCtx: TypeChangeEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n }\n const checked = node.setChecked(isChecked, {\n isAction: evtCtx.trigger === 'node-click',\n directly: true,\n });\n setTValue(checked, evtCtx);\n // 这是针对受控执行的操作,如果 props.value 未变更,则执行还原操作\n if (evtCtx.trigger !== 'setItem') {\n store.replaceChecked((tValue.value || []) as TreeNodeValue[]);\n }\n return checked;\n };\n\n const toggleChecked = (item: TypeTargetNode, ctx: { e: Event }): TreeNodeValue[] => {\n const node = getNode(store, item);\n if (node.isIndeterminate()) {\n const expectState = node.hasEnableUnCheckedChild();\n return setChecked(node, expectState, ctx);\n }\n return setChecked(node, !node.isChecked(), ctx);\n };\n\n return {\n setExpanded,\n toggleExpanded,\n setActived,\n toggleActived,\n setChecked,\n toggleChecked,\n };\n}\n","import { TypeCheckboxProps, usePrefixClass } from '../adapt';\nimport { TypeEventState, TypeTreeItemState } from '../tree-types';\n// 这里封装 tree-item 的一般事件\n// 拖动事件,虚拟滚动事件不要安排到这里\nexport default function useItemEvents(state: TypeTreeItemState) {\n const { context } = state;\n const classPrefix = usePrefixClass().value;\n\n const handleChange: TypeCheckboxProps['onChange'] = (_, ctx) => {\n const { node } = state;\n const event = new Event('change');\n const evtContext: TypeEventState = {\n event,\n node,\n };\n context.emit('change', evtContext, ctx);\n };\n\n let clicked = false;\n\n const handleClick = (evt: MouseEvent) => {\n const { node, treeScope } = state;\n const { treeProps = {} } = treeScope;\n const { expandOnClickNode } = treeProps;\n const srcTarget = evt.target as HTMLElement;\n const isBranchTrigger =\n node.children &&\n expandOnClickNode &&\n (srcTarget.className === `${classPrefix}-checkbox__input` || srcTarget.tagName.toLowerCase() === 'input');\n\n // checkbox 上也有 emit click 事件\n // 用这个逻辑避免重复的 click 事件被触发\n if (clicked || isBranchTrigger) return;\n clicked = true;\n // 为保持事件响应敏捷,立即还原 clicked 状态\n setTimeout(() => {\n clicked = false;\n });\n\n // 处理expandOnClickNode时与checkbox的选中的逻辑冲突\n if (expandOnClickNode && node.children && srcTarget.className?.indexOf?.(`${classPrefix}-tree__label`) !== -1)\n evt.preventDefault();\n\n const evtContext: TypeEventState = {\n mouseEvent: evt,\n event: evt,\n node,\n path: node.getPath(),\n };\n context.emit('click', evtContext);\n };\n\n return {\n handleChange,\n handleClick,\n };\n}\n","import { usePrefixClass, useGlobalIcon, TypeCreateElement, TLoading, TdCaretRightSmallIcon } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport { getTNode } from '../util';\n\n// 渲染节点图标\nexport default function useRenderIcon(state: TypeTreeItemState) {\n const classPrefix = usePrefixClass().value;\n const componentName = usePrefixClass('tree').value;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const getFolderIcon = (h: TypeCreateElement) => {\n const { CaretRightSmallIcon } = useGlobalIcon({\n CaretRightSmallIcon: TdCaretRightSmallIcon,\n });\n return ;\n };\n\n const handleMousedown = (evt: MouseEvent) => {\n // 在点击展开按钮 mousedown阶段 阻止冒泡 应用于处理如展开阻止下拉框失焦等场景\n evt.preventDefault();\n };\n\n const renderIcon = (h: TypeCreateElement) => {\n const { node, treeScope } = state;\n const { scopedSlots } = treeScope;\n const treeProps = treeScope?.treeProps || {};\n const { icon } = treeProps;\n let isDefaultIcon = false;\n\n let iconNode = null;\n if (icon === true) {\n if (scopedSlots?.icon) {\n iconNode = scopedSlots.icon({\n node: node?.getModel(),\n });\n } else if (!node.vmIsLeaf) {\n isDefaultIcon = true;\n iconNode = getFolderIcon(h);\n if (node.loading && node.expanded) {\n iconNode = ;\n }\n } else {\n iconNode = '';\n }\n } else if (icon) {\n iconNode = getTNode(icon, {\n createElement: h,\n node,\n });\n }\n\n const wrapIconNode = (\n \n {iconNode}\n \n );\n return wrapIconNode;\n };\n\n return {\n renderIcon,\n };\n}\n","import { isBoolean } from 'lodash-es';\nimport { usePrefixClass, TypeCreateElement, computed, TCheckBox, TypeVNode } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport { getTNode } from '../util';\nimport useItemEvents from './useItemEvents';\n\n// 渲染节点文本与内容\nexport default function useRenderLabel(state: TypeTreeItemState) {\n const classPrefix = usePrefixClass().value;\n const componentName = usePrefixClass('tree').value;\n\n const { handleChange } = useItemEvents(state);\n\n const renderLabel = (h: TypeCreateElement): TypeVNode => {\n const { node, treeScope } = state;\n const { scopedSlots, treeProps = {} } = treeScope;\n const { label, expandOnClickNode } = treeProps;\n const checkProps = treeProps?.checkProps || {};\n\n let labelNode = null;\n if (label === true) {\n if (scopedSlots?.label) {\n labelNode = scopedSlots.label({\n node: node?.getModel(),\n });\n } else {\n labelNode = node.label || '';\n }\n } else {\n labelNode = getTNode(label, {\n createElement: h,\n node,\n });\n }\n\n const labelClasses = [\n `${componentName}__label`,\n {\n [`${classPrefix}-is-active`]: node.isActivable() ? node.actived : false,\n },\n ];\n\n const shouldStopLabelTrigger = computed(() => {\n const isNormalBranchNode = Array.isArray(node.children) && node.children?.length > 0;\n // 延迟加载子节点场景\n const isLazyLoadChildBranchNode = isBoolean(node.children) && node.children;\n const isBranchNode = isNormalBranchNode || isLazyLoadChildBranchNode;\n return expandOnClickNode && isBranchNode;\n });\n\n if (node.vmCheckable) {\n let checkboxDisabled = false;\n if (node.vmIsLocked && !node.vmIsRest) {\n checkboxDisabled = true;\n }\n if (node.isDisabled()) {\n checkboxDisabled = true;\n }\n const itemCheckProps = {\n ...checkProps,\n disabled: checkboxDisabled,\n };\n\n labelNode = (\n \n {labelNode}\n \n );\n } else {\n const inner = {labelNode};\n // 使用key是为了避免元素复用,从而顺利移除ripple指令\n labelNode = node.isActivable() ? (\n \n {inner}\n \n ) : (\n \n {inner}\n \n );\n }\n\n return labelNode;\n };\n\n return {\n renderLabel,\n };\n}\n","import { onMounted, reactive, TypeCreateElement, usePrefixClass, useLazyLoad, TypeVNode } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport useItemEvents from './useItemEvents';\nimport useRenderIcon from './useRenderIcon';\nimport useRenderLabel from './useRenderLabel';\nimport useRenderLine from './useRenderLine';\nimport useRenderOperations from './useRenderOperations';\nimport useDraggable from './useDraggable';\nimport { onUpdated } from 'vue';\n\nexport default function useTreeItem(state: TypeTreeItemState) {\n const { treeScope, treeItemRef } = state;\n const { virtualConfig, treeContentRef, scrollProps } = treeScope;\n const classPrefix = usePrefixClass().value;\n const componentName = usePrefixClass('tree').value;\n\n const { handleClick } = useItemEvents(state);\n const { renderIcon } = useRenderIcon(state);\n const { renderLabel } = useRenderLabel(state);\n const { renderLine } = useRenderLine(state);\n const { renderOperations } = useRenderOperations(state);\n const { dragStates, handleDragStart, handleDragEnd, handleDragOver, handleDragLeave, handleDrop } =\n useDraggable(state);\n\n const { hasLazyLoadHolder, tRowHeight } = useLazyLoad(\n treeContentRef,\n treeItemRef,\n reactive({ ...scrollProps?.value }),\n );\n\n function tryNotifyVirtualScrollRowUpdate() {\n const { node } = state;\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) {\n // mounted 了,但是有可能样式没有计算完毕,此时获取的 row height 会有坑,延迟一点点再触发虚拟滚动的 mounted 回调,确保获取到正确的渲染高度\n const timer = setTimeout(() => {\n virtualConfig.handleRowMounted({\n ref: treeItemRef,\n data: node,\n });\n clearTimeout(timer);\n }, 100);\n }\n }\n\n onMounted(() => {\n tryNotifyVirtualScrollRowUpdate();\n });\n\n // 有可能因为 row-key 带来组件复用,这时候通过 update 进行更新\n onUpdated(() => {\n tryNotifyVirtualScrollRowUpdate();\n });\n\n // 节点隐藏用 class 切换,不要写在 js 中\n const getItemStyles = (): string => {\n const { node } = state;\n const { level } = node;\n // 原本想在这里计算 --hscale\n // 实际操作中发现 scrollHeight 在动画执行到一半的时候取得了错误的值\n // 导致 hscale 值获取错误\n // 暂无合适的方案,先搁置 hscale 自动计算策略\n const levelStyle = `--level: ${level};`;\n const strStyle = `${levelStyle}`;\n return strStyle;\n };\n\n const getItemClassList = () => {\n const { node } = state;\n const { isDragOver, isDragging, dropPosition } = dragStates;\n const list = [];\n list.push(`${componentName}__item`);\n list.push({\n [`${componentName}__item--open`]: node.expanded,\n [`${classPrefix}-is-active`]: node.isActivable() ? node.actived : false,\n [`${classPrefix}-is-disabled`]: node.isDisabled(),\n });\n list.push({\n [`${componentName}__item--draggable`]: node.isDraggable(),\n });\n if (node.visible) {\n list.push(`${componentName}__item--visible`);\n } else {\n list.push(`${componentName}__item--hidden`);\n }\n if (node.vmIsLocked) {\n list.push(`${componentName}__item--locked`);\n }\n if (node.vmIsRest) {\n list.push(`${componentName}__item--matched`);\n }\n // 拖拽过程样式相关classList\n list.push({\n [`${componentName}__item--dragging`]: isDragging,\n [`${componentName}__item--tip-top`]: isDragOver && dropPosition < 0,\n [`${componentName}__item--tip-bottom`]: isDragOver && dropPosition > 0,\n [`${componentName}__item--tip-highlight`]: !isDragging && isDragOver && dropPosition === 0,\n });\n return list;\n };\n\n const renderItem = (h: TypeCreateElement) => {\n const itemNodes: TypeVNode[] = [];\n // 第一步是渲染图标\n const iconNode = renderIcon(h);\n // 渲染连线排在渲染图标之后,是为了确认图标是否存在\n const lineNode = renderLine(h);\n if (lineNode) {\n itemNodes.push(lineNode);\n }\n if (iconNode) {\n itemNodes.push(iconNode);\n }\n const labelNode = renderLabel(h);\n if (labelNode) {\n itemNodes.push(labelNode);\n }\n const opNode = renderOperations(h);\n if (opNode) {\n itemNodes.push(opNode);\n }\n return itemNodes;\n };\n\n const renderItemNode = (h: TypeCreateElement) => {\n const { node, props } = state;\n if (!node) return null;\n\n const { level, value } = node;\n const styles = getItemStyles();\n const classList = getItemClassList();\n\n // 这里的代码用于 vue2 组件触发节点更新\n // 即使是新增的属性,调用 node.setData 也会触发节点更新\n const treeState = state;\n treeState.stateId = props.stateId;\n\n const itemNode = (\n handleClick(evt)}\n draggable={node.isDraggable()}\n onDragstart={(evt: DragEvent) => handleDragStart(evt)}\n onDragend={(evt: DragEvent) => handleDragEnd(evt)}\n onDragover={(evt: DragEvent) => handleDragOver(evt)}\n onDragleave={(evt: DragEvent) => handleDragLeave(evt)}\n onDrop={(evt: DragEvent) => handleDrop(evt)}\n >\n {hasLazyLoadHolder.value ? [
    ] : renderItem(h)}\n
    \n );\n return itemNode;\n };\n\n return {\n hasLazyLoadHolder,\n tRowHeight,\n renderItemNode,\n };\n}\n","import { usePrefixClass, TypeCreateElement, TreeNode, TypeVNode } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport { getTNode } from '../util';\n\n// 渲染节点连线\nexport default function useRenderLine(state: TypeTreeItemState) {\n const componentName = usePrefixClass('tree').value;\n\n const renderLine = (h: TypeCreateElement): TypeVNode => {\n const { node, treeScope } = state;\n const { scopedSlots } = treeScope;\n const treeProps = treeScope?.treeProps || {};\n const { line } = treeProps;\n const iconVisible = !!treeProps.icon;\n\n let lineNode = null;\n if (line === true) {\n if (scopedSlots?.line) {\n lineNode = scopedSlots.line({\n node: node?.getModel(),\n });\n } else if (node.parent && node.tree) {\n const { vmIsLeaf, vmIsFirst, level } = node;\n\n const lineClasses = [];\n\n // 每个节点绘制抵达上一层级的折线\n lineClasses.push(`${componentName}__line`);\n\n // 叶子节点,折线宽度延长,因为没有 icon 呈现\n // 任意节点,icon 不呈现时也是要延长折线宽度\n if (vmIsLeaf || !iconVisible) {\n lineClasses.push(`${componentName}__line--leaf`);\n }\n\n // 分支首节点,到上一节点的折线高度要缩短,让位给 icon 呈现\n // 如果 icon 隐藏了,则不必缩短折线高度\n if (vmIsFirst && iconVisible) {\n lineClasses.push(`${componentName}__line--first`);\n }\n\n // 如果节点的父节点,不是最后的节点\n // 则需要绘制节点延长线\n const shadowStyles: string[] = [];\n const parents = node.getParents();\n parents.pop();\n parents.forEach((pnode: TreeNode, index: number) => {\n if (!pnode.vmIsLast) {\n shadowStyles.push(`calc(-${index + 1} * var(--space)) 0 var(--color)`);\n }\n });\n\n const styles = {\n '--level': level ? String(level) : undefined,\n 'box-shadow': shadowStyles.join(','),\n };\n\n lineNode = ;\n }\n } else {\n lineNode = getTNode(line, {\n createElement: h,\n node,\n });\n }\n return lineNode as TypeVNode;\n };\n\n return {\n renderLine,\n };\n}\n","import { usePrefixClass, TypeCreateElement, TypeVNode } from '../adapt';\nimport { TypeTreeItemState } from '../tree-types';\nimport { getTNode } from '../util';\n\n// 渲染节点操作区域\nexport default function useRenderOperations(state: TypeTreeItemState) {\n const componentName = usePrefixClass('tree').value;\n\n const renderOperations = (h: TypeCreateElement): TypeVNode => {\n const { node, treeScope } = state;\n const { scopedSlots } = treeScope;\n const treeProps = treeScope?.treeProps || {};\n const { operations } = treeProps;\n\n let opNode = null;\n if (scopedSlots?.operations) {\n opNode = scopedSlots.operations({\n node: node?.getModel(),\n });\n } else {\n opNode = getTNode(operations, {\n createElement: h,\n node,\n });\n }\n if (opNode) {\n opNode = (\n // TODO: 这里最好修改一下,改成 data-ignore 之类的\n // @ts-ignore\n \n {opNode}\n \n );\n }\n return opNode as TypeVNode;\n };\n\n return {\n renderOperations,\n };\n}\n","import { ref, onMounted, computed, nextTick, Ref, UnwrapRef } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { isServer } from '../utils/dom';\n\nexport type UseLazyLoadParams = UnwrapRef<{\n type: 'lazy' | 'virtual';\n rowHeight?: number;\n bufferSize?: number;\n}>;\n\nexport default function useLazyLoad(\n containerRef: Ref,\n childRef: Ref,\n params: UseLazyLoadParams,\n) {\n const tRowHeight = computed(() => Math.max(params.rowHeight || 48, 48));\n const isInit = ref(false);\n const hasLazyLoadHolder = computed(() => params?.type === 'lazy' && !isInit.value);\n\n const requestAnimationFrame = (!isServer && window.requestAnimationFrame) || ((cb) => setTimeout(cb, 16.6));\n\n const init = () => {\n if (!isInit.value) {\n requestAnimationFrame(() => {\n isInit.value = true;\n });\n }\n };\n\n onMounted(() => {\n if (params?.type !== 'lazy') return;\n nextTick(() => {\n const bufferSize = Math.max(10, params.bufferSize || 10);\n const height = tRowHeight.value * bufferSize;\n observe(childRef.value, containerRef.value, init, height);\n });\n });\n\n return {\n hasLazyLoadHolder,\n tRowHeight,\n };\n}\n","import {\n TypePropType,\n defineComponent,\n TypeCreateElement,\n ref,\n TreeItemDefinition,\n useRipple,\n getCreateElement,\n} from './adapt';\nimport { TypeTreeItemProps } from './tree-types';\nimport useItemState from './hooks/useItemState';\nimport useTreeItem from './hooks/useTreeItem';\n\nexport const treeItemProps = {\n stateId: {\n type: String as TypePropType,\n },\n itemKey: {\n type: String as TypePropType,\n },\n rowIndex: {\n type: Number as TypePropType,\n },\n treeScope: {\n type: Object as TypePropType,\n },\n};\n\nexport default defineComponent({\n props: treeItemProps,\n ...TreeItemDefinition,\n setup(props: TypeTreeItemProps, context) {\n const { state } = useItemState(props, context);\n const { treeItemRef } = state;\n const label = ref();\n useRipple(label);\n const { renderItemNode } = useTreeItem(state);\n\n return {\n treeItemRef,\n renderItemNode,\n };\n },\n render(h: TypeCreateElement) {\n const createElement = getCreateElement(h);\n // 这个类型判断看起来多此一举\n // 然而单元测试时没有它却会报错:\n // This expression is not callable. Type '{}' has no call signatures.\n if (typeof this.renderItemNode === 'function') {\n return this.renderItemNode(createElement);\n }\n return null;\n },\n});\n","import { ref, toRefs, TypeSetupContext } from '../adapt';\nimport { TypeTreeItemProps, TypeTreeItemState } from '../tree-types';\n\n// 提供公共对象\nexport default function useItemState(props: TypeTreeItemProps, context: TypeSetupContext) {\n const refProps = toRefs(props);\n const treeItemRef = ref(null);\n const { treeScope } = props;\n const { store } = treeScope;\n const node = store.privateMap.get(props.itemKey);\n\n const state: TypeTreeItemState = {\n stateId: props.stateId,\n props,\n context,\n treeScope,\n refProps,\n node,\n treeItemRef,\n };\n\n return {\n state,\n };\n}\n","import { ref, watch, TypeCreateElement, privateKey, TypeVNode } from '../adapt';\nimport { TypeTreeRow, TypeTreeNode, TypeTreeState } from '../tree-types';\nimport TreeItem from '../tree-item';\nimport useTreeEvents from './useTreeEvents';\n\n// tree 节点列表渲染\nexport default function useTreeNodes(state: TypeTreeState) {\n const { store, scope, allNodes, nodes, virtualConfig } = state;\n const { handleClick, handleChange } = useTreeEvents(state);\n const nodesEmpty = ref(false);\n // 用于存储已呈现节点的缓存\n const cacheMap = new Map();\n\n const refresh = () => {\n allNodes.value = store.getNodes();\n };\n\n const refreshVisibleNodes = () => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) return;\n // 非虚拟滚动,渲染可视节点\n const list: TypeTreeNode[] = [];\n // 非虚拟滚动,缓存曾经展示过的节点\n let hasVisibleNode = false;\n allNodes.value.forEach((node: TypeTreeNode) => {\n if (node.visible) {\n // 曾经展示过的节点加入缓存,避免再次创建\n hasVisibleNode = true;\n cacheMap.set(node.value, node.value);\n }\n if (cacheMap.has(node.value)) {\n // 创建的节点是缓存的节点\n list.push(node);\n }\n });\n cacheMap.forEach((value) => {\n // 在缓存中清理结构变化后不存在的节点\n if (!store.getNode(value)) {\n cacheMap.delete(value);\n }\n });\n // 渲染为平铺列表\n nodes.value = list;\n nodesEmpty.value = !hasVisibleNode;\n };\n\n const refreshVirtualNodes = () => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (!isVirtual) return;\n // 虚拟滚动只渲染可见节点\n const list = virtualConfig.visibleData.value;\n nodes.value = list;\n nodesEmpty.value = list.length <= 0;\n };\n\n // 创建单个 tree 节点\n const renderItem = (h: TypeCreateElement, node: TypeTreeRow, index: number, stateId: string) => {\n const rowIndex = node.VIRTUAL_SCROLL_INDEX || index;\n const nodeUniqueId = node[privateKey];\n // vue3 中,不使用动画时,传递 node, 或者单纯传递 itemKey 无法触发 treeItem 的 render 方法\n // 考虑到有必要对所有节点状态更新,所以添加 stateId 属性,专门用于触发 treeItem 的 render 方法\n // 使用动画时,transition group 触发了所有节点的 render 方法,回头可以研究看下更合适的方案\n // 未来也可以根据节点数据的具体更新状态,来决定节点更新与否\n // 考虑到 value 值有冲突可能,所以使用 privateKey 来作为节点标记\n const treeItem = (\n \n );\n return treeItem;\n };\n\n const renderTreeNodes = (h: TypeCreateElement) => {\n const stateId = `render-${new Date().getTime()}`;\n const treeNodeViews: TypeVNode[] = nodes.value.map((node: TypeTreeNode, index) =>\n renderItem(h, node, index, stateId),\n );\n return treeNodeViews;\n };\n\n watch(allNodes, refreshVisibleNodes);\n watch(virtualConfig.visibleData, refreshVirtualNodes);\n\n refresh();\n refreshVisibleNodes();\n refreshVirtualNodes();\n store.emitter.on('update', refresh);\n\n return {\n nodesEmpty,\n renderTreeNodes,\n };\n}\n","import { TreeProps, TypeTreeState, TypeEventState } from '../tree-types';\nimport { getMark, emitEvent } from '../util';\nimport useTreeAction from './useTreeAction';\n\n// tree 组件一般事件处理\nexport default function useTreeEvents(state: TypeTreeState) {\n const treeState = state;\n const { props, context } = treeState;\n const { toggleExpanded, toggleActived, toggleChecked } = useTreeAction(state);\n\n const handleClick = (evtState: TypeEventState) => {\n const { mouseEvent, event, node } = evtState;\n if (!node || !mouseEvent) return;\n\n // 用于向内部方法传递事件对象\n treeState.mouseEvent = mouseEvent;\n\n let shouldExpand = props.expandOnClickNode;\n let shouldActive = !props.disabled && !node.disabled && node.isActivable();\n\n // 给节点添加属性 trigger=\"expand,active\", ignore=\"expand,active\"\n // 来确认或者屏蔽动作\n ['trigger', 'ignore'].forEach((markName) => {\n const mark = getMark(markName, event.target as HTMLElement, event.currentTarget as HTMLElement);\n const markValue = mark?.value || '';\n if (markValue.indexOf('expand') >= 0) {\n // 路径节点包含了 trigger=\"expand\" ignore=\"expand\"\n if (markName === 'trigger') {\n shouldExpand = true;\n } else if (markName === 'ignore') {\n shouldExpand = false;\n }\n }\n if (markValue.indexOf('active') >= 0) {\n // 路径节点包含了 trigger=\"active\" ignore=\"active\"\n if (markName === 'ignore') {\n shouldActive = false;\n }\n }\n });\n\n if (shouldExpand) {\n toggleExpanded(node);\n }\n\n if (shouldActive) {\n toggleActived(node);\n }\n\n const evtCtx = {\n node: node.getModel(),\n e: mouseEvent,\n };\n emitEvent>(props, context, 'click', evtCtx);\n\n treeState.mouseEvent = null;\n };\n\n const handleChange = (evtState: TypeEventState, ctx: { e: Event }) => {\n const { disabled } = props;\n const { node } = evtState;\n if (!node || disabled || node.disabled || !node.isCheckable()) {\n return;\n }\n toggleChecked(node, ctx);\n };\n\n return {\n handleChange,\n handleClick,\n };\n}\n","import { computed, onMounted, TypeRef, useVirtualScroll, TypeScroll, TreeNode } from '../adapt';\nimport { get } from 'lodash-es';\nimport { TypeTreeState, TypeTimer } from '../tree-types';\nimport log from '@tdesign/common-js/log/index';\n\nimport type { ComponentScrollToElementParams } from '../../common';\n\n// tree 虚拟滚动整合\nexport default function useTreeScroll(state: TypeTreeState) {\n const treeState = state;\n const { props, context, allNodes, nodes, scope, treeContentRef, isScrolling } = treeState;\n\n const scrollProps: TypeRef = computed(() => ({\n // 默认一行高度为 34px\n rowHeight: 34,\n ...props.scroll,\n }));\n scope.scrollProps = scrollProps;\n\n // 虚拟滚动\n const virtualScrollParams = computed(() => {\n const list = allNodes.value.filter((node: TreeNode) => node.visible);\n return {\n data: list,\n scroll: scrollProps.value,\n preventResizeRefresh: true,\n };\n });\n\n const virtualConfig = useVirtualScroll(treeContentRef, virtualScrollParams);\n scope.virtualConfig = virtualConfig;\n treeState.virtualConfig = virtualConfig;\n\n onMounted(() => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) {\n virtualConfig.handleScroll();\n }\n });\n\n const emitScrollEvent = (e: WheelEvent) => {\n props.onScroll?.({ e });\n // Vue3 ignore next line\n context.emit('scroll', { e });\n };\n\n // 设置滚动结束状态\n let scrollStopTimer: TypeTimer = null;\n const setScrolling = () => {\n isScrolling.value = true;\n if (scrollStopTimer) {\n clearTimeout(scrollStopTimer);\n scrollStopTimer = null;\n }\n scrollStopTimer = setTimeout(() => {\n scrollStopTimer = null;\n isScrolling.value = false;\n }, 100);\n };\n\n let lastScrollY = 0;\n const onInnerVirtualScroll = (e: WheelEvent) => {\n setScrolling();\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n const target = (e.target || e.srcElement) as HTMLElement;\n const top = target.scrollTop;\n\n // 排除横向滚动触发的纵向虚拟滚动计算\n if (lastScrollY !== top) {\n if (isVirtual) {\n virtualConfig.handleScroll();\n nodes.value = virtualConfig.visibleData.value;\n }\n } else {\n lastScrollY = 0;\n }\n lastScrollY = top;\n emitScrollEvent(e);\n };\n\n const handleScrollTo = (params: ComponentScrollToElementParams) => {\n let index = params.index;\n if (!index && index !== 0) {\n if (!params.key) {\n log.error('Tree', 'scrollToElement: one of `index` or `key` must exist.');\n return;\n }\n index = allNodes.value?.findIndex((item) =>\n [get(item.data, 'key'), get(item.data, props.keys?.['value'] || 'value')].includes(params.key),\n );\n if (index < 0) {\n log.error('Tree', `${params.key} does not exist in data, check \\`key\\` or \\`data\\` please.`);\n return;\n }\n }\n virtualConfig.scrollToElement({ ...params, index: index - 1 });\n };\n return {\n // 虚拟滚动相关\n treeContentRef,\n onInnerVirtualScroll,\n virtualConfig,\n scrollToElement: handleScrollTo,\n };\n}\n","import { computed, TypeStyles, usePrefixClass } from '../adapt';\nimport { TypeTreeState } from '../tree-types';\n\nexport function formatCSSUnit(unit: string | number) {\n if (!unit) return unit;\n return isNaN(Number(unit)) ? unit : `${unit}px`;\n}\n\nexport default function useTreeStyles(state: TypeTreeState) {\n const { props } = state;\n const componentName = usePrefixClass('tree').value;\n const classPrefix = usePrefixClass().value;\n const { virtualConfig, isScrolling, refProps } = state;\n\n const { height, maxHeight } = refProps;\n\n const treeClasses = computed(() => {\n const list: Array = [componentName];\n const { disabled, hover, transition, checkable, draggable, expandOnClickNode, scroll } = props;\n if (disabled) {\n list.push(`${classPrefix}-is-disabled`);\n }\n if (hover) {\n list.push(`${componentName}--hoverable`);\n }\n if (checkable) {\n list.push(`${componentName}--checkable`);\n }\n if (draggable) {\n list.push(`${componentName}--draggable`);\n }\n if (transition) {\n list.push(`${componentName}--transition`);\n }\n if (expandOnClickNode) {\n list.push(`${componentName}--block-node`);\n }\n\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n if (isVirtual) {\n list.push(`${componentName}__vscroll`);\n if (isScrolling.value) {\n list.push(`${componentName}--scrolling`);\n }\n } else if (scroll && scroll.type === 'lazy') {\n list.push(`${componentName}__lazyload`);\n }\n\n return list;\n });\n\n const treeContentStyles = computed(() => ({\n height: formatCSSUnit(height.value),\n maxHeight: formatCSSUnit(maxHeight.value),\n overflowY: formatCSSUnit(height.value) || formatCSSUnit(maxHeight.value) ? 'auto' : undefined,\n }));\n\n const scrollStyles = computed(() => {\n // isVirtual 改为函数内取值,可接收属性的变动\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n const translateY = isVirtual ? virtualConfig?.translateY.value : 0;\n const transform = `translateY(${translateY}px)`;\n const posStyle = {\n transform,\n '-ms-transform': transform,\n '-moz-transform': transform,\n '-webkit-transform': transform,\n };\n return posStyle;\n });\n\n const cursorStyles = computed(() => {\n const isVirtual = virtualConfig?.isVirtualScroll.value;\n const translateY = isVirtual ? virtualConfig?.translateY.value : 0;\n const translate = `translate(0, ${translateY}px)`;\n return {\n transform: translate,\n '-ms-transform': translate,\n '-moz-transform': translate,\n '-webkit-transform': translate,\n };\n });\n\n return {\n treeClasses,\n treeContentStyles,\n scrollStyles,\n cursorStyles,\n };\n}\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTreeProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 节点是否可高亮 */\n activable: Boolean,\n /** 是否允许多个节点同时高亮 */\n activeMultiple: Boolean,\n /** 高亮的节点值 */\n actived: {\n type: Array as PropType,\n default: undefined as TdTreeProps['actived'],\n },\n /** 高亮的节点值,非受控属性 */\n defaultActived: {\n type: Array as PropType,\n },\n /** 判断节点是否可以执行 drop 操作,泛型 `T` 表示树节点 TS 类型 */\n allowDrop: {\n type: Function as PropType,\n },\n /** 是否允许在过滤时节点折叠节点 */\n allowFoldNodeOnFilter: Boolean,\n /** 透传属性到 checkbox 组件。参考 checkbox 组件 API */\n checkProps: {\n type: Object as PropType,\n },\n /** 父子节点选中状态不再关联,可各自选中或取消 */\n checkStrictly: Boolean,\n /** 隐藏节点复选框 */\n checkable: Boolean,\n /** 树数据,泛型 `T` 表示树节点 TS 类型 */\n data: {\n type: Array as PropType,\n default: (): TdTreeProps['data'] => [],\n },\n /** 禁用复选框,可支持禁用不同的行 */\n disableCheck: {\n type: [Boolean, Function] as PropType,\n default: false as TdTreeProps['disableCheck'],\n },\n /** 是否禁用树操作 */\n disabled: Boolean,\n /** 节点是否可拖拽 */\n draggable: Boolean,\n /** 数据为空时展示的文本 */\n empty: {\n type: [String, Function] as PropType,\n default: '' as TdTreeProps['empty'],\n },\n /** 是否展开全部节点 */\n expandAll: Boolean,\n /** 默认展开的级别,第一层为 0 */\n expandLevel: {\n type: Number,\n default: 0,\n },\n /** 同级别展开互斥,手风琴效果 */\n expandMutex: Boolean,\n /** 是否支持点击节点也能展开收起 */\n expandOnClickNode: Boolean,\n /** 展开子节点时是否自动展开父节点 */\n expandParent: Boolean,\n /** 展开的节点值 */\n expanded: {\n type: Array as PropType,\n default: undefined as TdTreeProps['expanded'],\n },\n /** 展开的节点值,非受控属性 */\n defaultExpanded: {\n type: Array as PropType,\n default: (): TdTreeProps['defaultExpanded'] => [],\n },\n /** 节点过滤方法,只呈现返回值为 true 的节点,泛型 `T` 表示树节点 TS 类型 */\n filter: {\n type: Function as PropType,\n },\n /** 树的高度,超出后会出现滚动条。示例:100, '30%', '300'。值为数字类型,会自动加上单位 px。如果不是绝对固定树的高度,建议使用 `maxHeight` */\n height: {\n type: [String, Number] as PropType,\n },\n /** 节点是否有悬浮状态 */\n hover: Boolean,\n /** 节点图标,可自定义 */\n icon: {\n type: [Boolean, Function] as PropType,\n default: true as TdTreeProps['icon'],\n },\n /** 用来定义 `value / label / disabled / children` 在 `data` 数据中对应的字段别名,示例:`{ value: 'key', label 'name', children: 'list' }`。其中,disabled 待开发。 */\n keys: {\n type: Object as PropType,\n },\n /** 自定义节点内容,值为 `false` 不显示,值为 `true` 显示默认 label,值为字符串直接输出该字符串。泛型 `T` 表示树节点 TS 类型。
    如果期望只有点击复选框才选中,而点击节点不选中,可以使用 `label` 自定义节点,然后加上点击事件 `e.preventDefault()`,通过调整自定义节点的宽度和高度决定禁止点击选中的范围 */\n label: {\n type: [String, Boolean, Function] as PropType,\n default: true as TdTreeProps['label'],\n },\n /** 延迟加载 children 为 true 的节点的子节点数据,即使 expandAll 被设置为 true,也同样延迟加载 */\n lazy: {\n type: Boolean,\n default: true,\n },\n /** 连接线。值为 false 不显示连接线;值为 true 显示默认连接线;值类型为 Function 表示自定义连接线 */\n line: {\n type: [Boolean, Function] as PropType,\n default: false as TdTreeProps['line'],\n },\n /** 加载子数据的方法,在展开节点时调用(仅当节点 children 为 true 时生效),泛型 `T` 表示树节点 TS 类型 */\n load: {\n type: Function as PropType,\n },\n /** 树的最大高度,超出后会出现滚动条。示例:100, '30%', '300'。值为数字类型,会自动加上单位 px */\n maxHeight: {\n type: [String, Number] as PropType,\n },\n /** 自定义节点操作项,泛型 `T` 表示树节点 TS 类型 */\n operations: {\n type: Function as PropType,\n },\n /** 懒加载和虚拟滚动。为保证组件收益最大化,当数据量小于阈值 `scroll.threshold` 时,无论虚拟滚动的配置是否存在,组件内部都不会开启虚拟滚动,`scroll.threshold` 默认为 `100` */\n scroll: {\n type: Object as PropType,\n },\n /** 节点展开折叠时是否使用过渡动画 */\n transition: {\n type: Boolean,\n default: true,\n },\n /** 选中值,组件为可选状态时有效 */\n value: {\n type: Array as PropType,\n default: undefined as TdTreeProps['value'],\n },\n modelValue: {\n type: Array as PropType,\n default: undefined as TdTreeProps['value'],\n },\n /** 选中值,组件为可选状态时有效,非受控属性 */\n defaultValue: {\n type: Array as PropType,\n default: (): TdTreeProps['defaultValue'] => [],\n },\n /** 选中值模式。all 表示父节点和子节点全部会出现在选中值里面;parentFirst 表示当子节点全部选中时,仅父节点在选中值里面;onlyLeaf 表示无论什么情况,选中值仅呈现叶子节点 */\n valueMode: {\n type: String as PropType,\n default: 'onlyLeaf' as TdTreeProps['valueMode'],\n validator(val: TdTreeProps['valueMode']): boolean {\n if (!val) return true;\n return ['onlyLeaf', 'parentFirst', 'all'].includes(val);\n },\n },\n /** 节点激活时触发,泛型 `T` 表示树节点 TS 类型 */\n onActive: Function as PropType,\n /** 节点选中状态变化时触发,context.node 表示当前变化的选项,泛型 `T` 表示树节点 TS 类型 */\n onChange: Function as PropType,\n /** 节点点击时触发,泛型 `T` 表示树节点 TS 类型 */\n onClick: Function as PropType,\n /** 节点结束拖拽时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragEnd: Function as PropType,\n /** 节点拖拽时离开目标元素时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragLeave: Function as PropType,\n /** 节点拖拽到目标元素时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragOver: Function as PropType,\n /** 节点开始拖拽时触发,泛型 `T` 表示树节点 TS 类型 */\n onDragStart: Function as PropType,\n /** 节点在目标元素上释放时触发,泛型 `T` 表示树节点 TS 类型 */\n onDrop: Function as PropType,\n /** 节点展开或收起时触发,泛型 `T` 表示树节点 TS 类型 */\n onExpand: Function as PropType,\n /** 异步加载后触发,泛型 `T` 表示树节点 TS 类型 */\n onLoad: Function as PropType,\n /** 滚动事件 */\n onScroll: Function as PropType,\n};\n","import { isFunction } from 'lodash-es';\nimport { upperFirst } from 'lodash-es';\nimport { renderTNodeJSX } from '../utils/render-tnode';\nimport {\n defineComponent,\n getCreateElement,\n getScopedSlots,\n TransitionGroup,\n TreeNode,\n TypeCreateElement,\n TypeStyles,\n TypeTNodeReturnValue,\n TypeTreeOptionData,\n useConfig,\n usePrefixClass,\n} from './adapt';\nimport useDragHandle from './hooks/useDragHandle';\nimport useTreeAction from './hooks/useTreeAction';\nimport useTreeNodes from './hooks/useTreeNodes';\nimport useTreeScroll from './hooks/useTreeScroll';\nimport useTreeState from './hooks/useTreeState';\nimport useTreeStore from './hooks/useTreeStore';\nimport useTreeStyles from './hooks/useTreeStyles';\nimport props from './props';\nimport { TreeNodeState, TreeNodeValue, TypeTreeNodeModel } from './tree-types';\nimport { getNode } from './util';\n\n// 2022.11.02 tabliang 备注\n// 之前尝试实现了嵌套布局,原本预期嵌套布局能够提升大数据量下,全部渲染节点时的性能表现\n// 实测性能提升有限,不如使用虚拟滚动的收益高,反而导致了组件的维护困难与混乱\n// 自 2022 年初首次提出嵌套布局要求,大半年以来,对嵌套布局的需求也不是很高\n// 因此废弃嵌套布局方案,之后重点解决虚拟滚动能力\n\nexport default defineComponent({\n name: 'TTree',\n model: {\n prop: 'value',\n event: 'change',\n },\n\n props: {\n ...props,\n },\n\n setup(props, context) {\n const { t, global } = useConfig('tree');\n const classPrefix = usePrefixClass();\n const componentName = usePrefixClass('tree');\n\n // 用于 hooks 传递数据\n const { state } = useTreeState(props, context);\n const { treeContentRef, isScrolling } = state;\n const { store, updateStoreConfig, rebuild } = useTreeStore(state);\n\n useDragHandle(state);\n const { setActived, setExpanded, setChecked } = useTreeAction(state);\n const { onInnerVirtualScroll, virtualConfig, scrollToElement } = useTreeScroll(state);\n const { renderTreeNodes, nodesEmpty } = useTreeNodes(state);\n const { treeClasses, treeContentStyles, scrollStyles, cursorStyles } = useTreeStyles(state);\n\n // 不想暴露给用户的属性与方法,统一挂载到 setup 返回的对象上\n // 实例上无法直接访问这些方法与属性\n return {\n t,\n global,\n classPrefix,\n componentName,\n state,\n store,\n treeClasses,\n treeContentRef,\n\n rebuild,\n updateStoreConfig,\n setActived,\n setExpanded,\n setChecked,\n renderTreeNodes,\n nodesEmpty,\n\n isScrolling,\n onInnerVirtualScroll,\n treeContentStyles,\n scrollStyles,\n cursorStyles,\n virtualConfig,\n scrollToElement: scrollToElement, // deprecated\n scrollTo: scrollToElement,\n };\n },\n\n watch: {\n // 实测发现,composition api 中的 refsProps watch ,回调时间迟于 $nextTick 回调\n // 因此改为在这里绑定 data 属性监听,实测这里的 watch 回调,早于 $nextTick 回调发生\n data(list) {\n this.rebuild(list);\n },\n },\n // 在 methods 提供公共方法\n // 实例上可以直接访问\n methods: {\n // 刷新树节点状态\n refresh(): void {\n this.store.refreshState();\n },\n // 设置目标节点状态\n setItem(value: TreeNodeValue, options: TreeNodeState): void {\n const node: TreeNode = this.store.getNode(value);\n const spec = options;\n const keys = Object.keys(spec);\n if (node && spec) {\n ['expanded', 'actived', 'checked'].forEach((name) => {\n if (keys.includes(name)) {\n const val = spec[name as keyof typeof spec];\n delete spec[name as keyof typeof spec];\n const methodName = `set${upperFirst(name)}`;\n const setupMethod = this[methodName];\n if (isFunction(setupMethod)) {\n setupMethod.call(this, node, val);\n }\n }\n });\n node.set(spec);\n }\n },\n // 获取目标节点\n getItem(value: TreeNodeValue): TypeTreeNodeModel {\n const node: TreeNode = this.store.getNode(value);\n return node?.getModel();\n },\n // 无 value 参数: 获取 tree 所有节点,一维结构\n // 传递 value 参数: 获取节点值对应的目标节点下,包含自己在内的所有子节点\n getItems(value?: TreeNodeValue): TypeTreeNodeModel[] {\n const nodes = this.store.getNodes(value);\n return nodes.map((node: TreeNode) => node.getModel());\n },\n // 将节点数据插入到目标节点\n // 无目标节点,则插入为根节点\n appendTo(para?: TreeNodeValue, item?: TypeTreeOptionData | TypeTreeOptionData[]) {\n const { store } = this;\n let list = [];\n if (Array.isArray(item)) {\n list = item;\n } else {\n list = [item];\n }\n list.forEach((item) => {\n const val = item?.value || '';\n const node = getNode(store, val);\n if (node) {\n store.appendNodes(para, node);\n } else {\n store.appendNodes(para, item);\n }\n });\n },\n // 在指定节点之前插入单个节点数据\n insertBefore(value: TreeNodeValue, item: TypeTreeOptionData) {\n const { store } = this;\n const val = item?.value || '';\n const node = getNode(store, val);\n if (node) {\n store.insertBefore(value, node);\n } else {\n store.insertBefore(value, item);\n }\n },\n // 在指定节点之后插入单个节点数据\n insertAfter(value: TreeNodeValue, item: TypeTreeOptionData) {\n const { store } = this;\n const val = item?.value || '';\n const node = getNode(store, val);\n if (node) {\n store.insertAfter(value, node);\n } else {\n store.insertAfter(value, item);\n }\n },\n // 移除目标节点\n remove(value?: TreeNodeValue) {\n return this.store.remove(value);\n },\n // 获取节点在当前层级的 index\n getIndex(value: TreeNodeValue): number {\n return this.store.getNodeIndex(value);\n },\n // 获取父节点\n getParent(value: TreeNodeValue): TypeTreeNodeModel {\n const node = this.store.getParent(value);\n return node?.getModel();\n },\n // 获取父节点列表\n getParents(value: TreeNodeValue): TypeTreeNodeModel[] {\n const nodes = this.store.getParents(value);\n return nodes.map((node: TreeNode) => node.getModel());\n },\n // 获取路径节点列表\n getPath(value: TreeNodeValue): TypeTreeNodeModel[] {\n const node = this.store.getNode(value);\n let pathNodes: TypeTreeNodeModel[] = [];\n if (node) {\n pathNodes = node.getPath().map((node: TreeNode) => node.getModel());\n }\n return pathNodes;\n },\n // 提供树结构原始数据\n getTreeData(value?: TreeNodeValue): TypeTreeOptionData[] {\n let list: TreeNode[] = [];\n if (value) {\n const node = this.store.getNode(value);\n if (!node) return [];\n list = this.store.getNodes(value);\n } else {\n list = this.store.getNodes();\n }\n // 一维结构树节点转树结构数据\n const nodeMap: Record = {};\n const treeNodes: TypeTreeOptionData[] = [];\n list.forEach((item: TreeNode) => {\n const { value } = item;\n const itemData = {\n ...item.data,\n value,\n };\n if (itemData.children !== true) {\n delete itemData.children;\n }\n nodeMap[value] = itemData;\n const parent = item.getParent();\n if (!parent) {\n // 是根节点\n treeNodes.push(itemData);\n } else {\n const parentData = nodeMap[parent.value];\n if (!parentData) {\n // 为目标节点范围内的根节点\n treeNodes.push(itemData);\n } else {\n if (!Array.isArray(parentData.children)) {\n parentData.children = [];\n }\n parentData.children.push(itemData);\n }\n }\n });\n return treeNodes;\n },\n },\n render(h: TypeCreateElement) {\n const {\n state,\n treeClasses,\n updateStoreConfig,\n renderTreeNodes,\n nodesEmpty,\n isScrolling,\n virtualConfig,\n treeContentStyles,\n scrollStyles,\n cursorStyles,\n } = this;\n\n const createElement = getCreateElement(h);\n\n const { scope, allNodes, refProps } = state;\n // 更新 scopedSlots\n scope.scopedSlots = getScopedSlots(this);\n\n updateStoreConfig();\n\n const treeNodeViews = renderTreeNodes(createElement);\n const cname = this.componentName;\n const isVirtual = virtualConfig.isVirtualScroll.value;\n\n // 空数据判定\n let emptyNode: TypeTNodeReturnValue = null;\n if (nodesEmpty) {\n const useLocale = !this.empty && !this.$slots.empty;\n const emptyContent = useLocale ? this.t(this.global.empty) : renderTNodeJSX(this, 'empty');\n emptyNode =
    {emptyContent}
    ;\n } else if (treeNodeViews.length <= 0) {\n // 数据切换时,有闪现的缓存节点呈现\n // 用这个替换内容置空\n emptyNode =
    ;\n }\n\n // 构造列表\n const { $props } = this;\n const { transition } = $props;\n\n let treeNodeList = null;\n if (!transition || (isVirtual && isScrolling)) {\n // vue3 不使用 transition group 会导致展开收起动作异常\n treeNodeList = (\n
    \n {treeNodeViews}\n
    \n );\n } else {\n // 启用动画时,需要确保滚动中动画样式失效\n treeNodeList = (\n \n {treeNodeViews}\n \n );\n }\n\n const topValue =\n (allNodes.value?.filter((node) => node.visible).length ?? 0) * (refProps.scroll.value?.rowHeight ?? 34);\n const placeholderStyles: TypeStyles = {\n width: '1px',\n height: '1px',\n opacity: 0,\n pointerEvents: 'none',\n position: 'absolute',\n left: 0,\n top: `${topValue}px`,\n };\n\n const placeholderEl =
    ;\n\n const treeNode = (\n
    \n {isVirtual &&
    }\n {emptyNode || treeNodeList}\n {isVirtual && placeholderEl}\n
    \n );\n\n return treeNode;\n },\n});\n","import { ref, TypeRef, TreeNode, useVModel, toRefs, TypeSetupContext } from '../adapt';\nimport { TreeProps, TypeTreeStore, TypeTreeState } from '../tree-types';\n\n// 提供公共对象\nexport default function useTreeState(props: TreeProps, context: TypeSetupContext) {\n const treeContentRef = ref();\n const nodes: TypeRef = ref([]);\n const allNodes: TypeRef = ref([]);\n const isScrolling: TypeRef = ref(false);\n\n const refProps = toRefs(props);\n const vmValue = useVModel(props, refProps, 'value', 'defaultValue', 'onChange', 'change');\n const vmActived = useVModel(props, refProps, 'actived', 'defaultActived', 'onActive', 'active');\n const vmExpanded = useVModel(props, refProps, 'expanded', 'defaultExpanded', 'onExpand', 'expand');\n\n function setStore(store: TypeTreeStore) {\n state.store = store;\n state.scope.store = store;\n allNodes.value = store.getNodes();\n }\n\n const state: TypeTreeState = {\n props,\n context,\n // tree 数据对象\n store: null,\n // 内容根节点\n treeContentRef,\n // 渲染节点\n nodes,\n // 所有节点\n allNodes,\n // 是否正在滚动\n isScrolling,\n // 缓存点击事件\n mouseEvent: null,\n // 虚拟滚动对象\n virtualConfig: null,\n // 缓存与节点共享的关联对象\n scope: {\n store: null,\n treeContentRef,\n treeProps: props,\n scopedSlots: {},\n virtualConfig: null,\n },\n setStore,\n refProps,\n vmValue,\n vmActived,\n vmExpanded,\n };\n\n return {\n state,\n };\n}\n","import { pick } from 'lodash-es';\nimport { TreeStore } from '@tdesign/common-js/tree/tree-store';\nimport { watch, TypeRef } from '../adapt';\nimport {\n TreeProps,\n TypeValueMode,\n TreeNodeValue,\n TypeEventState,\n TypeTreeNodeModel,\n TypeTreeNode,\n TypeTNodeValue,\n TypeTreeState,\n} from '../tree-types';\n\nexport default function useTreeStore(state: TypeTreeState) {\n const { props, context, refProps } = state;\n const { valueMode, filter, keys } = props;\n\n const store: TreeStore = new TreeStore({\n valueMode: valueMode as TypeValueMode,\n filter,\n });\n\n // tValue 就是 refProps.value\n const tValue = state.vmValue[0] as TypeRef;\n // tActived 就是 refProps.actived\n const tActived = state.vmActived[0] as TypeRef;\n // tExpanded 就是 refProps.expanded\n const tExpanded = state.vmExpanded[0] as TypeRef;\n\n // 同步 Store 选项\n const updateStoreConfig = () => {\n // 统一更新选项,然后在 store 统一识别属性更新\n // 注意: keys 属性比较特殊,不应该在实例化之后再次变更\n const storeProps = pick(props, [\n 'expandAll',\n 'expandLevel',\n 'expandMutex',\n 'expandParent',\n 'activable',\n 'activeMultiple',\n 'disabled',\n 'disableCheck',\n 'checkable',\n 'draggable',\n 'checkStrictly',\n 'load',\n 'lazy',\n 'valueMode',\n 'filter',\n 'allowFoldNodeOnFilter',\n ]);\n store.setConfig(storeProps);\n };\n\n const updateExpanded = () => {\n const { expandParent } = props;\n if (!Array.isArray(tExpanded.value)) return;\n // 初始化展开状态\n // 校验是否自动展开父节点\n const expandedMap = new Map();\n tExpanded.value.forEach((val) => {\n expandedMap.set(val, true);\n if (expandParent) {\n const node = store.getNode(val);\n if (node) {\n node\n .getModel()\n .getParents()\n .forEach((tn: TypeTreeNodeModel) => {\n expandedMap.set(tn.value, true);\n });\n }\n }\n });\n const expandedArr = Array.from(expandedMap.keys());\n store.setExpanded(expandedArr);\n };\n\n let filterChanged = false;\n let prevExpanded: null | TypeTNodeValue[] = null;\n\n // store 的 update 方法触发后,可以拿到搜索命中节点的路径节点\n // 所以在 update 之后检查,如果之前 filter 有变更,则检查路径节点是否需要展开\n // 如果 filter 属性被清空,则重置为开启搜索之前的结果\n const expandFilterPath = () => {\n if (!props.allowFoldNodeOnFilter) return;\n if (!filterChanged) return;\n // 确保 filter 属性未变更时,不会重复检查展开状态\n filterChanged = false;\n\n if (props.filter) {\n if (!prevExpanded) {\n // 缓存之前的展开状态\n prevExpanded = store.getExpanded();\n }\n\n // 展开搜索命中节点的路径节点\n const pathValues: TypeTNodeValue[] = [];\n const allNodes: TypeTreeNode[] = store.getNodes();\n allNodes.forEach((node: TypeTreeNode) => {\n if (node.vmIsLocked) {\n pathValues.push(node.value);\n }\n });\n store.setExpanded(pathValues);\n } else if (prevExpanded) {\n // filter 属性置空,该还原之前的展开状态了\n store.replaceExpanded(prevExpanded);\n prevExpanded = null;\n }\n };\n\n // 这个方法监听 filter 属性,仅在 allowFoldNodeOnFilter 属性为 true 时生效\n // 仅在 filter 属性发生变更时开启检查开关,避免其他操作也触发展开状态的重置\n const checkFilterExpand = (newFilter: null | Function, previousFilter: null | Function) => {\n if (!props.allowFoldNodeOnFilter) return;\n filterChanged = newFilter !== previousFilter;\n };\n\n const handleLoad = (info: TypeEventState) => {\n const { node } = info;\n const evtCtx = {\n node: node.getModel(),\n };\n if (Array.isArray(tValue.value) && tValue.value.length > 0) {\n store.replaceChecked(tValue.value);\n }\n if (Array.isArray(tExpanded.value) && tExpanded.value.length > 0) {\n store.replaceExpanded(tExpanded.value);\n }\n if (Array.isArray(tActived.value) && tActived.value.length > 0) {\n store.replaceActived(tActived.value);\n }\n if (props?.onLoad) {\n props?.onLoad(evtCtx);\n }\n context.emit('load', evtCtx);\n };\n\n const rebuild = (list: TreeProps['data']) => {\n store.reload(list || []);\n store.refreshNodes();\n // 初始化选中状态\n if (Array.isArray(tValue.value)) {\n store.setChecked(tValue.value);\n }\n // 更新展开状态\n updateExpanded();\n // 初始化激活状态\n if (Array.isArray(tActived.value)) {\n store.setActived(tActived.value);\n }\n // 刷新节点状态\n store.refreshState();\n };\n\n function initStore() {\n // keys 属性比较特殊,不应该在实例化之后再次变更\n store.setConfig({\n keys,\n });\n updateStoreConfig();\n store.append(props.data || []);\n\n // 刷新节点,必须在配置选中之前执行\n // 这样选中态联动判断才能找到父节点\n store.refreshNodes();\n\n // 初始化选中状态\n if (Array.isArray(tValue.value)) {\n store.setChecked(tValue.value);\n }\n\n // 更新节点展开状态\n updateExpanded();\n\n // 初始化激活状态\n if (Array.isArray(tActived.value)) {\n store.setActived(tActived.value);\n }\n\n store.emitter.on('load', handleLoad);\n store.emitter.on('update', expandFilterPath);\n }\n\n // 初始化 store\n initStore();\n // 设置初始化状态\n state.setStore(store);\n // 配置属性监听\n watch(\n () => [...(tValue.value || [])],\n (nVal: TreeNodeValue[]) => {\n store.replaceChecked(nVal);\n },\n );\n watch(\n () => [...(tExpanded.value || [])],\n (nVal: TreeNodeValue[]) => {\n store.replaceExpanded(nVal);\n },\n );\n watch(\n () => [...(tActived.value || [])],\n (nVal: TreeNodeValue[]) => {\n store.replaceActived(nVal);\n },\n );\n\n watch(refProps.filter, (nVal, previousVal) => {\n checkFilterExpand(nVal, previousVal);\n });\n watch(refProps.keys, (keys) => {\n store.setConfig({\n keys,\n });\n });\n\n watch(refProps.expandAll, (nVal) => {\n if (nVal) {\n const valueList = store\n .getNodes()\n .filter((node) => Array.isArray(node.children) && node.children.length)\n .map((node) => node.value);\n store.setExpanded(valueList);\n } else {\n store.replaceExpanded(prevExpanded);\n prevExpanded = null;\n }\n });\n\n return {\n store,\n rebuild,\n checkFilterExpand,\n updateStoreConfig,\n updateExpanded,\n expandFilterPath,\n };\n}\n","import { TreeNode } from '../adapt';\nimport { TreeProps, TypeDragEventState, TypeTreeState, TypeDragHandle } from '../tree-types';\nimport { DragPosition } from './useDraggable';\nimport { emitEvent } from '../util';\n\nexport default function useDragHandle(state: TypeTreeState) {\n const { props, context, scope, store } = state;\n let dragNode: TreeNode = null;\n\n const handleDragStart = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n dragNode = node;\n\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-start', ctx);\n };\n\n const handleDragEnd = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n dragNode = node;\n\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-end', ctx);\n };\n\n const handleDragOver = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-over', ctx);\n };\n\n const handleDragLeave = (state: TypeDragEventState) => {\n const { dragEvent, node } = state;\n const ctx = {\n node: node.getModel(),\n e: dragEvent,\n };\n emitEvent>(props, context, 'drag-leave', ctx);\n };\n\n const handleDrop = (state: TypeDragEventState) => {\n const { dragEvent, node, dropPosition } = state;\n if (node.value === dragNode.value || node.getParents().some((_node) => _node.value === dragNode.value)) return;\n\n const ctx = {\n dropNode: node.getModel(),\n dragNode: dragNode.getModel(),\n dropPosition,\n e: dragEvent,\n };\n\n if (props.allowDrop?.(ctx) === false) return;\n\n const nodes = store.getNodes() as TreeNode[];\n nodes.some((_node) => {\n if (_node.value === node.value) {\n if (dropPosition === DragPosition.Inside) {\n dragNode.appendTo(store, _node);\n } else if (dropPosition === DragPosition.Before) {\n node.insertBefore(dragNode);\n } else {\n node.insertAfter(dragNode);\n }\n return true;\n }\n return false;\n });\n\n emitEvent>(props, context, 'drop', ctx);\n };\n\n const drag: TypeDragHandle = {\n handleDragStart,\n handleDragEnd,\n handleDragOver,\n handleDragLeave,\n handleDrop,\n };\n\n scope.drag = drag;\n\n return {\n drag,\n };\n}\n","import _TdTree from './tree';\nimport { withInstall } from './adapt';\n\nimport './style';\n\nexport const Tree = withInstall(_TdTree);\n\nexport * from './tree-types';\nexport default Tree;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdTreeSelectProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 宽度随内容自适应 */\n autoWidth: Boolean,\n /** 无边框模式 */\n borderless: Boolean,\n /** 是否允许清空 */\n clearable: Boolean,\n /** 多选情况下,用于设置折叠项内容,默认为 `+N`。如果需要悬浮就显示其他内容,可以使用 collapsedItems 自定义。\n `value` 表示当前存在的所有标签,`collapsedSelectedItems` 表示折叠的标签,`count` 表示折叠的数量,`onClose` 表示移除标签的事件回调 */\n collapsedItems: {\n type: Function as PropType,\n },\n /** 数据 */\n data: {\n type: Array as PropType,\n default: (): TdTreeSelectProps['data'] => [],\n },\n /** 是否禁用组件 */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /** 当下拉列表为空时显示的内容 */\n empty: {\n type: [String, Function] as PropType,\n default: '',\n },\n /** 过滤方法,用于对现有数据进行搜索过滤,判断是否过滤某一项数据 */\n filter: {\n type: Function as PropType,\n },\n /** 是否可搜索 */\n filterable: Boolean,\n /** 透传给 输入框 Input 组件的全部属性 */\n inputProps: {\n type: Object as PropType,\n },\n /** 输入框的值 */\n inputValue: {\n type: [String, Number] as PropType,\n default: undefined,\n },\n /** 输入框的值,非受控属性 */\n defaultInputValue: {\n type: [String, Number] as PropType,\n },\n /** 用来定义 `value / label / children / disabled` 在 `data` 数据中对应的字段别名,示例:`{ value: 'key', label 'name', children: 'list' }` */\n keys: {\n type: Object as PropType,\n },\n /** 是否正在加载数据 */\n loading: Boolean,\n /** 远程加载时显示的文字,支持自定义。如加上超链接 */\n loadingText: {\n type: [String, Function] as PropType,\n default: '',\n },\n /** 用于控制多选数量,值为 0 则不限制 */\n max: {\n type: Number,\n default: 0,\n },\n /** 最小折叠数量,用于多选情况下折叠选中项,超出该数值的选中项折叠。值为 0 则表示不折叠 */\n minCollapsedNum: {\n type: Number,\n default: 0,\n },\n /** 是否允许多选 */\n multiple: Boolean,\n /** 面板内的底部内容 */\n panelBottomContent: {\n type: [String, Function] as PropType,\n },\n /** 面板内的顶部内容 */\n panelTopContent: {\n type: [String, Function] as PropType,\n },\n /** 占位符 */\n placeholder: {\n type: String,\n default: undefined,\n },\n /** 透传给 popup 组件的全部属性 */\n popupProps: {\n type: Object as PropType,\n },\n /** 是否显示下拉框 */\n popupVisible: {\n type: Boolean,\n default: undefined,\n },\n /** 组件前置图标 */\n prefixIcon: {\n type: Function as PropType,\n },\n /** 只读状态,值为真会隐藏输入框,且无法打开下拉框 */\n readonly: {\n type: Boolean,\n default: undefined,\n },\n /** 透传 SelectInput 筛选器输入框组件的全部属性 */\n selectInputProps: {\n type: Object as PropType,\n },\n /** 尺寸 */\n size: {\n type: String as PropType,\n default: 'medium' as TdTreeSelectProps['size'],\n validator(val: TdTreeSelectProps['size']): boolean {\n if (!val) return true;\n return ['small', 'medium', 'large'].includes(val);\n },\n },\n /** 后置图标前的后置内容 */\n suffix: {\n type: [String, Function] as PropType,\n },\n /** 组件后置图标 */\n suffixIcon: {\n type: Function as PropType,\n },\n /** 【开发中】透传 Tag 标签组件全部属性 */\n tagProps: {\n type: Object as PropType,\n },\n /** 透传 Tree 组件的全部属性 */\n treeProps: {\n type: Object as PropType,\n },\n /** 选中值 */\n value: {\n type: [String, Number, Object, Array] as PropType,\n default: undefined as TdTreeSelectProps['value'],\n },\n modelValue: {\n type: [String, Number, Object, Array] as PropType,\n default: undefined as TdTreeSelectProps['value'],\n },\n /** 选中值,非受控属性 */\n defaultValue: {\n type: [String, Number, Object, Array] as PropType,\n },\n /** 自定义选中项呈现方式 */\n valueDisplay: {\n type: Function as PropType,\n },\n /** 用于控制选中值的类型。假设数据选项为:`[{ label: '姓名', value: 'name' }]`,value 表示值仅返回数据选项中的 value, object 表示值返回全部数据 */\n valueType: {\n type: String as PropType,\n default: 'value' as TdTreeSelectProps['valueType'],\n validator(val: TdTreeSelectProps['valueType']): boolean {\n if (!val) return true;\n return ['value', 'object'].includes(val);\n },\n },\n /** 输入框失去焦点时触发 */\n onBlur: Function as PropType,\n /** 节点选中状态变化时触发,`context.node` 表示当前变化的选项,`context. trigger` 表示触发变化的来源 */\n onChange: Function as PropType,\n /** 点击清除按钮时触发 */\n onClear: Function as PropType,\n /** 输入框获得焦点时触发 */\n onFocus: Function as PropType,\n /** 输入框值发生变化时触发,`context.trigger` 表示触发输入框值变化的来源:文本输入触发、清除按钮触发、失去焦点等 */\n onInputChange: Function as PropType,\n /** 下拉框显示或隐藏时触发 */\n onPopupVisibleChange: Function as PropType,\n /** 多选模式下,选中数据被移除时触发 */\n onRemove: Function as PropType,\n /** 输入值变化时,触发搜索事件。主要用于远程搜索新数据 */\n onSearch: Function as PropType,\n};\n","import { defineComponent, ref, computed, watch, onMounted, toRefs } from 'vue';\nimport { isArray } from 'lodash-es';\nimport { isEmpty } from 'lodash-es';\nimport { isBoolean } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { isNil } from 'lodash-es';\nimport { findParentValues } from '@tdesign/common-js/tree-select/utils';\n\nimport Tree, { TreeProps, TreeNodeModel, TreeNodeValue } from '../tree';\nimport SelectInput, { TdSelectInputProps } from '../select-input';\nimport FakeArrow from '../common-components/fake-arrow';\nimport { PopupVisibleChangeContext } from '../popup';\n\nimport { INodeOptions } from './interface';\nimport { TreeSelectValue, TdTreeSelectProps, TreeSelectValueChangeTrigger } from './type';\nimport { TreeOptionData } from '../common';\nimport props from './props';\n\n// hooks\nimport { usePrefixClass, useConfig } from '../hooks/useConfig';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport { useTNodeJSX, useTNodeDefault } from '../hooks/tnode';\nimport useVModel from '../hooks/useVModel';\nimport useDefaultValue from '../hooks/useDefaultValue';\n\nexport default defineComponent({\n name: 'TTreeSelect',\n props,\n setup(props: TdTreeSelectProps, { slots, expose }) {\n const renderTNodeJSX = useTNodeJSX();\n const renderDefaultTNode = useTNodeDefault();\n const classPrefix = usePrefixClass();\n const { globalConfig } = useConfig('treeSelect');\n const formDisabled = useDisabled();\n const isReadonly = useReadonly();\n\n // ref\n const treeRef = ref(null);\n\n // data\n const actived = ref([]);\n const expanded = ref([]);\n const nodeInfo = ref(null);\n const treeKey = ref(0);\n\n // model\n const { value, modelValue, popupVisible, inputValue } = toRefs(props);\n const [treeSelectValue, setTreeSelectValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const [innerVisible, setInnerVisible] = useDefaultValue(\n popupVisible,\n false,\n props.onPopupVisibleChange,\n 'popupVisible',\n );\n const [innerInputValue, setInnerInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n\n /**\n * 设置树的所有父节点展开\n */\n const setTreeParentsExpanded = () => {\n const getParents = (value: TreeSelectValue) =>\n findParentValues(props.data, value, realValue.value, realChildren.value);\n\n let treeParents: TreeSelectValue[] = [];\n if (treeSelectValue.value) {\n if (Array.isArray(treeSelectValue.value) && props.multiple) {\n treeParents = treeSelectValue.value.flatMap(getParents);\n } else if (!Array.isArray(treeSelectValue.value) && !props.multiple) {\n treeParents = getParents(treeSelectValue.value);\n }\n }\n expanded.value = Array.from(new Set([...expanded.value, ...treeParents]));\n };\n\n // watch\n watch(treeSelectValue, async () => {\n await changeNodeInfo();\n if (!props.multiple) {\n actived.value = nodeInfo.value ? [nodeInfo.value.value] : [];\n }\n setTreeParentsExpanded();\n });\n watch(\n () => props.data,\n async () => {\n await changeNodeInfo();\n treeRerender();\n },\n {\n deep: true,\n },\n );\n\n // computed\n /** filterByText keep pace with innerInputValue */\n const filterByText = computed(() => {\n const value = innerInputValue.value || '';\n if (value === '') {\n return null;\n }\n return (node: TreeNodeModel) => {\n if (isFunction(props.filter)) {\n const filter: boolean | Promise = props.filter(String(value), node);\n if (isBoolean(filter)) {\n return filter;\n }\n }\n return node.data[realLabel.value].indexOf(value) >= 0;\n };\n });\n const tDisabled = computed(() => {\n return formDisabled.value || props.disabled;\n });\n\n const inputPlaceholder = computed(\n () => (innerVisible.value && nodeInfo.value?.label) || props.placeholder || globalConfig.value.placeholder,\n );\n\n const popupClass = computed(() => {\n return [`${classPrefix.value}-select__dropdown`, 'narrow-scrollbar'];\n });\n\n const dropdownInnerSize = computed(() => {\n return {\n small: 's',\n medium: 'm',\n large: 'l',\n }[props.size];\n });\n\n const isObjectValue = computed(() => props.valueType === 'object');\n\n const checked = computed((): Array => {\n if (props.multiple) {\n if (isObjectValue.value) {\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions).value)\n : [];\n }\n return isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => item as TreeNodeValue)\n : [];\n }\n return [];\n });\n\n const multiLimitDisabled = computed(() => {\n return (\n props.multiple &&\n !!props.max &&\n isArray(treeSelectValue.value) &&\n props.max <= (treeSelectValue.value as Array).length\n );\n });\n\n const realLabel = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.label || 'label';\n }\n return props.keys?.label || 'label';\n });\n\n const realValue = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.value || 'value';\n }\n return props.keys?.value || 'value';\n });\n\n const realChildren = computed(() => {\n if (!isEmpty(props.treeProps) && !isEmpty((props.treeProps as TreeProps).keys)) {\n return (props.treeProps as TreeProps).keys.children || 'children';\n }\n return props.keys?.children || 'children';\n });\n\n onMounted(async () => {\n setTreeParentsExpanded();\n if (!treeSelectValue.value && props.defaultValue) {\n change(props.defaultValue, null, 'uncheck');\n }\n if (isObjectValue.value) {\n actived.value = isArray(treeSelectValue.value)\n ? (treeSelectValue.value as Array).map((item) => (item as INodeOptions).value)\n : [(treeSelectValue.value as INodeOptions).value];\n } else {\n (actived.value as TreeSelectValue) = isArray(treeSelectValue.value)\n ? treeSelectValue.value\n : [treeSelectValue.value];\n }\n changeNodeInfo();\n });\n\n const change = (\n valueParam: TreeSelectValue,\n node: TreeNodeModel,\n trigger: TreeSelectValueChangeTrigger,\n ) => {\n setTreeSelectValue(valueParam, { node, trigger });\n changeNodeInfo();\n };\n\n const clear = (content: { e: MouseEvent }) => {\n const defaultValue: TreeSelectValue = props.multiple ? [] : '';\n actived.value = [];\n change(defaultValue, null, 'clear');\n props.onClear?.({ e: content.e });\n };\n\n const treeNodeChange = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n current = valueParam.map(getNodeItem);\n }\n change(current, context.node, 'check');\n };\n\n const treeNodeActive = (\n valueParam: Array,\n context: { node: TreeNodeModel; e?: MouseEvent },\n ) => {\n if (!props.multiple) {\n setInnerVisible(false, context);\n }\n // 多选模式屏蔽 Active 事件\n if (props.multiple) {\n return;\n }\n // 单选模式重复选择不清空\n if (treeSelectValue.value === context.node.data[realValue.value]) {\n return;\n }\n let current: TreeSelectValue = valueParam;\n if (isObjectValue.value) {\n const nodeValue = isEmpty(valueParam) ? '' : valueParam[0];\n current = getNodeItem(nodeValue);\n } else {\n current = isEmpty(valueParam) ? '' : valueParam[0];\n }\n change(current, context.node, 'check');\n actived.value = valueParam;\n };\n\n const treeNodeExpand = (valueParam: Array) => {\n expanded.value = valueParam;\n };\n\n const treeNodeLoad = () => {\n changeNodeInfo();\n };\n\n const inputChange = (value: string): boolean => {\n // 未打开状态不处理输入框输入\n if (!innerVisible.value) {\n props.onSearch?.(String(value));\n return;\n }\n setInnerInputValue(value);\n props.onSearch?.(String(value));\n };\n\n const tagChange: TdSelectInputProps['onTagChange'] = (value, context) => {\n const { trigger, index } = context;\n if (['tag-remove', 'backspace'].includes(trigger)) {\n isArray(treeSelectValue.value) && (treeSelectValue.value as Array).splice(index, 1);\n }\n props.onRemove?.({ value, data: null, e: context && (context.e as MouseEvent) });\n change(treeSelectValue.value, null, trigger as 'tag-remove' | 'backspace');\n };\n\n const handlePopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n setInnerVisible(visible, context);\n // 在通过点击选择器打开弹窗时 清空此前的输入内容 避免在关闭时就清空引起的闪烁问题\n if (visible && context.trigger === 'trigger-element-click') setInnerInputValue('');\n };\n const changeNodeInfo = async () => {\n if (!props.multiple) {\n if (treeSelectValue.value || treeSelectValue.value === 0) {\n nodeInfo.value = getSingleNodeInfo();\n } else {\n nodeInfo.value = '';\n }\n } else if (props.multiple) {\n if (isArray(treeSelectValue.value)) {\n nodeInfo.value = getMultipleNodeInfo();\n } else {\n nodeInfo.value = [];\n }\n } else {\n nodeInfo.value = null;\n }\n };\n\n const getSingleNodeInfo = () => {\n const nodeValue = isObjectValue.value ? (treeSelectValue.value as INodeOptions).value : treeSelectValue.value;\n return getNodeItem(nodeValue);\n };\n\n const getMultipleNodeInfo = () => {\n return (treeSelectValue.value as Array).map((value) => {\n const nodeValue = isObjectValue.value ? (value as INodeOptions).value : value;\n return getNodeItem(nodeValue);\n });\n };\n\n const getNodeItem = (targetValue: TreeSelectValue) => {\n if (treeRef.value) {\n const node = treeRef.value.getItem(targetValue);\n if (node) {\n return {\n ...node.data,\n label: node.data[realLabel.value],\n value: node.data[realValue.value],\n };\n }\n }\n const node = getTreeNode(props.data, targetValue);\n if (node) {\n return node;\n }\n return {\n label: targetValue,\n value: targetValue,\n };\n };\n\n const getTreeNode = (data: Array, targetValue: TreeSelectValue): TreeSelectValue | null => {\n for (let i = 0, len = data.length; i < len; i++) {\n const item = data[i];\n if (item[realValue.value] === targetValue) {\n return {\n ...item,\n label: item[realLabel.value],\n value: item[realValue.value],\n };\n }\n if (item?.[realChildren.value]) {\n const result = getTreeNode(item?.[realChildren.value], targetValue);\n if (!isNil(result)) {\n return result;\n }\n }\n }\n return null;\n };\n\n const treeRerender = () => {\n treeKey.value += 1;\n };\n\n const renderTree = () => (\n \n renderDefaultTNode('empty', {\n defaultNode:
    {globalConfig.value.empty}
    ,\n }),\n }}\n {...(props.treeProps as TdTreeSelectProps['treeProps'])}\n />\n );\n\n const renderSuffixIcon = () => (\n \n );\n\n expose({\n treeRef,\n });\n\n return () => (\n renderTNodeJSX('prefixIcon')}\n suffix={props.suffix}\n suffixIcon={() => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n return renderSuffixIcon();\n }}\n onClear={clear}\n onBlur={(_: any, context) => {\n props.onBlur?.({ value: treeSelectValue.value, e: context.e as FocusEvent });\n }}\n onFocus={(_: any, context: { e: FocusEvent }) => {\n props.onFocus?.({ value: treeSelectValue.value, e: context.e });\n }}\n valueDisplay={() =>\n renderTNodeJSX('valueDisplay', {\n params: props.multiple\n ? {\n value: nodeInfo.value,\n onClose: (index: number) => {\n const value = nodeInfo.value.map((node: TreeOptionData) => node.value);\n tagChange(value, {\n trigger: 'tag-remove',\n index,\n item: value[index],\n });\n },\n }\n : {\n value: nodeInfo.value || { [realLabel.value]: '', [realValue.value]: undefined },\n },\n })\n }\n v-slots={{\n suffix: slots.suffix,\n panel: () => (\n \n {renderTNodeJSX('panelTopContent')}\n \n {renderDefaultTNode('loadingText', {\n defaultNode:
    {globalConfig.value.loadingText}
    ,\n })}\n

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

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

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

    {renderTNodeJSX('description')}

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

    {propsTitleContent}

    }\n {propsDescriptionContent &&

    {propsDescriptionContent}

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

    \n {globalConfig.value.columnConfigDescriptionText}\n

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

    {content.value}

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

    {content.value}

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

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

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

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

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

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

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

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

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

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

    \n )}\n
  • \n );\n };\n\n const renderStatus = (file: UploadFile) => {\n const { iconMap, textMap } = getStatusMap();\n return (\n
    \n {iconMap[file.status]}\n \n {file.response?.error ? file.response?.error || textMap[file.status] : textMap[file.status]}\n {props.showUploadProgress && file.status === 'progress' ? ` ${file.percent || 0}%` : ''}\n \n
    \n );\n };\n\n const renderNormalActionCol = (file: UploadFile, index: number) => (\n \n props.onRemove({ e, index, file })}\n >\n \n );\n\n // batchUpload action col\n const renderBatchActionCol = (index: number) =>\n // 第一行数据才需要合并单元格\n index === 0 ? (\n \n props.onRemove({ e, index: -1, file: undefined })}\n >\n \n ) : null;\n\n const getFileThumbnailIcon = (fileType: string) => {\n if (FILE_PDF_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_EXCEL_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_WORD_REGEXP.test(fileType)) {\n return ;\n }\n if (FILE_PPT_REGEXP.test(fileType)) {\n return ;\n }\n if (VIDEO_REGEXP.test(fileType)) {\n return ;\n }\n return ;\n };\n\n const renderFileThumbnail = (file: UploadFile) => {\n if (!file || (!file.raw && file.url)) return null;\n const fileType = file.raw.type;\n const className = `${uploadPrefix.value}__file-thumbnail`;\n if (IMAGE_REGEXP.test(fileType)) {\n return (\n {\n e.preventDefault();\n currentPreviewFile.value = [file];\n previewIndex.value = 0;\n props.onPreview?.({ file, index: 0, e });\n }}\n />\n );\n }\n return
    {getFileThumbnailIcon(fileType)}
    ;\n };\n\n const renderFileList = () => {\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n cancelUpload: props.cancelUpload,\n uploadFiles: props.uploadFiles,\n onPreview: props.onPreview,\n onRemove: props.onRemove,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n dragEvents: innerDragEvents.value,\n },\n });\n if (customList || props.fileListDisplay) return customList;\n return (\n \n \n \n \n \n \n {disabled.value ? null : }\n \n \n \n {!displayFiles.value.length && (\n \n \n \n )}\n {displayFiles.value.map((file, index) => {\n // 合并操作出现条件为:当前为合并上传模式且列表内没有待上传文件\n const showBatchUploadAction = props.isBatchUpload;\n const deleteNode =\n showBatchUploadAction && displayFiles.value.every((item) => item.status === 'success' || !item.status)\n ? renderBatchActionCol(index)\n : renderNormalActionCol(file, index);\n const fileName = props.abridgeName?.length ? abridgeName(file.name, ...props.abridgeName) : file.name;\n const thumbnailNode = props.showThumbnail ? (\n
    \n {renderFileThumbnail(file)}\n {fileName}\n
    \n ) : (\n fileName\n );\n const fileNameNode = file.url ? (\n // 此次需要设置disabled为false 否则链接会跟随表单不可点击\n \n {thumbnailNode}\n \n ) : (\n thumbnailNode\n );\n return (\n \n \n \n \n {disabled.value ? null : deleteNode}\n \n );\n })}\n \n
    {locale.value.file?.fileNameText}{locale.value.file?.fileSizeText}{locale.value.file?.fileStatusText}{locale.value.file?.fileOperationText}
    {renderEmpty()}
    \n {fileNameNode}\n {returnFileSize(file.size)}{renderStatus(file)}
    \n );\n };\n\n const renderImageList = () => {\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n cancelUpload: props.cancelUpload,\n uploadFiles: props.uploadFiles,\n onRemove: props.onRemove,\n onPreview: props.onPreview,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n dragEvents: innerDragEvents.value,\n },\n });\n if (customList || props.fileListDisplay) return customList;\n return (\n
      \n {props.displayFiles.map((file, index) => renderImgItem(file, index))}\n
    \n );\n };\n\n return () => {\n const cardClassName = `${uploadPrefix.value}__flow-card-area`;\n const cancelUploadDisabled = disabled.value || !uploading.value;\n const hasCancelUploadTNode = slots.uploadButton || isFunction(props.uploadButton);\n const uploadButtonDisabled = Boolean(disabled.value || uploading.value || !displayFiles.value.length);\n const hasUploadButtonTNode = slots.cancelUploadButton || isFunction(props.cancelUploadButton);\n return (\n
    \n
    \n {slots.default?.()}\n {props.placeholder && (\n \n {props.placeholder}\n \n )}\n
    \n\n {props.theme === 'image-flow' && (\n
    \n {displayFiles.value.length ? renderImageList() : renderEmpty()}\n
    \n )}\n\n {props.theme === 'file-flow' &&\n (displayFiles.value.length ? (\n renderFileList()\n ) : (\n
    \n {renderEmpty()}\n
    \n ))}\n\n {!props.autoUpload && (props.uploadButton !== null || props.cancelUploadButton !== null) && (\n
    \n {props.cancelUploadButton !== null &&\n (hasCancelUploadTNode ? (\n renderTNodeJSX('cancelUploadButton', {\n params: {\n disabled: cancelUploadDisabled,\n cancelUploadText: locale.value?.cancelUploadText,\n cancelUpload: props.cancelUpload,\n },\n })\n ) : (\n props.cancelUpload?.({ e })}\n {...(isObject(props.cancelUploadButton) ? props.cancelUploadButton : {})}\n >\n ))}\n {props.uploadButton !== null &&\n (hasUploadButtonTNode ? (\n renderTNodeJSX('uploadButton', {\n params: {\n disabled: uploadButtonDisabled,\n uploading: uploading.value,\n uploadText: uploadText.value,\n uploadFiles: props.uploadFiles,\n },\n })\n ) : (\n props.uploadFiles?.()}\n {...(isObject(props.uploadButton) ? props.uploadButton : {})}\n >\n ))}\n
    \n )}\n\n t.url || t.raw)}\n visible={!!currentPreviewFile.value.length}\n onClose={() => {\n currentPreviewFile.value = [];\n }}\n index={previewIndex.value}\n onIndexChange={(val) => (previewIndex.value = val)}\n {...(props.imageViewerProps as ImageViewerProps)}\n >\n
    \n );\n };\n },\n});\n","import { defineComponent, PropType, toRefs } from 'vue';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport { useContent } from '../../hooks/tnode';\nimport { TdUploadProps } from '../type';\n\nexport interface CustomFileProps extends CommonDisplayFileProps {\n dragEvents: UploadDragEvents;\n draggable?: boolean;\n // 拖拽区域\n dragContent?: TdUploadProps['dragContent'];\n trigger?: TdUploadProps['trigger'];\n triggerUpload?: (e: MouseEvent) => void;\n childrenNode?: any;\n}\n\nexport default defineComponent({\n name: 'UploadCustomFile',\n props: {\n ...commonProps,\n dragEvents: Object as PropType,\n draggable: Boolean,\n // 拖拽区域\n dragContent: Function as PropType,\n trigger: Function as PropType,\n triggerUpload: Function as PropType,\n childrenNode: [String, Function] as PropType,\n },\n setup(props, { slots }) {\n const { classPrefix, displayFiles, accept } = toRefs(props);\n const drag = useDrag(props.dragEvents, accept);\n const { dragActive } = drag;\n\n const renderContent = useContent();\n\n const renderDragContent = () => {\n const params = { dragActive: dragActive.value || false, files: displayFiles.value };\n return (\n \n
    \n {renderContent('dragContent', 'trigger', { params }) || props.childrenNode?.(params)}\n
    \n \n );\n };\n\n return () => (\n <>\n {props.draggable ? (\n renderDragContent()\n ) : (\n
    \n {props.childrenNode?.({ files: displayFiles.value }) || slots.default?.()}\n
    \n )}\n \n );\n },\n});\n","import { isFunction, isNumber } from 'lodash-es';\n/* eslint-disable no-param-reassign */\nimport { getCurrentDate, isOverSizeLimit } from './utils';\nimport xhr from './xhr';\nimport log from '../log/log';\nimport {\n UploadFile,\n SizeLimitObj,\n FileChangeParams,\n FileChangeReturn,\n RequestMethodResponse,\n HandleUploadParams,\n SuccessContext,\n handleSuccessParams,\n UploadTriggerUploadText,\n ErrorContext,\n ResponseType,\n} from './types';\n\nexport interface BeforeUploadExtra {\n /** 图片文件大小限制 */\n sizeLimit?: number | SizeLimitObj;\n /** 上传文件之前的钩子,参数为上传的文件,返回值决定是否上传 */\n beforeUpload?: (file: UploadFile) => boolean | Promise;\n}\n\nexport type BeforeUploadPromiseList = [Promise, undefined | Promise]\n\nexport function handleBeforeUpload(\n file: UploadFile, params: BeforeUploadExtra,\n): Promise<[SizeLimitObj, boolean]> {\n const { sizeLimit, beforeUpload } = params;\n // 文件大小校验\n const sizePromise = new Promise((resolve) => {\n let result: SizeLimitObj = null;\n if (sizeLimit) {\n const sizeLimitObj: SizeLimitObj = isNumber(sizeLimit)\n ? { size: sizeLimit, unit: 'KB' }\n : sizeLimit;\n const limit = isOverSizeLimit(file.size, sizeLimitObj.size, sizeLimitObj.unit);\n if (limit) {\n result = sizeLimitObj;\n }\n }\n resolve(result);\n });\n\n // 自定义校验\n const promiseList: BeforeUploadPromiseList = [sizePromise, undefined];\n if (isFunction(beforeUpload)) {\n const r = beforeUpload(file);\n const p = r instanceof Promise ? r : (new Promise((resolve) => resolve(r)));\n promiseList[1] = p;\n }\n\n // 同时进行文件大小校验和自定义校验函数\n return new Promise((resolve) => {\n Promise.all(promiseList).then((r) => {\n resolve(r);\n });\n });\n}\n\nexport interface OnErrorParams extends ErrorContext {\n formatResponse?: HandleUploadParams['formatResponse'];\n}\n\nexport function handleError(options: OnErrorParams) {\n const { event, files, response, XMLHttpRequest, formatResponse } = options;\n let res = response;\n if (isFunction(formatResponse)) {\n res = formatResponse(response, { file: files[0], currentFiles: files });\n }\n files.forEach((file) => {\n file.status = 'fail';\n file.response = res;\n });\n return { response: res, event, files, XMLHttpRequest };\n}\n\nexport function handleSuccess(params: handleSuccessParams) {\n const { event, files, response, XMLHttpRequest } = params;\n if (files?.length <= 0) {\n log.error('Upload', 'Empty File in Success Callback');\n }\n files.forEach((file) => {\n file.percent = 100;\n file.status = 'success';\n delete file.response?.error;\n });\n const res = response;\n files[0].url = res.url || files[0].url;\n return { response: res, event, files, XMLHttpRequest };\n}\n\nexport type UploadRequestReturn = {\n status?: 'fail' | 'success';\n /** 上传失败的文件,需等待继续上传 */\n failedFiles?: UploadFile[];\n data?: SuccessContext;\n /** 批量文件上传,一个文件一个请求的场景下,响应结果的列表 */\n list?: UploadRequestReturn[];\n}\n\nexport function handleRequestMethodResponse(res: RequestMethodResponse) {\n if (!res) {\n log.error('Upload', '`requestMethodResponse` is required.');\n return false;\n }\n if (!res.status) {\n log.error('Upload', '`requestMethodResponse.status` is missing, which value only can be `success` or `fail`');\n return false;\n }\n if (!['success', 'fail'].includes(res.status)) {\n log.error('Upload', '`requestMethodResponse.status` must be `success` or `fail`, examples `{ status: \\'success\\', response: { url: \\'\\' } }`');\n return false;\n }\n if (res.status === 'success' && (!res.response || (!res.response.url && !res.response.files))) {\n log.warn('Upload', '`requestMethodResponse.response.url` or `requestMethodResponse.response.files` is required if `status` is `success`');\n }\n return true;\n}\n\n/**\n * 一次上传请求的返回结果\n */\nexport function uploadOneRequest(params: HandleUploadParams): Promise {\n const { action, toUploadFiles, requestMethod } = params;\n return new Promise((resolve) => {\n if (!action && !requestMethod) {\n log.error('Upload', 'one of action and requestMethod must be exist.');\n resolve({});\n return;\n }\n if (!toUploadFiles || !toUploadFiles.length) {\n log.warn('Upload', 'No files need to be uploaded');\n resolve({});\n return;\n }\n toUploadFiles.forEach((file) => {\n file.status = 'progress';\n });\n // 自定义上传方法\n if (requestMethod) {\n requestMethod(params.multiple ? toUploadFiles : toUploadFiles[0]).then((res) => {\n if (!handleRequestMethodResponse(res)) {\n resolve({});\n return;\n }\n let response = (res.response || {}) as ResponseType;\n if (isFunction(params.formatResponse)) {\n response = params.formatResponse(response, { file: toUploadFiles[0], currentFiles: toUploadFiles });\n }\n if (res.status === 'fail') {\n response.error = res.error || response.error;\n }\n let resultFiles: UploadFile[] = [];\n if (res.status === 'success' && response.files) {\n // 一个请求上传并返回多个文件\n resultFiles = response.files.map((file: UploadFile) => {\n const fileInfo = toUploadFiles.find((toFile) => (\n (file.name && toFile.name === file.name) || (file.raw && toFile.raw === file.raw)\n ));\n return {\n ...fileInfo,\n ...file,\n status: res.status,\n response,\n };\n });\n } else {\n // 一个请求上传并返回一个文件\n toUploadFiles.forEach((file) => {\n file.status = res.status;\n file.response = response;\n file.url = response.url;\n file.percent = res.status === 'success' ? 100 : 0;\n // 如果上传请求返回结果没有上传日期,则使用电脑当前日期显示\n file.uploadTime = response?.uploadTime || getCurrentDate();\n });\n resultFiles = toUploadFiles;\n }\n const result = {\n response,\n file: resultFiles[0],\n files: resultFiles,\n };\n if (res.status === 'success') {\n params.onResponseSuccess?.(result);\n } else if (res.status === 'fail') {\n params.onResponseError?.(result);\n }\n resolve({\n status: res.status,\n data: result,\n });\n });\n } else {\n const xhrReq = xhr({\n action: params.action,\n files: params.toUploadFiles,\n useMockProgress: params.useMockProgress,\n mockProgressDuration: params.mockProgressDuration,\n onError: (p: ErrorContext) => {\n const r = handleError({ ...p, formatResponse: params.formatResponse });\n params.onResponseError?.(r);\n resolve({ status: 'fail', data: r });\n },\n onProgress: params.onResponseProgress,\n onSuccess: (p: SuccessContext) => {\n const { formatResponse } = params;\n let res = p.response;\n if (isFunction(formatResponse)) {\n res = formatResponse(p.response, {\n file: p.file,\n currentFiles: p.files,\n });\n }\n if (res.error) {\n const r = handleError({ ...p, response: res });\n params.onResponseError?.(r);\n resolve({ status: 'fail', data: r });\n } else {\n p.file.response = res;\n p.files[0].response = res;\n const r = handleSuccess({ ...p, response: res });\n params.onResponseSuccess?.(r);\n resolve({ status: 'success', data: r });\n }\n },\n formatRequest: params.formatRequest,\n data: params.data,\n name: params.name,\n headers: params.headers,\n withCredentials: params.withCredentials,\n method: params.method,\n });\n params.setXhrObject?.({\n files: params.toUploadFiles,\n xhrReq,\n });\n }\n });\n}\n\nfunction updateUploadedFiles(uploadFiles: UploadFile[], resultFiles: UploadFile[]) {\n const existFiles = uploadFiles.filter((t) => t.url);\n const newFiles = existFiles;\n for (let i = 0, len = resultFiles.length; i < len; i++) {\n const file = resultFiles[i];\n const index = uploadFiles.findIndex((item) => (\n (item.raw && item.raw === file.raw) || (item.name && item.name === file.name)\n ));\n const tmpFile = index >= 0 ? { ...uploadFiles[index], ...file } : file;\n newFiles.push(tmpFile);\n }\n return newFiles;\n}\n\n/**\n * 可能单个文件上传,也可能批量文件一次性上传\n * 返回上传成功或上传失败的文件列表\n */\nexport function upload(params: HandleUploadParams):\nPromise {\n const { uploadAllFilesInOneRequest, toUploadFiles, uploadedFiles, isBatchUpload } = params;\n // 一批文件上传,部分文件失败,重新上传失败的文件\n const thisUploadFiles = toUploadFiles.filter((t) => (\n !t.response || (t.response && !t.response.error)\n ));\n return new Promise((resolve) => {\n // 所有文件一次性上传\n if (uploadAllFilesInOneRequest || !params.multiple) {\n uploadOneRequest(params).then((r) => {\n if (r.status === 'success') {\n r.data.files = isBatchUpload || !params.multiple\n ? r.data.files\n : updateUploadedFiles(uploadedFiles, r.data.files);\n }\n const failedFiles = r.status === 'fail' ? r.data.files : [];\n resolve({ ...r, failedFiles });\n });\n return;\n }\n // 一个文件一个文件上传\n const list = thisUploadFiles.map((file) => (\n uploadOneRequest({ ...params, toUploadFiles: [file] })\n ));\n Promise.all(list).then((arr) => {\n const files: UploadFile[] = [];\n const failedFiles: UploadFile[] = [];\n arr.forEach((one) => {\n if (one.status === 'success') {\n files.push(one.data.files[0]);\n } else if (one.status === 'fail') {\n failedFiles.push(one.data.files[0]);\n }\n });\n const tFiles = params.autoUpload\n ? uploadedFiles.concat(files)\n : uploadedFiles;\n const newFiles = isBatchUpload || !params.multiple ? files : tFiles;\n resolve({\n status: files.length ? 'success' : 'fail',\n data: {\n files: newFiles,\n },\n // 上传失败的文件,需等待继续上传\n failedFiles,\n list: arr,\n });\n });\n });\n}\n\nexport function formatToUploadFile(\n files: File[],\n format: FileChangeParams['format'],\n status: UploadFile['status'] = undefined,\n percent = 0,\n) {\n return files.map((fileRaw: File) => {\n let file: UploadFile = fileRaw;\n if (isFunction(format)) {\n file = format(fileRaw);\n }\n const uploadFile: UploadFile = {\n raw: fileRaw,\n lastModified: fileRaw.lastModified,\n name: fileRaw.name,\n size: fileRaw.size,\n type: fileRaw.type,\n percent,\n status,\n ...file,\n };\n return uploadFile;\n });\n}\n\nexport function validateFile(\n params: FileChangeParams\n): Promise {\n const { files, uploadValue, max, allowUploadDuplicateFile } = params;\n return new Promise((resolve) => {\n // 是否允许相同的文件名存在\n let tmpFiles = files.filter((file) => {\n const sameNameFile = uploadValue.find((t) => t.name === file.name);\n return allowUploadDuplicateFile || !sameNameFile;\n });\n\n let hasSameNameFile = false;\n if (tmpFiles.length < files.length) {\n hasSameNameFile = true;\n }\n if (!tmpFiles.length) {\n const tFiles = formatToUploadFile(files, params.format, params.autoUpload ? 'progress' : 'waiting');\n resolve({ hasSameNameFile, file: tFiles?.[0], files: tFiles, validateResult: { type: 'FILTER_FILE_SAME_NAME' } });\n return;\n }\n // 上传文件数量限制\n let lengthOverLimit = false;\n if (max && tmpFiles.length && !params.isBatchUpload) {\n const tmpFilesLenToBeAdded = tmpFiles.length;\n tmpFiles = tmpFiles.slice(0, max - uploadValue.length);\n if (tmpFilesLenToBeAdded + uploadValue.length > max) {\n lengthOverLimit = true;\n }\n }\n\n // 格式化文件对象\n const formattedFiles = formatToUploadFile(tmpFiles, params.format, params.autoUpload ? 'progress' : 'waiting');\n\n // 全量文件,一波校验,整体上传 或 终止上传\n let allFileValidatePromise;\n if (params.beforeAllFilesUpload) {\n const r = params.beforeAllFilesUpload?.(formattedFiles);\n allFileValidatePromise = r instanceof Promise ? r : new Promise((resolve) => resolve(r));\n }\n\n // 单文件合法性校验,一个文件校验不通过其他文件可继续上传\n const promiseList = formattedFiles.map((file: UploadFile) => new Promise((resolve) => {\n handleBeforeUpload(\n file,\n { beforeUpload: params.beforeUpload, sizeLimit: params.sizeLimit },\n ).then(([sizeResult, customResult]) => {\n if (sizeResult) {\n resolve({ file, validateResult: { type: 'FILE_OVER_SIZE_LIMIT', extra: sizeResult } });\n } else if (customResult === false) {\n resolve({ file, validateResult: { type: 'CUSTOM_BEFORE_UPLOAD' } });\n }\n resolve({ file });\n });\n }));\n Promise.all([allFileValidatePromise].concat(promiseList)).then((results) => {\n const [allFilesResult, ...others] = results;\n // 如果 beforeAllFilesUpload 校验未通过\n if (allFilesResult === false) {\n resolve({\n lengthOverLimit,\n hasSameNameFile,\n validateResult: { type: 'BEFORE_ALL_FILES_UPLOAD' },\n files: formattedFiles,\n });\n } else {\n resolve({\n lengthOverLimit,\n hasSameNameFile,\n fileValidateList: others,\n files: formattedFiles,\n });\n }\n });\n });\n}\n\nexport function getFilesAndErrors(fileValidateList: FileChangeReturn[], getError: (p: {[key: string]: any }) => string) {\n const sizeLimitErrors: FileChangeReturn[] = [];\n const beforeUploadErrorFiles: UploadFile[] = [];\n const toFiles: UploadFile[] = [];\n fileValidateList.forEach((oneFile) => {\n if (oneFile.validateResult?.type === 'CUSTOM_BEFORE_UPLOAD') {\n beforeUploadErrorFiles.push(oneFile.file);\n return;\n }\n if (oneFile.validateResult?.type === 'FILE_OVER_SIZE_LIMIT') {\n if (!oneFile.file.response) {\n oneFile.file.response = {};\n }\n oneFile.file.response.error = oneFile.file.response.error\n || getError(oneFile.validateResult.extra);\n sizeLimitErrors.push(oneFile);\n return;\n }\n toFiles.push(oneFile.file);\n });\n\n return { sizeLimitErrors, beforeUploadErrorFiles, toFiles };\n}\n\n/**\n * 获取文件上传触发元素文本 在全局配置中的字段\n */\nexport function getTriggerTextField(p: {\n status: 'success' | 'fail' | 'progress' | 'waiting',\n multiple: boolean,\n autoUpload: boolean;\n isBatchUpload: boolean;\n}): keyof UploadTriggerUploadText {\n if (p.isBatchUpload && p.status) return 'reupload';\n if (p.status === 'fail') return 'reupload';\n if (p.status === 'progress') return 'uploading';\n if (p.status === 'success' || (!p.autoUpload && p.status === 'waiting')) {\n return p.multiple ? 'continueUpload' : 'reupload';\n }\n return 'fileInput';\n}\n\nexport interface GetDisplayFilesParams {\n multiple: boolean;\n autoUpload: boolean;\n isBatchUpload: boolean;\n uploadValue: UploadFile[];\n toUploadFiles: UploadFile[];\n}\n\n/**\n * 获取文件列表显示\n */\nexport function getDisplayFiles(params: GetDisplayFilesParams) {\n const { multiple, uploadValue, toUploadFiles, autoUpload } = params;\n const waitingUploadFiles = autoUpload\n ? toUploadFiles\n : toUploadFiles.filter((file) => file.status !== 'success');\n if (multiple && !params.isBatchUpload) {\n if (!autoUpload) return uploadValue;\n return (waitingUploadFiles.length ? uploadValue.concat(waitingUploadFiles) : uploadValue) || [];\n }\n return (waitingUploadFiles.length ? waitingUploadFiles : uploadValue) || [];\n}\n","import { isFunction } from 'lodash-es';\n/* eslint-disable no-param-reassign */\nimport log from '../log/log';\nimport { UploadFile, XhrOptions } from './types';\nimport { getCurrentDate } from './utils';\n\nexport default function xhr({\n method = 'POST',\n action,\n withCredentials = false,\n headers = {},\n data = {},\n file,\n files = [],\n name = 'file',\n useMockProgress = true,\n mockProgressDuration = 300,\n formatRequest,\n onError,\n onProgress,\n onSuccess,\n}: XhrOptions) {\n // support files\n const innerFiles: UploadFile[] = files || [];\n let percent = 0;\n\n // eslint-disable-next-line no-shadow\n const xhr = new XMLHttpRequest();\n if (withCredentials) {\n xhr.withCredentials = true;\n }\n\n let timer1: NodeJS.Timeout;\n let timer2: NodeJS.Timeout;\n if (useMockProgress && files[0]?.status === 'progress') {\n // 超过 500 毫秒再开启虚拟进度\n const timer2 = setTimeout(() => {\n // 只有真实进度一直不存在时才需要模拟进度\n timer1 = setInterval(() => {\n if (percent + 10 < 100) {\n percent = Math.max(percent + 10, percent);\n if (files[0] && percent !== files[0].percent) {\n files[0].percent = percent;\n onProgress({\n percent,\n file: file || innerFiles[0],\n files: innerFiles.map((file) => ({ ...file, percent })),\n type: 'mock',\n XMLHttpRequest: xhr,\n });\n }\n } else {\n clearInterval(timer1);\n }\n }, mockProgressDuration);\n clearTimeout(timer2);\n }, mockProgressDuration);\n }\n\n let requestData: { [key: string]: any } = {};\n if (data) {\n const extraData = isFunction(data) ? data(innerFiles) : data;\n Object.assign(requestData, extraData);\n }\n innerFiles.forEach((file, index) => {\n const fileField = innerFiles.length > 1 ? `${name}[${index}]` : name;\n requestData[fileField] = file.raw;\n });\n if (innerFiles.length === 1) {\n requestData[name] = innerFiles[0].raw;\n } else {\n requestData[name] = innerFiles.map((file) => file.raw);\n }\n requestData.length = innerFiles.length;\n\n if (formatRequest) {\n requestData = formatRequest(requestData);\n }\n\n // set send data\n const formData = new FormData();\n Object.keys(requestData).forEach((key) => {\n formData.append(key, requestData[key]);\n });\n\n xhr.open(method, action, true);\n // custom request headers\n Object.keys(headers).forEach((key) => {\n xhr.setRequestHeader(key, headers[key]);\n });\n\n xhr.onerror = (event: ProgressEvent) => {\n onError({ event, file, files: innerFiles, XMLHttpRequest: xhr, });\n clearInterval(timer1);\n clearTimeout(timer2);\n };\n\n xhr.ontimeout = (event) => {\n onError({ event, file, files: innerFiles, XMLHttpRequest: xhr, });\n };\n\n if (xhr.upload) {\n xhr.upload.onprogress = (event: ProgressEvent) => {\n let realPercent = 0;\n if (event.total > 0) {\n realPercent = Math.round((event.loaded / event.total) * 100);\n }\n percent = Math.max(realPercent, percent);\n if (percent !== realPercent && innerFiles[0]?.percent !== percent) {\n const progressFiles = innerFiles.map((item) => ({ ...item, percent }));\n onProgress({\n event,\n percent,\n file: file || progressFiles[0],\n files: progressFiles,\n type: 'real',\n XMLHttpRequest: xhr,\n });\n }\n };\n }\n\n // eslint-disable-next-line consistent-return\n xhr.onload = (event: ProgressEvent) => {\n let response: { [key: string]: any } = {};\n response.XMLHttpRequest = xhr;\n const isFail = xhr.status < 200 || xhr.status >= 300;\n if (isFail) {\n return onError({\n event,\n file,\n files: innerFiles,\n response,\n XMLHttpRequest: xhr,\n });\n }\n const text = xhr.responseText || xhr.response;\n try {\n response = JSON.parse(text);\n } catch (e) {\n response = text;\n log.error('Upload', 'response does not a valid json');\n }\n clearInterval(timer1);\n clearTimeout(timer2);\n innerFiles.forEach((file) => {\n file.percent = 100;\n file.status = 'success';\n // 如果上传请求返回结果没有上传日期,则使用电脑当前日期显示\n file.uploadTime = response?.uploadTime || getCurrentDate();\n });\n if (typeof response === 'object') {\n response.XMLHttpRequest = xhr;\n }\n onSuccess({\n event,\n file: file || innerFiles[0],\n files: [...innerFiles],\n XMLHttpRequest: xhr,\n response,\n });\n };\n\n xhr.send(formData);\n // @ts-ignore\n xhr.upload.requestParams = requestData;\n // @ts-ignore\n xhr.upload.requestHeaders = headers;\n\n return xhr;\n}\n","import { ref, computed, toRefs } from 'vue';\nimport { merge } from 'lodash-es';\nimport { SizeLimitObj, TdUploadProps, UploadChangeContext, UploadFile, UploadRemoveContext } from '../type';\nimport {\n getFilesAndErrors,\n validateFile,\n upload,\n getTriggerTextField,\n getDisplayFiles,\n formatToUploadFile,\n} from '@tdesign/common-js/upload/main';\nimport { getFileList } from '@tdesign/common-js/upload/utils';\nimport useVModel from '../../hooks/useVModel';\nimport { InnerProgressContext, OnResponseErrorContext, SuccessContext } from '@tdesign/common-js/upload/types';\nimport { useConfig } from '../../hooks/useConfig';\n\nexport type ValidateParams = Parameters[0];\n\n/**\n * 上传组件全部逻辑,方便脱离 UI,自定义 UI 组件\n */\nexport default function useUpload(props: TdUploadProps) {\n const inputRef = ref();\n // TODO: Form 表单控制上传组件是否禁用\n const { disabled, autoUpload, isBatchUpload, multiple, files, modelValue, defaultFiles } = toRefs(props);\n const { globalConfig, t, classPrefix } = useConfig('upload');\n const [uploadValue, setUploadValue] = useVModel(files, modelValue, defaultFiles.value, props.onChange, 'files');\n const xhrReq = ref<{ files: UploadFile[]; xhrReq: XMLHttpRequest }[]>([]);\n const toUploadFiles = ref([]);\n const sizeOverLimitMessage = ref('');\n\n const locale = computed(() => merge({}, globalConfig.value, props.locale));\n\n const tipsClasses = `${classPrefix.value}-upload__tips ${classPrefix.value}-size-s`;\n const errorClasses = [tipsClasses].concat(`${classPrefix.value}-upload__tips-error`);\n const placeholderClass = `${classPrefix.value}-upload__placeholder`;\n\n // 单文件场景:触发元素文本\n const triggerUploadText = computed(() => {\n const field = getTriggerTextField({\n isBatchUpload: isBatchUpload.value,\n multiple: multiple.value,\n status: uploadValue.value?.[0]?.status,\n autoUpload: autoUpload.value,\n }) as keyof typeof locale.value.triggerUploadText;\n return locale.value.triggerUploadText[field];\n });\n\n const uploading = ref(false);\n\n // 文件列表显示的内容(自动上传和非自动上传有所不同)\n const displayFiles = computed(() => {\n return getDisplayFiles({\n multiple: props.multiple,\n toUploadFiles: toUploadFiles.value,\n uploadValue: uploadValue.value,\n autoUpload: autoUpload.value,\n isBatchUpload: isBatchUpload.value,\n });\n });\n\n const uploadFilePercent = (params: { file: UploadFile; percent: number }) => {\n const { file, percent } = params;\n const operationUploadFiles = autoUpload.value ? toUploadFiles : uploadValue;\n const index = operationUploadFiles.value.findIndex((item) => file.raw === item.raw);\n operationUploadFiles.value[index] = { ...operationUploadFiles.value[index], percent };\n };\n\n const updateFilesProgress = () => {\n if (props.autoUpload) {\n toUploadFiles.value = [...toUploadFiles.value];\n }\n };\n\n const onResponseError = (p: OnResponseErrorContext) => {\n if (!p || !p.files || !p.files[0]) return;\n const { response, event, files } = p;\n updateFilesProgress();\n props.onOneFileFail?.({\n e: event,\n file: files?.[0],\n currentFiles: files,\n failedFiles: files,\n response,\n });\n // 单选或多文件替换,需要清空上一次上传成功的文件\n if (!props.multiple || props.isBatchUpload) {\n setUploadValue([], {\n trigger: 'progress-fail',\n e: p.event,\n file: p.files[0],\n });\n }\n };\n\n // 多文件上传场景,单个文件进度\n const onResponseProgress = (p: InnerProgressContext) => {\n updateFilesProgress();\n props.onProgress?.({\n e: p.event,\n file: p.file,\n currentFiles: p.files,\n percent: p.percent,\n type: p.type,\n XMLHttpRequest: p.XMLHttpRequest,\n });\n };\n\n // 多文件上传场景,单个文件上传成功后\n const onResponseSuccess = (p: SuccessContext) => {\n // 只有多个上传请求同时触发时才需 onOneFileSuccess\n if (props.multiple && !props.uploadAllFilesInOneRequest) {\n updateFilesProgress();\n props.onOneFileSuccess?.({\n e: p.event,\n file: p.files[0],\n response: p.response,\n });\n }\n };\n\n function getSizeLimitError(sizeLimitObj: SizeLimitObj) {\n const limit = sizeLimitObj;\n return limit.message\n ? t(limit.message, { sizeLimit: limit.size })\n : `${t(locale.value.sizeLimitMessage, { sizeLimit: limit.size })} ${limit.unit}`;\n }\n\n const handleNotAutoUpload = (toFiles: UploadFile[]) => {\n const tmpFiles = props.multiple && !isBatchUpload.value ? uploadValue.value.concat(toFiles) : toFiles;\n if (!tmpFiles.length) return;\n setUploadValue(tmpFiles, {\n trigger: 'add',\n index: uploadValue.value.length,\n file: toFiles[0],\n files: toFiles,\n });\n toUploadFiles.value = [];\n };\n\n const onFileChange = (files: File[]) => {\n if (disabled.value) return;\n const params = { currentSelectedFiles: formatToUploadFile([...files], props.format) };\n props.onSelectChange?.([...files], params);\n validateFile({\n uploadValue: uploadValue.value,\n // @ts-ignore\n files: [...files],\n allowUploadDuplicateFile: props.allowUploadDuplicateFile,\n max: props.multiple ? props.max : 0,\n sizeLimit: props.sizeLimit,\n isBatchUpload: isBatchUpload.value,\n autoUpload: autoUpload.value,\n format: props.format,\n beforeUpload: props.beforeUpload,\n beforeAllFilesUpload: props.beforeAllFilesUpload,\n }).then((args) => {\n // 自定义全文件校验不通过\n if (args.validateResult?.type === 'BEFORE_ALL_FILES_UPLOAD') {\n const params: ValidateParams = { type: 'BEFORE_ALL_FILES_UPLOAD', files: args.files };\n props.onValidate?.(params);\n return;\n }\n // 文件数量校验不通过\n if (args.lengthOverLimit) {\n const params: ValidateParams = { type: 'FILES_OVER_LENGTH_LIMIT', files: args.files };\n props.onValidate?.(params);\n if (!args.files.length) return;\n }\n // 过滤相同的文件名\n if (args.hasSameNameFile) {\n const params: ValidateParams = { type: 'FILTER_FILE_SAME_NAME', files: args.files };\n props.onValidate?.(params);\n }\n // 文件大小校验结果处理(已过滤超出限制的文件)\n if (args.fileValidateList instanceof Array) {\n const { sizeLimitErrors, beforeUploadErrorFiles, toFiles } = getFilesAndErrors(\n args.fileValidateList,\n getSizeLimitError,\n );\n const tmpWaitingFiles = autoUpload.value ? toFiles : toUploadFiles.value.concat(toFiles);\n toUploadFiles.value = tmpWaitingFiles;\n props.onWaitingUploadFilesChange?.({ files: tmpWaitingFiles, trigger: 'validate' });\n // 文件大小处理\n if (sizeLimitErrors[0]) {\n sizeOverLimitMessage.value = sizeLimitErrors[0].file.response.error;\n props.onValidate?.({ type: 'FILE_OVER_SIZE_LIMIT', files: sizeLimitErrors.map((t) => t.file) });\n } else {\n sizeOverLimitMessage.value = '';\n // 自定义方法 beforeUpload 拦截的文件\n if (beforeUploadErrorFiles.length) {\n const params: ValidateParams = { type: 'CUSTOM_BEFORE_UPLOAD', files: beforeUploadErrorFiles };\n props.onValidate?.(params);\n }\n }\n // 如果是自动上传\n if (autoUpload.value) {\n uploadFiles(tmpWaitingFiles);\n } else {\n handleNotAutoUpload(tmpWaitingFiles);\n }\n }\n });\n\n // 清空 元素的文件,避免出现重复文件无法选择的情况\n inputRef.value.value = null;\n };\n\n const onNormalFileChange = (e: InputEvent) => {\n const fileList = getFileList((e.target as HTMLInputElement).files);\n onFileChange?.(fileList);\n };\n\n function onDragFileChange(files: File[]) {\n onFileChange?.(files);\n }\n\n function onPasteFileChange(e: ClipboardEvent) {\n onFileChange?.([...e.clipboardData.files]);\n }\n\n /**\n * 上传文件。对外暴露方法,修改时需谨慎\n * @param toFiles 本地上传的文件列表\n */\n function uploadFiles(toFiles?: UploadFile[]) {\n const notUploadedFiles = uploadValue.value.filter((t) => t.status !== 'success');\n const files = autoUpload.value ? toFiles || toUploadFiles.value : notUploadedFiles;\n if (!files || !files.length) return;\n uploading.value = true;\n xhrReq.value = [];\n upload({\n action: props.action,\n headers: props.headers,\n method: props.method,\n name: props.name,\n withCredentials: props.withCredentials,\n uploadedFiles: uploadValue.value,\n toUploadFiles: files,\n multiple: props.multiple,\n isBatchUpload: isBatchUpload.value,\n autoUpload: props.autoUpload,\n uploadAllFilesInOneRequest: props.uploadAllFilesInOneRequest,\n useMockProgress: props.useMockProgress,\n data: props.data,\n mockProgressDuration: props.mockProgressDuration,\n requestMethod: props.requestMethod,\n formatRequest: props.formatRequest,\n formatResponse: props.formatResponse,\n onResponseProgress,\n onResponseSuccess,\n onResponseError,\n setXhrObject: (xhr) => {\n if (xhr.files[0]?.raw && xhrReq.value.find((item) => item.files[0]?.raw === xhr.files[0].raw)) return;\n xhrReq.value = xhrReq.value.concat(xhr);\n },\n }).then(\n // 多文件场景时,全量文件完成后\n ({ status, data, list, failedFiles }) => {\n uploading.value = false;\n if (status === 'success') {\n setUploadValue([...data.files], {\n trigger: 'add',\n file: data.files[0],\n });\n xhrReq.value = [];\n props.onSuccess?.({\n fileList: data.files,\n currentFiles: files,\n file: files[0],\n // 只有全部请求完成后,才会存在该字段\n results: list?.map((t) => t.data),\n // 单文件单请求有一个 response,多文件多请求有多个 response\n response: data.response || list.map((t) => t.data.response),\n XMLHttpRequest: data.XMLHttpRequest,\n });\n } else if (failedFiles?.[0]) {\n props.onFail?.({\n e: data.event,\n file: failedFiles[0],\n failedFiles,\n currentFiles: files,\n response: data.response,\n XMLHttpRequest: data.XMLHttpRequest,\n });\n }\n\n // 非自动上传,文件都在 uploadValue,不涉及 toUploadFiles\n if (autoUpload.value) {\n toUploadFiles.value = failedFiles;\n props.onWaitingUploadFilesChange?.({ files: failedFiles, trigger: 'uploaded' });\n }\n },\n );\n }\n\n function onInnerRemove(p: UploadRemoveContext) {\n sizeOverLimitMessage.value = '';\n p.e.stopPropagation?.();\n const changePrams: UploadChangeContext = {\n e: p.e,\n trigger: 'remove',\n index: p.index,\n file: p.file,\n };\n // remove all files for batchUpload\n if (props.isBatchUpload || !props.multiple) {\n toUploadFiles.value = [];\n props.onWaitingUploadFilesChange?.({ files: [], trigger: 'remove' });\n setUploadValue([], changePrams);\n } else if (!props.autoUpload) {\n uploadValue.value.splice(p.index, 1);\n setUploadValue([...uploadValue.value], changePrams);\n } else {\n // autoUpload 场景下, p.index < uploadValue.length 表示移除已经上传成功的文件;反之表示移除待上传列表文件\n // eslint-disable-next-line\n if (p.index < uploadValue.value.length) {\n uploadValue.value.splice(p.index, 1);\n setUploadValue([...uploadValue.value], changePrams);\n } else {\n toUploadFiles.value.splice(p.index - uploadValue.value.length, 1);\n toUploadFiles.value = [...toUploadFiles.value];\n props.onWaitingUploadFilesChange?.({ files: [...toUploadFiles.value], trigger: 'remove' });\n }\n }\n props.onRemove?.(p);\n }\n\n const triggerUpload = (e?: MouseEvent) => {\n if (disabled.value || !inputRef.value) return;\n e?.stopPropagation?.();\n (inputRef.value as HTMLInputElement).click();\n };\n\n const cancelUpload = (context?: { file?: UploadFile; e?: MouseEvent }) => {\n xhrReq.value?.forEach((item) => {\n item.xhrReq?.abort();\n });\n uploading.value = false;\n\n // autoUpload do not need to reset to waiting state\n if (autoUpload.value) {\n toUploadFiles.value = [];\n } else {\n setUploadValue(\n uploadValue.value.map((item) => {\n if (item.status !== 'success') {\n return { ...item, status: 'waiting' };\n }\n return item;\n }),\n { trigger: 'abort' },\n );\n }\n\n if (context?.file && !autoUpload.value) {\n onInnerRemove?.({ file: context.file, e: context.e, index: 0 });\n }\n\n props.onCancelUpload?.();\n };\n\n return {\n t,\n locale,\n classPrefix,\n triggerUploadText,\n toUploadFiles,\n uploadValue,\n displayFiles,\n sizeOverLimitMessage,\n uploading,\n tipsClasses,\n errorClasses,\n placeholderClass,\n inputRef,\n disabled,\n xhrReq,\n uploadFilePercent,\n uploadFiles,\n onFileChange,\n onNormalFileChange,\n onDragFileChange,\n onPasteFileChange,\n onInnerRemove,\n triggerUpload,\n cancelUpload,\n };\n}\n","import { computed, defineComponent } from 'vue';\nimport { UploadIcon as TdUploadIcon } from 'tdesign-icons-vue-next';\nimport props from './props';\nimport NormalFile from './components/normal-file';\nimport DraggerFile from './components/dragger-file';\nimport ImageCard from './components/image-card';\nimport MultipleFlowList from './components/multiple-flow-list';\nimport Button from '../button';\nimport { CommonDisplayFileProps, UploadProps } from './types';\nimport CustomFile from './components/custom-file';\n\nimport { UploadDragEvents } from './hooks/useDrag';\nimport useUpload from './hooks/useUpload';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\n\nexport default defineComponent({\n name: 'TUpload',\n props,\n setup(props: UploadProps, { slots, expose }) {\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const {\n locale,\n classPrefix,\n triggerUploadText,\n toUploadFiles,\n displayFiles,\n uploadValue,\n sizeOverLimitMessage,\n uploading,\n tipsClasses,\n errorClasses,\n placeholderClass,\n inputRef,\n onInnerRemove,\n uploadFiles,\n onNormalFileChange,\n onDragFileChange,\n onPasteFileChange,\n triggerUpload,\n cancelUpload,\n uploadFilePercent,\n } = useUpload(props);\n const disabled = useDisabled();\n\n const { UploadIcon } = useGlobalIcon({\n UploadIcon: TdUploadIcon,\n });\n\n const triggerUploadButtonText = computed(\n () => props.triggerButtonProps?.default || props.triggerButtonProps?.content || triggerUploadText.value,\n );\n\n expose({\n upload: inputRef.value,\n uploading,\n triggerUpload,\n uploadFiles,\n cancelUpload,\n uploadFilePercent,\n });\n\n const renderTrigger = () => {\n const getDefaultTrigger = () => {\n if (props.theme === 'file-input') {\n return (\n \n );\n }\n return (\n \n );\n };\n return (\n renderContent('default', 'trigger', {\n params: { dragActive: false, files: uploadValue.value },\n }) || getDefaultTrigger()\n );\n };\n\n const commonDisplayFileProps = computed(() => ({\n accept: props.accept,\n files: uploadValue.value,\n toUploadFiles: toUploadFiles.value,\n displayFiles: displayFiles.value,\n theme: props.theme,\n placeholder: props.placeholder,\n disabled: disabled.value,\n tips: props.tips,\n status: props.status,\n sizeOverLimitMessage: sizeOverLimitMessage.value,\n uploading: uploading.value,\n classPrefix: classPrefix.value,\n tipsClasses,\n errorClasses,\n placeholderClass,\n locale: locale.value,\n autoUpload: props.autoUpload,\n abridgeName: props.abridgeName,\n showUploadProgress: props.showUploadProgress,\n fileListDisplay: props.fileListDisplay,\n onRemove: onInnerRemove,\n uploadPastedFiles: props.uploadPastedFiles,\n onPasteFileChange: onPasteFileChange,\n imageViewerProps: props.imageViewerProps,\n }));\n\n const dragProps: UploadDragEvents = {\n onDragFileChange,\n onDragenter: props.onDragenter,\n onDragleave: props.onDragleave,\n onDrop: props.onDrop,\n };\n\n const uploadClasses = computed(() => [\n `${classPrefix.value}-upload`,\n {\n [`${classPrefix.value}-upload--theme-${props.theme}`]: props.theme === 'file-input',\n },\n ]);\n\n const getNormalFileNode = () => (\n \n
    \n {renderTrigger()}\n
    \n \n );\n\n const getSingleFileDraggerUploadNode = () => (\n \n );\n\n const getImageCardUploadNode = () => (\n \n );\n\n const getFlowListNode = () => (\n \n
    \n {!props.draggable && renderTrigger()}\n
    \n \n );\n\n const getCustomFile = () => (\n \n {renderTrigger()}\n \n );\n\n return () => (\n
    \n \n {['file', 'file-input'].includes(props.theme) && !props.draggable && getNormalFileNode()}\n {['file', 'image'].includes(props.theme) && props.draggable && getSingleFileDraggerUploadNode()}\n {props.theme === 'image' && !props.draggable && getImageCardUploadNode()}\n {['image-flow', 'file-flow'].includes(props.theme) && getFlowListNode()}\n {props.theme === 'custom' && getCustomFile()}\n\n {Boolean(props.tips || slots.tips) && (\n \n {renderTNodeJSX('tips')}\n \n )}\n {sizeOverLimitMessage.value && {sizeOverLimitMessage.value}}\n
    \n );\n },\n});\n","import _Upload from './upload';\nimport withInstall from '../utils/withInstall';\n\nimport './style';\n\nexport * from './types';\n\nexport const Upload = withInstall(_Upload);\nexport default Upload;\n","/* eslint-disable */\n\n/**\n * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC\n * */\n\nimport { TdConfigProviderProps } from './type';\nimport { PropType } from 'vue';\n\nexport default {\n /** 全局配置 */\n globalConfig: {\n type: Object as PropType,\n },\n};\n","import { defineComponent } from 'vue';\nimport props from './props';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { provideConfig } from './hooks/useConfig';\n\nexport default defineComponent({\n name: 'TConfigProvider',\n props,\n setup(props) {\n provideConfig(props);\n\n const renderTNodeJSX = useTNodeJSX();\n\n return () => <>{renderTNodeJSX('default')};\n },\n});\n","import withInstall from '../utils/withInstall';\nimport _ConfigProvider from './config-provider';\nimport { TdConfigProviderProps } from './type';\n\nexport * from './type';\nexport type ConfigProviderProps = TdConfigProviderProps;\n\nexport const ConfigProvider = withInstall(_ConfigProvider);\nexport default ConfigProvider;\n","import { App } from 'vue';\nimport * as components from './components';\n\nexport function install(app: App, config?: Record): void {\n Object.keys(components).forEach((key) => {\n if (/directive/i.test(key)) return;\n // @ts-ignore\n /plugin/i.test(key) ? app.use(components[key]) : app.use(components[key], config);\n });\n}\n\nexport * from './components';\nexport * from './common';\nexport default {\n install,\n version: typeof PKG_VERSION === 'undefined' ? '' : PKG_VERSION, // eslint-disable-line\n};\n"],"names":["_arrayLikeToArray","r","a","length","e","n","Array","_iterableToArray","Symbol","iterator","from","_unsupportedIterableToArray","arrayLikeToArray","t","toString","call","slice","constructor","name","test","_toConsumableArray","isArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","TypeError","nonIterableSpread","_typeof","o","prototype","toPropertyKey","i","toPrimitive","String","Number","_defineProperty","Object","defineProperty","value","enumerable","configurable","writable","freeGlobal","global","freeSelf","self","root","Function","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","toStringTag","undefined","baseGetTag","isOwn","tag","unmasked","result","getRawTag","objectToString","isObjectLike","isSymbol","arrayMap","array","iteratee","index","isArray$1","symbolProto","symbolToString","baseToString","reWhitespace","reTrimStart","baseTrim","string","charAt","trimmedEndIndex","replace","isObject","type","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","other","valueOf","isBinary","INFINITY","toFinite","toInteger","remainder","identity","isFunction","uid","coreJsData","maskSrcKey","exec","keys","IE_PROTO","funcToString","toSource","func","reIsHostCtor","funcProto","reIsNative","RegExp","baseIsNative","getNative","object","key","getValue","WeakMap","objectCreate","create","baseCreate","proto","copyArray","source","nativeNow","Date","now","count","lastCalled","baseSetToString","setToString","stamp","remaining","arguments","apply","baseIsNaN","arrayIncludes","fromIndex","strictIndexOf","predicate","fromRight","baseFindIndex","baseIndexOf","reIsUint","isIndex","baseAssignValue","eq","assignValue","objValue","copyObject","props","customizer","isNew","newValue","nativeMax","Math","max","overRest","start","transform","args","otherArgs","thisArg","this","baseRest","isLength","isArrayLike","isIterateeCall","createAssigner","assigner","sources","guard","isPrototype","Ctor","baseIsArguments","propertyIsEnumerable","isArguments","freeExports","exports","nodeType","freeModule","module","Buffer","isBuffer","typedArrayTags","baseUnary","freeProcess","process","nodeUtil","types","require","binding","nodeIsTypedArray","isTypedArray","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseTimes","push","overArg","arg","nativeKeys","baseKeys","baseKeysIn","nativeKeysIn","isProto","keysIn","reIsDeepProp","reIsPlainProp","isKey","nativeCreate","Hash","entries","clear","entry","set","assocIndexOf","__data__","size","has","get","data","splice","ListCache","pop","Map","getMapData","map","MapCache","hash","memoize","resolver","memoized","cache","Cache","rePropName","reEscapeChar","stringToPath","memoizeCapped","charCodeAt","match","number","quote","subString","stringToPath$1","castPath","toKey","baseGet","path","defaultValue","arrayPush","values","offset","spreadableSymbol","isConcatSpreadable","isFlattenable","baseFlatten","depth","isStrict","flatten","flatRest","getPrototype","getPrototypeOf","objectCtorString","isPlainObject","baseSlice","end","castSlice","reHasUnicode","hasUnicode","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","join","rsSymbol","reUnicode","stringToArray","unicodeToArray","split","asciiToArray","methodName","upperFirst$1","strSymbols","chr","trailing","deburrLetter","reLatin","reComboMark","reAsciiWord","reHasUnicodeWord","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsModifier","rsEmoji","reUnicodeWord","words","pattern","hasUnicodeWord","unicodeWords","asciiWords","reApos","createCompounder","callback","accumulator","initAccum","arrayReduce","deburr","camelCase","word","toLowerCase","upperFirst","camelCase$1","nativeCeil","ceil","chunk","resIndex","Stack","pairs","LARGE_ARRAY_SIZE","allocUnsafe","cloneBuffer","buffer","isDeep","copy","arrayFilter","stubArray","nativeGetSymbols","getOwnPropertySymbols","getSymbols","symbol","getSymbolsIn","baseGetAllKeys","keysFunc","symbolsFunc","getAllKeys","getAllKeysIn","DataView","Promise","Set","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","resolve","ctorString","getTag$1","Uint8Array","cloneArrayBuffer","arrayBuffer","byteLength","reFlags","symbolValueOf","cloneTypedArray","typedArray","byteOffset","initCloneByTag","regexp","dataView","cloneDataView","lastIndex","initCloneObject","nodeIsMap","isMap","nodeIsSet","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","stack","isFlat","isFull","input","initCloneArray","isFunc","copySymbolsIn","baseAssignIn","copySymbols","baseAssign","stacked","forEach","subValue","add","arrayEach","cloneDeep","CLONE_DEEP_FLAG","SetCache","arraySome","cacheHas","equalArrays","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","arrayTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","message","convert","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","equalObjects","baseIsEqual","isStrictComparable","matchesStrictComparable","srcValue","baseMatches","matchData","getMatchData","noCustomizer","COMPARE_PARTIAL_FLAG","baseIsMatch","baseHasIn","hasIn","hasFunc","hasPath","baseProperty","property","basePropertyDeep","baseIteratee","baseFor","iterable","baseForOwn","baseEach","eachFunc","collection","createBaseEach","now$2","nativeMin","min","debounce","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","clearTimeout","cancel","flush","assignMergeValue","isArrayLikeObject","safeGet","baseMergeDeep","srcIndex","mergeFunc","isCommon","isTyped","baseMerge","mergeWith","_mergeWith","arrayIncludesWith","comparator","baseDifference","includes","valuesLength","outer","computed","valuesIndex","difference$1","last","reRegExpChar","reHasRegExpChar","escapeRegExp","baseFilter","baseGt","isString","castArrayLikeObject","intersection","arrays","mapped","caches","maxLength","Infinity","baseIntersection","intersection$1","isBoolean","nodeIsDate","isDate","isDate$3","isEmpty","isEqual","isNumber","isNil","isNull","isUndefined","kebabCase","kebabCase$1","baseLt","baseExtremum","current","merge","merge$2","baseUnset","parent","customOmitClone","omit","paths","omit$1","baseSet","nested","basePickBy","nativeFloor","floor","baseRepeat","asciiSize","stringSize","unicodeSize","padStart","chars","strLength","charsLength","createPadding","pick","basePick","pick$1","range","step","baseRange","createRange","range$1","remove","indexes","previous","basePullAt","sum","baseSum","throttle","createSet","baseUniq","seenIndex","idCounter","upperCase","toUpperCase","upperCase$1","xorWith","baseXor","xorWith$1","_arrayWithHoles","_nonIterableRest","_slicedToArray","arrayWithHoles","l","u","f","next","done","iterableToArrayLimit","nonIterableRest","s","c","h","d","$","y","M","weekdays","months","ordinal","m","v","z","utcOffset","abs","date","year","month","clone","p","w","D","ms","Q","g","S","_","O","b","locale","$L","utc","$u","x","$x","$offset","parse","$d","NaN","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","getTime","toDate","$locale","weekStart","$set","daysInMonth","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","extend","$i","isDayjs","en","Ls","default","yearStart","formats","LT","LTS","L","LL","LLL","LLLL","ll","lll","llll","relativeTime","future","past","mm","hh","dd","MM","yy","require$$0","EAnimationType","defaultGlobalConfig","classPrefix","animation","include","exclude","attach","calendar","firstDayOfWeek","fillWithZero","controllerConfig","icon","autocomplete","dialog","closeOnEscKeydown","closeOnOverlayClick","confirmBtnTheme","info","warning","danger","success","popconfirm","table","expandIcon","sortIcon","filterIcon","treeExpandAndFoldIcon","hideSortTips","select","clearIcon","filterable","drawer","tree","folderIcon","datePicker","steps","checkIcon","errorIcon","closeIcon","form","requiredMark","empty","titleText","maintenance","fail","networkError","image","autoComplete","pagination","itemsPerPage","jumpTo","page","total","cascader","loadingText","placeholder","yearSelection","monthSelection","yearRadio","monthRadio","hideWeekend","showWeekend","today","thisMonth","week","cellMonth","transfer","title","timePicker","dayjsLocale","confirm","anteMeridiem","postMeridiem","content","loadingMoreText","filterInputPlaceholder","sortAscendingOperationText","sortCancelOperationText","sortDescendingOperationText","clearFilterResultButtonText","columnConfigButtonText","columnConfigTitleText","columnConfigDescriptionText","confirmText","cancelText","resetText","selectAllText","searchResultText","treeSelect","quarter","quarters","rangeSeparator","direction","dayAriaLabel","weekAbbreviation","yearAriaLabel","monthAriaLabel","selectTime","selectDate","nextYear","preYear","nextMonth","preMonth","preDecade","nextDecade","upload","sizeLimitMessage","cancelUploadText","triggerUploadText","fileInput","normal","reupload","continueUpload","delete","uploading","dragger","dragDropText","draggingText","clickAndDragText","file","fileNameText","fileSizeText","fileStatusText","fileOperationText","fileOperationDateText","progress","uploadingText","waitingText","failText","successText","errorMessage","url","required","whitespace","len","enum","idcard","telnumber","validator","boolean","colonText","list","alert","expandText","collapseText","anchor","copySuccessText","copyText","colorPicker","swatchColorTitle","recentColorTitle","clearConfirmText","singleColor","gradientColor","guide","finishButtonProps","theme","nextButtonProps","skipButtonProps","prevButtonProps","errorText","imageViewer","mirrorTipText","rotateTipText","originalSizeTipText","typography","copiedText","rate","rateText","descriptions","chat","stopBtnText","refreshTipText","copyTipText","likeTipText","dislikeTipText","copyCodeBtnText","copyCodeSuccessText","clearHistoryBtnText","copyTextSuccess","copyTextFail","confirmClearHistory","configProviderInjectKey","globalConfigCopy","ref","useConfig","componentName","componentLocale","injectGlobalConfig","getCurrentInstance","inject","mergedGlobalConfig","globalConfig","assign","_len","_key","translated","provideConfig","defaultData","injectConfig","provide","usePrefixClass","concat","useCommonClassName","SIZE","small","medium","large","xs","xl","block","STATUS","loading","loadMore","disabled","focused","error","selected","active","checked","hidden","visible","expanded","indeterminate","setStyle","el","styles","style","_objectWithoutProperties","indexOf","objectWithoutPropertiesLoose","getValidAttrs","obj","newObj","getBackgroundColor","color","unshift","to","_color$direction","rest","_excluded","tempArr","sort","parseFloat","substr","getIEVersion","navigator","MAX_SAFE_INTEGER","userAgent","isIE","isIE11","reIE","fIEVersion","getCharacterLength","str","maxCharacter","hasMaxCharacter","characters","currentStringLength","pxCompat","param","GradientIcon","defineComponent","setup","circleRef","onMounted","nextTick","circleElem","_window","_window$getComputedSt2","_window2","basicStyle","window","_window$getComputedSt","getComputedStyle","fontSize","ua","isSafari","isIosWechat","transformOrigin","matched","endColor","_objectSpread","background","circleAdapter","classes","_createVNode","class","viewBox","version","width","height","xmlns","createVNode","performance","hrtime","performanceNowModule","getNanoSeconds","nodeLoadTime","hr","upTime","uptime","moduleLoadTime","loadTime","vendors","suffix","raf","caf","id","queue","frameDuration","_now","cp","_loop","cancelled","handle","rafModule","fn","raf$2","raf_1","polyfill","requestAnimationFrame","cancelAnimationFrame","easeInOutCubic","duration","change","isServer","on","document","addEventListener","element","event","handler","attachEvent","off","removeEventListener","detachEvent","hasClass","cls","Error","classList","contains","className","addClass","curClass","j","clsName","removeClass","getAttach","node","triggerNode","attachNode","querySelector","HTMLElement","body","getScrollContainer","container","isWindow","getScroll","target","isLeft","method","Document","documentElement","scrollTo","opt","_opt$container","_opt$duration","_opt$easing","easing","scrollTop","startTime","res","fnc","nextScrollTop","pageXOffset","isTextEllipsis","ele","_ele$clientWidth","clientWidth","_ele$scrollWidth","scrollWidth","requestSubmit","HTMLFormElement","submitter","createElement","appendChild","click","removeChild","elementInViewport","elm","rect","getBoundingClientRect","parentRect","top","left","bottom","right","innerHeight","innerWidth","getElmCssPropValue","propName","propValue","defaultView","getPropertyValue","isFixed","parentNode","nodeName","getWindowScroll","docElm","pageYOffset","scrollLeft","hasOwn","val","getPropertyValFromObj","getDefaultNode","defaultNode","isVNode","getChildren","childList","innerGetChildren","item","children","Fragment","getParams","params","handleSlots","instance","_instance$$slots$came","_instance$$slots","_instance$$slots$keba","_instance$$slots2","$slots","renderTNodeJSX","propsNode","_instance$slots$camel","_instance$slots","_instance$slots$kebab","_instance$slots2","slots","filter","isEmptyNode","_node2$type","useTNodeJSX","renderParams","isSlotFirst","slotFirst","getSlotFirst","renderSlot","vProps","vnode","isPropExplicitlySet","useTNodeDefault","useContent","name1","name2","toParams","node1","node2","useTeleport","innerTriggerNode","getElement","watch","props$1x","delay","fullscreen","Boolean","indicator","inheritColor","preventScrollThrough","showOverlay","text","zIndex","_Loading","inheritAttrs","_ref","attrs","delayShowLoading","_useComponentClassNam","centerClass","fullscreenClass","lockClass","overlayClass","relativeClass","fullClass","inheritColorClass","renderContent","countDelay","timer","teleportElement","delayCounted","hasContent","lockFullscreen","showText","showWrapLoading","showFullScreenLoading","showAttachedLoading","baseClasses","fullScreenClasses","attachClasses","withContentClasses","normalClasses","toRefs","_ref5","_classes$value","defaultIndicator","Teleport","_mergeProps","fullScreenLoadingInstance","createLoading","mergedProps","mergeDefaultProps","component","loadingOptions","reactive","render","LoadingComponent","app","createApp","mount","parentRelativeClass","console","hide","unmount","produceLoading","_fullScreenLoadingIns","LoadingPlugin","install","config","globalProperties","$loading","INSTANCE_KEY","createInstance","_binding$modifiers","modifiers","mapKeys","vLoading","mounted","updated","_value$loading","oldValue","unmounted","_el$INSTANCE_KEY","withInstall","comp","alias","directive","componentPlugin","Loading","props$1w","ghost","href","loadingProps","shape","variant","onClick","expand","ripple","fade","useRipple","fixedRippleColor","keepAnimation","rippleContainer","keepRipple","keepExpand","_animationConfig$excl","_animationConfig$incl","animationConfig","keepFade","handleAddRipple","dom","rippleColor","_el$dataset","dataset","cssVariable","getRippleColor","button","elStyle","elBorder","borderWidth","border","offsetWidth","offsetHeight","position","borderRadius","pointerEvents","overflow","marginTop","marginLeft","transition","period","backgroundColor","opacity","elMap","child","initPosition","insertBefore","firstChild","handleClearRipple","onUnmounted","_el$value","useDisabled","context","currentInstance","componentDisabled","formDisabled","_context$beforeDisabl","_context$afterDisable","_formDisabled$disable","beforeDisabled","afterDisabled","TButton","COMPONENT_NAME","_useCommonClassName","btnRef","isDisabled","mergeTheme","buttonClass","buttonContent","TLoading","iconOnly","buttonAttrs","tabindex","Button","_Button","renderFn","kebabAttrs","reduce","camelString","camel2Kebab","DEFAULT_CLASS_PREFIX","ConfigContext","COMMON_SIZE_CLASS_NAMES","fill","addRectangle","useSizeProps","_useSizeProps","finalCls","finalStyle","finalProps","_props$onClick","arrowTriangleDownFilled","arrowTriangleUpFilled","backtop","browseOff","clipPath","browse","caretRightSmall","checkCircleFilled","check","chevronDown","chevronLeftDouble","chevronLeft","chevronRightCircle","chevronRightDouble","chevronRight","chevronUp","closeCircleFilled","close","_delete","download","edit1","ellipsis","errorCircleFilled","fileCopy","fileExcel","filePdf","filePowerpoint","fileWord","helpCircleFilled","imageError","infoCircleFilled","minusRectangle","mirror","pageFirst","pageLast","rotation","search","setting","starFilled","timeFilled","video","zoomIn","zoomOut","loadDefaultIcons","Icon","props2","propsSize","sizeClassName","sizeStyle","finalUrl","classNames","querySelectorAll","svg","setAttribute","_props2$onClick","props$1u","hover","prefixIcon","suffixIcon","underline","_Link","emits","emit","linkClass","handleClick","linkContent","prefix","Link","props$1t","align","gutter","justify","calcSize","useListener","listener","onBeforeUnmount","useRowSize","_Row","rowClasses","getRowClasses","rowStyle","currentSize","getMarginStyle","marginRight","getRowGapStyle","rowGap","strategyMap","calcRowStyle","_slot","TAG","_isVNode","props$1s","flex","lg","md","order","pull","sm","span","xxl","_Col","rowContext","colClasses","ColSizeClasses","acc","currSize","sizeProp","sizeObject","getColClasses","colStyle","paddingObj","getPaddingStyle","parseFlex","rowGutter","paddingLeft","paddingRight","Row","Col","_Layout","hasSide","props$1r","_Header","props$1q","_Footer","props$1p","_Aside","props$1o","_Content","Aside","Layout","Header","Footer","Content","props$1n","dashed","layout","_Divider","dividerClassNames","Divider","props$1m","breakLine","separator","useChildComponentSlots","childComponentName","_slots","_slots$default","_item$type$name","endsWith","useChildSlots","_slots$default2","Comment","flat","sizeMap","defaultNeedPolyfill","_chromeMatch$","_safariMatch$","_fireFoxMatch$","chromeMatch","safariMatch","fireFoxMatch","getFlexGapPolyFill","_Space","forceFlexGapPolyfill","getChildSlots","needPolyfill","renderStyle","renderGap","_renderGap$split2","columnGap","gap","separatorContent","spaceClassNames","renderChildren","showSeparator","_Fragment","Space","props$1l","bordered","colon","column","contentStyle","itemLayout","items","labelStyle","tableLayout","descriptionsKey","ItemsType","renderCustomNode","renderVNodeTNode","_node$props","prop","slot","itemTypeIsProps","itemsType","DescriptionsRow","row","itemType","descriptionsProps","layoutIsHorizontal","itemLayoutIsHorizontal","label","labelClass","labelSpan","colspan","contentClass","contentSpan","_Descriptions","getChildByName","getRows","temp","reset","_item$props","tableClass","props$1k","_DescriptionsItem","Descriptions","DescriptionsItem","asyncGeneratorStep","then","_asyncToGenerator","_next","_throw","__esModule","_regeneratorRuntime","asyncIterator","define","wrap","Generator","Context","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","reverse","prev","stop","rval","complete","finish","catch","delegateYield","runtime","regenerator","regeneratorRuntime","accidentalStrictMode","globalThis","props$1j","offsetBottom","offsetTop","onFixedChange","_Affix","_document","affixWrapRef","affixRef","placeholderEL","ticking","isBind","scrollContainer","affixStyle","rAFId","handleScroll","_affixWrapRef$value$g","_affixWrapRef$value","fixedTop","wrapToTop","wrapWidth","wrapHeight","containerTop","calcTop","calcBottom","Window","affixed","placeholderStatus","removeAttribute","bindScroll","_callee","_context","unbindScroll","onActivated","onDeactivated","expose","Affix","factory","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","clipboard","tiny_emitter","tiny_emitter_default","listen","listen_default","src_select","select_default","command","execCommand","err","actions_cut","selectedText","fakeCopyAction","fakeElement","isRTL","getAttribute","padding","margin","yPosition","createFakeElement","actions_copy","HTMLInputElement","actions_default","_options$action","action","hasAttribute","clipboard_typeof","_defineProperties","descriptor","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","getAttributeValue","attribute","Clipboard","_Emitter","subClass","superClass","_inherits","Constructor","protoProps","staticProps","_super","trigger","_this","_classCallCheck","resolveOptions","listenClick","defaultAction","defaultTarget","defaultText","_this2","delegateTarget","currentTarget","clearSelection","focus","getSelection","removeAllRanges","selector","destroy","actions","support","queryCommandSupported","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","__unused_webpack_exports","closest","_delegate","useCapture","listenerFn","elements","bind","nodeList","is","listenNode","listenNodeList","listenSelector","isReadOnly","setSelectionRange","selection","selectNodeContents","addRange","E","ctx","once","evtArr","evts","liveEvents","TinyEmitter","__webpack_module_cache__","moduleId","getter","definition","ANCHOR_SHARP_REGEXP","getOffsetTop","clientTop","props$1i","affixProps","bounds","cursor","targetOffset","onChange","AnchorInjectionKey","_Anchor","anchorRef","links","handleScrollLock","activeLineStyle","ANCHOR_LINE_CLASSNAME","ANCHOR_LINE_CURSOR_CLASSNAME","utilsGetScrollContainer","filters","link","getAnchorTarget","cur","setCurrentActiveLink","matcher","getElementById","_ref2","_props2$onChange","updateActiveLine","_x","_anchorRef$value","handleScrollTo","_ref3","_callee2","_context2","_x2","_callee3","_context3","watchEffect","registerLink","unregisterLink","each","handleLinkClick","renderCursor","localProps","customScroll","_AnchorItem","tAnchor","CLASSNAME_PREFIX","register","unregister","immediate","titleSlot","titleVal","renderTitle","titleAttr","wrapperClass","titleClass","THEME_LIST","DISTANCE","PLACEMENT_OFFSET","center","display","flexDirection","alignItems","PLACEMENT_LIST","props$1g","closeBtn","onClose","onCloseBtnClick","onDurationEnd","useGlobalIcon","tdIcon","resultIcon","_globalConfig$value","ANIMATION_OPTION","fadeIn","placement","fadeInKeyframes","getFadeInKeyframes","setDomStyleAfterAnimation","animate","fadeOut","onFinish","fadeOutKeyframes","marginOffset","getFadeOutKeyframes","styleAfterFadeOut","onfinish","styleAfterAnimation","_Message","_useGlobalIcon","InfoCircleFilledIcon","TdInfoCircleFilledIcon","CheckCircleFilledIcon","TdCheckCircleFilledIcon","ErrorCircleFilledIcon","TdErrorCircleFilledIcon","HelpCircleFilledIcon","TdHelpCircleFilledIcon","CloseIcon","TdCloseIcon","renderTNode","msgRef","status","_props2$onClose","_props2$onCloseBtnCli","clearTimer","setTimer","_props2$onClose2","_props2$onDurationEnd","renderIcon","question","onBeforeMount","onMouseenter","onMouseleave","defaultClose","DEFAULT_Z_INDEX","getUniqueId","MessageList","messageList","getOffset","msgStyles","addChild","msg","mg","removeAll","TMessage","getProps","instanceMap","MessageFunction","handleParams","attachDom","mgKey","wrapper","ins","find","_mg$$","showThemeMessage","extraApi","promise","closeAll","MessagePlugin","$message","funcName","props$1f","auto","basePlacements","viewport","popper","variationPlacements","placements","modifierPhases","getNodeName","getWindow","ownerDocument","isElement","isHTMLElement","isShadowRoot","ShadowRoot","applyStyles$1","enabled","phase","state","attributes","effect","initialStyles","strategy","arrow","reference","requires","getBasePlacement","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","offsetLeft","getLayoutRect","rootNode","getRootNode","isSameNode","host","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","currentNode","css","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mathMax","mathMin","mergePaddingObject","paddingObject","expandToHashMap","hashMap","arrow$1","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","axis","rects","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientHeight","centerToReference","axisProp","centerOffset","_options$element","requiresIfExists","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","passive","getOppositePlacement","getOppositeVariationPlacement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","html","layoutViewport","getViewportRect","clientLeft","getInnerBoundingClientRect","winScroll","scrollHeight","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","flip$2","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","_i","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","some","side","offset$1","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","preventOverflow$1","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","getHTMLElementScroll","visited","modifier","dep","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","merged","orderModifiers","existing","_ref$options","cleanupFn","noopFn","update","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","createPopper","_options$scroll","_options$resize","resize","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","applyStyles","flip","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","sizeClassNames","statusClassNames","useDefaultValue","propsName","_getCurrentInstance","internalValue","_len2","_key2","useDestroyOnClose","refresh","onUpdated","useVModel","modelValue","isVM","isVMP","_len3","_key3","logSet","log","warn","msgContent","IMAGE_REGEXP","FILE_PDF_REGEXP","FILE_EXCEL_REGEXP","FILE_WORD_REGEXP","FILE_PPT_REGEXP","VIDEO_REGEXP","INPUT_FILE_MAP","SIZE_MAP","B","KB","MB","GB","getCurrentDate","needTime","abridgeName","inputName","leftCount","rightCount","leftLength","rightLength","isCn","escape","validateFileType","accept","fileType","fileName","tmpFileType","acceptList","trim","oneRule","getFileList","files","fileList","useImagePreviewUrl","imgUrl","previewUrl","fileRaw","reader","FileReader","readAsDataURL","onload","_event$target","popupProps","destroyOnClose","hideEmptyPopup","overlayClassName","overlayInnerClassName","overlayInnerStyle","overlayStyle","popperOptions","showArrow","triggerElement","defaultVisible","onOverlayClick","onScroll","onScrollToBottom","onVisibleChange","useResizeObserver","ResizeObserver","containerObserver","cleanupObserver","unobserve","disconnect","observe","addObserver","filterEmpty","vnodes","Text","useElement","newEl","Trigger","forwardRef","vm","nextElementSibling","contentRect","_props2$forwardRef","newContentRect","newRect","oldRect","rect1","rect2","_children$","Container","triggerEl","mountContent","emitResize","unmountContent","onResize","onVnodeMounted","POPUP_ATTR_NAME","POPUP_PARENT_ATTR_NAME","getPopperTree","upwards","selectors","recurse","childId","parentKey","_Popup","expandAnimation","_process$env","showTimeout","hideTimeout","_toRefs","_useVModel2","setVisible","overlayEl","popperEl","containerRef","isOverlayHover","env","TEST","assertMouseLeave","onMouseLeave","offs","prefixCls","commonCls","_props2$delay","_delay2$","show","clean","getOverlayStyle","updateOverlayInnerStyle","updatePopper","parentElement","getTriggerType","destroyPopper","_popper","_containerRef$value","ev","clearAllTimeout","onDocumentMouseDown","_popperEl$value","_triggerEl$value","activedPopper","_props2$onOverlayClic","preventDefault","handlerFn","handleEvent","evt","_process$env2","code","getOverlay","getOverlayState","updateScrollTop","handleOnScroll","_props2$onScroll","_e$target","debounceOnScrollBottom","_props2$onScrollToBot","hidePopup","overlay","_withDirectives","withDirectives","mergeProps","visibility","_vShow","Popup","_AnchorTarget","_useConfig","FileCopyIcon","TdFileCopyIcon","toCopyText","div","clip","Message","iconClassName","Anchor","AnchorItem","AnchorTarget","props$1e","maxItemWidth","props$1d","maxWidth","router","props$1c","_Tooltip","popupRef","innerVisible","setInnerVisible","innerTooltipVisible","_useMouse","onMouseMove","clientX","clientY","useMouse","offsetX","onTipVisibleChange","tooltipOverlayClassName","offsetStyle","popupEl","_popupRef$value","_popupRef$value$updat","Tooltip","localTBreadcrumbOrigin","_BreadcrumbItem","_localTBreadcrumb$slo","breadcrumbText","localTBreadcrumb","themeClassName","isCutOff","separatorClass","disableClass","maxLengthClass","textFlowClass","ChevronRightIcon","TdChevronRightIcon","maxWithStyle","maxWith","onBeforeUpdate","separatorPropContent","separatorSlot","proxy","bindEvent","open","$router","location","itemClass","textClass","listeners","stopPropagation","textContent","itemContent","textOverflow","_Breadcrumb","option","Breadcrumb","BreadcrumbItem","dropdownItemProps","divider","_DropdownItem","maxColumnWidth","minColumnWidth","isSubmenu","itemRef","dropdownItemClass","handleItemClick","minWidth","props$1b","hideAfterItemClick","maxHeight","panelBottomContent","panelTopContent","_DropdownMenu","dropdownClass","dropdownMenuClass","scrollTopMap","itemHeight","menuRef","isOverMaxHeight","deep","getContent","renderOptions","_data$forEach","arr","menu","idx","optionItem","onViewIdx","renderIdx","DropdownItem","TDivider","_data$onClick","getOptionsFromChildren","menuNode","_menuNode$","_menuNode$3","_menuNode$4","_menuNode$2","_menuNode$2$default","groupChildren","_item$children","_item$children$conten","_item$children2","_item$children2$prefi","_item$children3","_item$children3$prefi","_item$children4","_item$children4$defau","_groupChildren$filter","_groupChildren$filter2","slotContent","slotPrefixIcon","contentCtx","_v$type","childrenCtx","_v$type2","itemProps","_item$type","_Dropdown","popupElem","isPopupVisible","manualCloseTimeout","_props2$popupProps","_delay$","handleMenuClick","_props2$popupProps2","_props2$popupProps2$o","_props2$popupProps3","_props2$popupProps3$o","handleVisibleChange","_props2$popupProps4","_props2$popupProps4$o","_props2$popupProps5","_props2$popupProps5$o","_renderTNodeJSX","_props2$popupProps6","_getChildComponentSlo","_getChildComponentSlo2","_instance$slots$dropd","getChildComponentSlots","menuSlot","dropdown","useDropdownOptions","popupParams","_options$value","DropdownMenu","Dropdown","props$1a","collapsed","defaultExpanded","expandMutex","expandType","logo","operations","onExpand","_createClass","getTreePaths","ans","getTreeSameParentNodes","DFS","VMenu","isMutex","expandValues","v2","pNode","activeValues","sameParentNodes","sameLevelSubmenuValues","_node$children","_Menu","onCollapsed","mode","menuClass","innerClasses","expandWidth","activeValue","setActiveValue","_useDefaultValue2","setExpand","_props2$onCollapsed","vMenu","isHead","tmp","props$19","tabPanelProps","destroyOnHide","draggable","lazy","panel","removable","onRemove","_TabPanel","renderTNodeContent","tabs","isActive","isMount","tabPanelClass","props$18","addable","dragSort","scrollPosition","onAdd","onDragSort","getDomWidth","TTabNavItem","tabProps","removeBtnClick","onClickNav","navItemClass","TTabNavBar","navs","barRef","navBarClass","navBarStyle","sizePropName","offsetPropName","_props$navs$i","sizeWithUnit","getStyle","traversalTabNavs","tabNavs","_step","_iterator","_createForOfIteratorHelper","itemNode","handleTarget","resultTarget","TTabNav","resizeObserver","panels","ChevronLeftIcon","TdChevronLeftIcon","AddIcon","TdAddIcon","navsContainerRef","navsWrapRef","leftOperationsRef","rightOperationsRef","toRightBtnRef","activeTabRef","maxScrollLeft","getRefs","navsContainer","navsWrap","leftOperations","rightOperations","toRightBtn","activeTab","isVerticalPlacement","canToLeft","canToRight","wrapTransformStyle","navsContainerStyle","iconBaseClass","leftIconClass","rightIconClass","addIconClass","navContainerClass","navScrollContainerClass","navsWrapClass","setOffset","calcValidOffset","navsContainerWidth","activeTabWidth","calcPrevOrNextOffset","handleWheel","deltaX","deltaY","handleActiveTabScroll","depElement","tabWidth","tabOffset","rightOperationsWidth","leftOperationsWidth","calculateOffset","getMaxScrollLeft","observer","_resizeObserver","useResize","handleAddTab","_props$onAdd","setActiveTab","$el","_useDragSort","dragged","enterTargets","dragstart","dragend","dragover","dragenter","outline","dragleave","_enterTargets","enterTarget","drop","tabNav","_props$onDragSort","dragIndex","targetIndex","currentIndex","endIndex","setNavsWrap","useDragSort","renderNavsContent","_panel$children","nav","tabClick","Transition","appear","navContent","onWheel","_Tabs","tabValue","setTabValue","onTabAdd","_props2$onAdd","onTabChange","onTabRemove","_props2$onRemove","getSlotPanels","flatContent","ct","renderHeader","_props2$list","actionContent","panelsData","selfItem","tabNavProps","_props2$list2","TTabPanel","Tabs","TabPanel","props$17","FakeArrow","stroke","_Submenu","submenu","setSubPopup","closeParentPopup","menuItems","popupVisible","isCursorInPopup","isOpen","_expandValues$value","isNested","popupWrapperRef","subPopupRef","submenuRef","transitionClass","submenuClass","arrowClass","addMenuItem","related","relatedTarget","loopInPopup","handleMouseLeavePopup","passSubPopupRefToParent","handleMouseEnter","targetInPopup","handleMouseLeave","inPopup","toElement","handleEnterPopup","handleSubmenuItemClick","renderPopup","popupWrapper","realPopup","_menu$vMenu","_node","_node2","_node3","normalSubmenu","needRotate","events","silent","$options","_useCollapseAnimation","beforeEnter","oldPaddingTop","paddingTop","oldPaddingBottom","paddingBottom","enter","oldOverflow","afterEnter","beforeLeave","leave","afterLeave","onEnter","onAfterEnter","onBeforeLeave","onLeave","vShow","renderSubmenu","_HeadMenu","_ctx$slots$default2","_ctx$slots3","_ctx$slots$content2","_ctx$slots4","setExpanded","handleTabChange","handleClickSubMenuItem","handleSubmenuExpand","getChild","_activeMenuItem$onCli","activeMenuItem","innerRef","logoRef","operationRef","initVMenu","parentValue","_node$type","_node$type2","nodeValue","_props2$logo","_ctx$slots$logo","_ctx$slots5","_props2$operations","_ctx$slots$operations","_ctx$slots6","_ctx$slots$options","_ctx$slots7","_ctx$slots$default3","_ctx$slots8","_ctx$slots$content3","_ctx$slots9","_item$vnode$","props$16","routerLink","_MenuItem","_menu$collapsed","_onClick$value","_submenu$closeParentP","methods","_router$value","liContent","props$15","_MenuGroup","Menu","HeadMenu","Submenu","MenuItem","MenuGroup","props$14","allowInputOverMax","autoWidth","autofocus","borderless","clearable","inputClass","maxcharacter","maxlength","readonly","showClearIconOnEmpty","showLimitNumber","spellCheck","tips","onBlur","onClear","onCompositionend","onCompositionstart","onFocus","onKeydown","onKeypress","onKeyup","onPaste","onValidate","useReadonly","componentReadonly","formReadonly","_context$beforeReadon","_context$afterReadonl","_formReadonly$readonl","beforeReadonly","afterReadonly","useCLASSNAMES","labelTop","inline","formItem","formItemWithHelp","formItemWithExtra","controls","controlsContent","extra","help","successBorder","ValidateStatus","FormInjectionKey","FormItemInjectionKey","useLengthLimit","limitNumber","_params$value2","innerStatus","_limitNumber$value$sp2","tStatus","onValidateChange","_params$value$onValid","_params$value3","getValueByLimitNumber","inputValue","oldStr","_params$value","getOutputValue","useInput","isComposition","compositionValue","clearIconRef","innerClickElement","innerValue","setInnerValue","isHover","renderType","inputRef","_useLengthLimit","showClear","_inputRef$value","setInputElValue","inputEl","sV","inputValueChangeHandle","_innerValue$value","_inputRef$value4","oldVal","isNumberType","newVal","blur","_inputRef$value2","emitFocus","_props$onFocus","formatAndEmitBlur","_props$onBlur","_clearIconRef$value","tagName","_clearIconRef$value2","isClearIcon","handleBlur","onHandleCompositionend","_props$onCompositione","onHandleCompositionstart","_props$onCompositions","onRootClick","_inputRef$value3","emitPassword","toggleType","handleInput","checkInputType","inputType","emitClear","_props$onClear","onClearIconMousedown","useInputWidth","inputPreRef","observerTimer","updateInputWidth","_Input","showInput","keepWrapperWidth","BrowseIcon","TdBrowseIcon","BrowseOffIcon","TdBrowseOffIcon","CloseCircleFilledIcon","TdCloseCircleFilledIcon","INPUT_WRAP_CLASS","INPUT_TIPS_CLASS","_useInput","inputHandle","inputEventHandler","mouseEvent","handleKeydown","_props$onEnter","_props$onKeydown","tmpValue","handleKeyUp","_props$onKeyup","handleKeypress","_props$onKeypress","onHandlePaste","_props$onPaste","clipData","clipboardData","pasteValue","getData","onHandleMousewheel","_props$onWheel","onInputMouseenter","_props$onMouseenter","onInputMouseleave","_props$onMouseleave","useInputEventHandler","tPlaceholder","_props2$placeholder","inputAttrs","_props2$autocomplete","unselectable","spellcheck","wrapClasses","inputEvents","_compositionValue$val","_inputValue$value","_compositionValue$val2","passwordIcon","limitNode","labelContent","suffixContent","passwordClass","onMousedown","tipsClasses","inputGroupProps","separate","_InputGroup","CLASS","Input","InputGroup","props$13","allowInputOverLimit","decimalPlaces","inputProps","largeNumber","fillZero","isInputNumber","num","eCount","negativeCount","dotCount","removeInvalidZero","decimal","largeIntNumberAdd","num1","num2","number1","number2","isFirstLarger","maxNumber","minNumber","newNumber","minIndex","largePositiveNumberAdd","_num1$split2","_num1$split2$","intNumber1","_num1$split2$2","decimalNumber1","_num2$split2","_num2$split2$","intNumber2","_num2$split2$2","decimalNumber2","integerSum","newDecimalNumber1","newDecimalNumber2","decimalNumberSum","decimalLength","compareLargeIntegerNumber","compareLargeDecimalNumber","formatENumber","_num$split2","_num$split4","integer","_num$split4$","initDecimal","zeroCount","multipleZero","n1","d2","isInfinity","isSafeNumber","MIN_SAFE_INTEGER","compareNumber","isSafeNumberCompare","isInfinityCompare","_formatENumber$split2","integer1","decimal1","_formatENumber$split4","integer2","decimal2","integer1IsNegative","integer2IsNegative","compareLargeNumber","largeIntegerNumberSubtract","stayZero","finalNumber","largePositiveNumberSubtract","_maxNumber$split2","_maxNumber$split2$","_minNumber$split2","_minNumber$split2$","integerNumber","decimalNumber","addOneNumber","formatDecimal","places","toFixed","_num$toString$split2","largeNumberToFixed","_decimalPlaces$enable2","_decimalPlaces$enable","enableRound","decimalPlacesToFixedNum","_number$split2","_decimalNumber$match","leadZeroNum","leadNineNum","needAdded","positiveAdd","_num1$toString$split$","_num2$toString$split$","r1","r2","newNumber1","newNumber2","digit","pow","cm","positiveSubtract","_num1$toString$split$2","_num2$toString$split$2","getStepValue","op","lastValue","tStep","isFirstNegative","isSecondNegative","largeNumberAdd","largeNumberSubtract","putInRangeNumber","getMaxOrMinValidateResult","specialCode","formatUnCompleteNumber","isToFixed","useInputNumber","tValue","setTValue","userInput","tDisabled","isReadonly","isError","disabledReduce","canReduceNumber","disabledAdd","canAddNumber","reduceClasses","addClasses","getUserInput","inputStr","activeElement","fixedNumber","completeValue","_props$onValidate","handleStepValue","overLimit","handleReduce","handleAdd","_props$onBlur3","_props$onBlur2","keyEvent","ArrowUp","ArrowDown","onInnerInputChange","_number$match","_number$match2","tmpNumber","canInputNumber","lastNumber","canSetValue","_InputNumber","RemoveIcon","TdRemoveIcon","ChevronDownIcon","TdChevronDownIcon","ChevronUpIcon","TdChevronUpIcon","reduceIcon","addIcon","tipsNode","TInput","InputNumber","props$12","allowInput","collapsedItems","defaultInputValue","minCollapsedNum","multiple","defaultPopupVisible","reserveKeyword","tagInputProps","tagProps","valueDisplay","onInputChange","onPopupVisibleChange","onTagChange","props$11","excessTagsDisplayType","trimLeft","trimRight","tinycolor","opts","rgb","ok","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","q","mod","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","hex","pad2","rgbaToArgbHex","convertDecimalToHex","_desaturate","amount","toHsl","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","toRgb","_darken","_spin","hue","_complement","polyad","_splitcomplement","_analogous","results","slices","part","ret","_monochromatic","toHsv","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","random","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","parms","level","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","props$10","closable","_Tag","tagGlobalConfig","tagClass","tagStyle","getTagColorStyle","textStyle","_tinycolor$toRgb","borderColor","getCloseIcon","tagContent","props$$","defaultChecked","checkedProps","uncheckedProps","ARROW_DOWN_REG","ARROW_UP_REG","ARROW_LEFT_REG","ARROW_RIGHT_REG","ESCAPE_REG","SPACE_REG","ENTER_REG","SHIFT_REG","CLEAR_REG","ALL_REG","CHECKED_CODE_REG","_CheckTag","innerChecked","setInnerChecked","checkTagProps","keyboardEventListener","_e$key","onCheckboxFocus","onCheckboxBlur","Tag","props$_","_CheckTagGroup","checkTagGroupClasses","onCheckTagChange","getTagContent","CheckTag","CheckTagGroup","_TagInput","NAME_CLASS","CLEAR_CLASS","BREAK_LINE_CLASS","_useDefault2","useDefault","tInputValue","setTInputValue","_toRefs2","_useHover","addHover","cancelHover","useHover","isFocused","_useDragSorter","sortOnDraggable","onDragOverCheck","draggingIndex","dragStartData","isDropped","startInfo","nodeX","nodeWidth","mouseX","onDragOver","record","targetClassNameRegExp","_target$getBoundingCl","targetNodeMiddleX","draggingNodeLeft","draggingNodeRight","onDragStart","_target$getBoundingCl2","onDrop","onDragEnd","getDragProps","onDragstart","onDragover","onDragend","dragging","useDragSorter","_useTagScroll","tagInputRef","scrollDistance","scrollElement","mouseEnterTimer","isScrollable","updateScrollElement","inputElement","updateScrollDistance","_scrollElement$value","behavior","scrollToRight","_tagInputRef$value","scrollToLeft","scrollToRightOnEnter","scrollToLeftOnLeave","useTagScroll","_useTagList","tagValue","setTagValue","oldInputValue","_onRemove$value","clearAll","onInnerEnter","_tagValue$value","valueStr","isLimitExceeded","onInputBackspaceKeyUp","onInputBackspaceKeyDown","isDelete","_onRemove$value2","renderLabel","_newList$map","displayNode","newList","_getDragProps$value","more","collapsedTags","collapsedSelectedItems","useTagList","tagInputPlaceholder","showClearIcon","_tagValue$value2","onInputEnter","_context$e","_context$e$preventDef","onInputCompositionstart","_inputProps$value","_inputProps$value$onC","onInputCompositionend","_inputProps$value2","_inputProps$value2$on","onClearClick","_props2$onClear","onMouseEnter","onInnerFocus","_props2$onFocus","onInnerBlur","_props2$onBlur","onInnerChange","scrollElementClass","_inputProps$value3","_tagValue$value3","suffixIconNode","prefixIconNode","suffixClass","TagInput","DEFAULT_KEYS","useOverlayInnerStyle","innerPopupVisible","disable","matchWidthFunc","popupElement","SCROLLBAR_WIDTH","otherOverlayInnerStyle","getAutoWidthPopupStyleWidth","_popupProps$value","tOverlayInnerStyle","_popupProps$value2","onInnerPopupVisibleChange","_props$onPopupVisible","newVisible","COMMON_PROPERTIES","useSingle","_props$defaultInputVa","propsInputValue","isSingleFocus","setInputValue","commonInputProps","onInnerClear","_context2$e","renderPrefixContent","singleValueDisplay","_props$valueDisplayOp","_props$valueDisplayOp2","valueDisplayOptions","usePlaceholder","useInputDisplay","renderInputDisplay","displayedValue","_props$valueDisplayOp3","_props$valueDisplayOp4","renderPlaceholder","_props$valueDisplayOp5","_props$valueDisplayOp6","singleInputValue","renderSelectSingle","_context$attrs","iKeys","getInputValue","prefixContent","_context$slots","inputClassProps","overlayState","_popupRef$value2","_SelectInput","BASE_CLASS_BORDERLESS","BASE_CLASS_MULTIPLE","BASE_CLASS_POPUP_VISIBLE","BASE_CLASS_EMPTY","selectInputRef","_useOverlayInnerStyle","_useSingle","_useMultiple","isMultipleFocus","tags","onTagInputChange","_props$onTagChange","tagInputValue","multipleInputValue","renderSelectMultiple","useMultiple","isFocus","_popupVisible$value","addKeyboardEventListener","_props2$onPopupVisibl","_selectInputRef$value","_ctx$e","_tagInputRef$value$fo","tabIndex","_popupVisible$value2","visibleProps","mainContent","SelectInput","props$Z","checkAll","props$Y","lazyLoad","CheckboxGroupInjectionKey","marginBottom","IntersectionObserver","io","isIntersecting","rootMargin","_Checkbox","needRipple","stopLabelTrigger","labelRef","checkboxGroupData","tName","tChecked","_checkboxGroupData$va","isCheckAll","checkedValues","maxExceeded","tIndeterminate","labelClasses","handleChange","handleCheckboxChange","onCheckedChange","handleLabelClick","_useCheckboxLazyLoad","ioObserver","showCheckbox","handleLazyLoad","useCheckboxLazyLoad","_useKeyboardEvent","useKeyboardEvent","props$X","_Group$1","optionList","intersectionLen","optionItems","onCheckAllChange","getAllCheckboxValue","currentValue","_props2$options","_optionList$value","Checkbox","nodes","getOptionListBySlots","role","CheckboxGroup","_Group","getSingleContent","optionsMap","getNewMultipleValue","optionValue","valueIndex","isCheck","selectInjectKey","_Option","createAble","rowIndex","trs","scrollType","isVirtual","bufferSize","selectProvider","isReachMax","selectValue","isSelected","selectName","liRef","isIndeterminate","hoverIndex","labelText","handleCheckboxClick","_selectProvider$value","_selectProvider$value2","handleCreate","handleValueChange","selectedOptions","getSelectedOptions","handlePopupVisibleChange","emitBlur","optionChild","props$W","_OptionGroup","_props2$label","props$V","creatable","selectInputProps","valueType","onCreate","onSearch","usePanelVirtualScroll","_props$scroll3","_props$scroll4","_props$scroll5","_props$scroll6","_props$scroll7","_props$scroll","_props$options$value","_props$scroll2","threshold","_ref$fixedHeight","fixedHeight","_ref$lineHeight","lineHeight","_ref$bufferSize","_ref$threshold","visibleData","cachedHeight","cachedScrollY","updateId","visibleCount","beforeScrollTop","$index","maxScrollY","average","translateY","firstRow","updateVisibleData","calculateScrollY","_anchorDom$getBoundin","anchorDom","anchorDomHeight","_state$visibleData","tr","scrollY","_state$visibleData$","_container$value","refreshContainer","ob","intersectionRatio","_container$value2","handleRowMounted","useVirtualScroll","popupContentRef","isFixedRowHeight","rowHeight","_ref$trs","_ref$visibleData","_ref$handleScroll","handleVirtualScroll","_ref$scrollHeight","_ref$translateY","_ref$handleRowMounted","lastScrollY","onInnerVirtualScroll","_props$popupContentRe","_props$popupContentRe2","cursorStyle","panelStyle","SelectPanel","TdSelectProps","renderDefaultTNode","tSelect","showCreateOption","displayOptions","_usePanelVirtualScrol","renderOptionsContent","OptionGroup","group","Option","dropdownInnerSize","renderPanel","extraStyle","_Select","innerInputValue","orgValue","setOrgValue","selectPanelRef","_props2$keys","_props2$keys2","_props2$keys3","_useSelectOptions","optionsCache","_props$options","dynamicIndex","innerOptions","getFormatOption","_keys$value","optionsSlots","groupSlots","_group$props","groupOption","_step2","_iterator2","_step3","_iterator3","optionsList","getOptionsList","_step4","_iterator4","filterMethods","_option$label","_option$label$toLower","checkAllOption","exactMatch","fuzzyMatch","useSelectOptions","getOption","_useDefaultValue4","setInnerPopupVisible","placeholderText","displayText","resLabel","getMultipleContent","valueDisplayParams","_val$slice","_optionsMap$value$get","removeTag","displayValue","isFilterable","isRemoteSearch","_ref4$trigger","_props2$onCreate","optionalList","_useKeyboardControl","filteredOptions","virtualFilteredOptions","_selectPanelRef$value","handleKeyDown","_optionsList$value$ne","_optionsList$value$ne2","optionsListLength","newIndex","finalOptions","_finalOptions$hoverIn","useKeyboardControl","lockedValues","formattedOrgValue","SelectProvider","handlerInputChange","handleOptionEmitBlur","checkValueInvalid","handleSearch","_props2$onSearch","_selectPanelRef$value2","handlerPopupVisibleChange","handlerPopupScrollToBottom","_ref6","_popupProps$onScroll","_popupProps$onScrollT","newCache","addCache","_selectPanelRef$value3","firstSelectedNode","elementBottomHeight","updateValue","_ref7","restPopupProps","onkeydown","_ref8","_ref9","_props2$onEnter","_ref10","_props2$onBlur2","_ref11","picker","Select","props$U","append","prepend","_InputAdornment","renderAddon","addon","addonNode","isContentNode","defaultSlot","InputAdornment","props$T","defaultCurrent","foldedMaxPageBtn","maxPageBtn","pageEllipsisMode","pageSize","defaultPageSize","pageSizeOptions","selectProps","showFirstAndLastPageBtn","showJumper","showPageNumber","showPageSize","showPreviousAndNextBtn","totalContent","onCurrentChange","onPageSizeChange","_Pagination","innerCurrent","setInnerCurrent","innerPageSize","setInnerPageSize","PageFirstIcon","TdPageFirstIcon","PageLastIcon","TdPageLastIcon","ChevronLeftDoubleIcon","TdChevronLeftDoubleIcon","ChevronRightDoubleIcon","TdChevronRightDoubleIcon","EllipsisIcon","TdEllipsisIcon","_usePaginationClasses","pageCount","paginationClass","totalClass","sizerClass","preBtnClass","nextBtnClass","btnWrapClass","btnMoreClass","jumperClass","jumperInputClass","simpleClass","getButtonClass","usePaginationClasses","CLASS_MAP","_useMoreAction","prevMore","nextMore","curPageLeftCount","curPageRightCount","isPrevMoreShow","isNextMoreShow","useMoreAction","jumpIndex","isFolded","sizeOptions","isMidEllipsis","pages","foldedStart","foldedEnd","toPage","pageIndex","pageInfo","handlePageChange","prevPage","nextPage","prevMorePage","nextMorePage","onSelectorChange","isIndexChange","_props2$onChange2","onJumperChange","trunc","Jumper","TInputAdornment","$event","onMouseover","onMouseout","props$S","showCurrent","_PaginationMini","RoundIcon","TdRoundIcon","titleConfig","disabledConfig","_props2$onChange3","Pagination","PaginationMini","props$R","sequence","stepItemProps","_StepItem","stepsState","stepsProps","CheckIcon","TdCheckIcon","canClick","onStepClick","setCurrent","statusClass","baseClass","iconClass","defaultIcon","_Steps","indexMap","handleStatus","matchIndex","getChildComponentByName","getOptions","stepIndex","StepItem","Steps","props$Q","onHover","stickyItemProps","popup","_StickyItem","baseProps","TdStickyToolProps","basePopupProps","baseWidth","popupPlacement","selfWidth","handleClickItem","handleHoverItem","_StickyTool","getListBySlots","_props2$offset","handleHover","_props2$onHover","getList","StickyItem","StickyTool","props$P","visibleHeight","_BackTop","BacktopIcon","TdBackTopIcon","getContainer","scrollDOM","onscroll","_scrollDOM","defaultContent","_createTextVNode","positionStyle","insetInlineEnd","insetBlockEnd","targetNode","getBackTo","BackTop","props$O","highlightKeyword","textareaProps","onSelect","_HighlightOption","keyword","_content$match","regExp","splitKeyword","_words$value","AutoCompleteOptionList","optionClasses","tOptions","onOptionClick","liNode","onKeyInnerPress","_tOptions$value$newIn","findIndex","_tOptions$value$_newI","addKeyboardListener","removeKeyboardListener","labelNode","_slots$option","HighlightOption","_AutoComplete","optionListRef","triggerWidth","popupClasses","popupInnerClasses","innerInputProps","_optionListRef$value","onInnerCompositionend","_props2$onComposition","onInnerCompositionstart","_props2$onComposition2","onInnerSelect","_props2$onSelect","listContent","topContent","bottomContent","panelContent","AutoComplete","getFakeArrowIconClass","cascaderContext","getNodeStatusClass","checkStrictly","expandedActive","isLeaf","treeStore","showAllLevels","getNodes","getPath","at","getPanels","treeNodes","getFullPathLabel","getTreeValue","treeValue","isEmptyValues","handleRemoveTagEffect","setValue","setChecked","isChecked","getNode","getModel","Item","getCascaderItemClass","getCascaderItemIconClass","RenderLabelInner","inputVal","texts","doms","RenderLabelContent","RenderCheckBox","checkProps","isOptionChildAndMultiple","props$M","load","valueMode","Panel","CascaderProps","renderTNodeJSXDefault","handleExpand","propsTrigger","setTreeNodes","setExpend","refreshNodes","replaceExpanded","resetChecked","expendClickEffect","renderItem","getExpanded","isSelectAll","valueChangeEffect","renderList","isFilter","segment","_props$cascaderContex","nodeKey","TreeNodeModel","actived","getLevel","getIndex","isFirst","isLast","newData","insertAfter","_node$parent","getParents","getRoot","getSiblings","childrenModel","walk","shift","pnode","syncAttrs","cleanData","attr","dataAttrValue","settableStatus","activable","checkable","settableProps","syncableProps","privateKey","TreeNode","propChildren","propLabel","propDisabled","model","vmCheckable","vmIsLeaf","vmIsFirst","vmIsLast","vmIsRest","vmIsLocked","expandAll","uniqueId","nodeMap","privateMap","initActived","initExpanded","loadChildren","initChecked","updateChecked","reflow","checkedMap","expandLevel","expandedMap","isActivable","activedMap","appendTo","updateRelated","_this3","targetPosNode","siblings","prevLength","prevIndex","sibling","insert","updateParents","filterMap","_loadChildren","_this4","setDisabled","parents","_this$tree","hasFilter","nodeModel","_this$tree2","allowFoldNodeOnFilter","expandVisible","disableCheck","isDisabledState","_tree$config","isCheckable","childChecked","lockState","isExpanded","isVisible","updateChildren","directly","shouldExpandNodes","expandParent","_tree$config2","isExpandMutex","snode","afterExpanded","setActived","isActived","isAction","getActived","prevKeys","activeMultiple","hasEnableUnCheckedChild","expectState","getChecked","spreadChildrenChecked","spreadParentChecked","getRelatedNodes","isRest","_this5","spreadChildren","_this6","spreadParents","TreeStore","onLoad","onReflow","onUpdate","updatedMap","prevFilter","updateTick","shouldReflow","emitter","all","hasChanged","refreshState","getParent","conf","para","spec","parseNodeData","pm","lockFilterPathNodes","stateId","updatedNodes","nodePrivateKey","resetActived","added","difference","removed","setExpandedDirectly","updateExpanded","withParents","_this$config","childNode","relatedNodes","relatedNode","allNodes","lock","currentFilter","useCascaderContext","setPopupVisible","_useContext","statusContext","scopeVal","expend","setInputVal","useContext","updatedTreeNodes","_cascaderContext$valu","treeNodesEffect","updateExpend","_cascaderContext$valu2","tn","expandedArr","treeStoreExpendEffect","replaceChecked","_props$keys","reload","store","JSON","stringify","treeProps","setConfig","_cascaderContext$valu3","isValueInvalid","getCascaderValue","getCascaderItems","_statusContext$treeSt","_Cascader","_useCascaderContext","_node2$","inputPlaceholder","arrayValue","renderValueDisplay","cascaderClassNames","renderSuffixIcon","_props2$selectInputPr","_props2$selectInputPr2","_props2$selectInputPr3","_props2$selectInputPr4","_props2$selectInputPr5","_props2$selectInputPr6","_props2$selectInputPr7","_props2$selectInputPr8","_props2$selectInputPr9","_props2$selectInputPr10","_props2$selectInputPr11","_props2$selectInputPr12","closeIconClickEffect","_CascaderPanel","Cascader","CascaderPanel","isoWeeksInYear","isLeapYear","day","dayjs","TIME_FORMAT","extractTimeFormat","parseToDayjs","timeOfDay","dateText","yearStr","weekStr","weekFormatStr","firstWeek","weekCounts","nextWeek","quarterStr","quarterFormatStr","firstQuarter","nextQuarter","isValidDate","formatDate","newDate","targetFormat","_ref3$dayjsLocale","autoSwap","dayjsDateList","da","formatRange","dayJsDate","formatSingle","calcFormatTime","timeFormat","timeArr","timeFormatArr","formatTime","defaultTime","_result","getDefaultFormat","_ref4$mode","enableTimePicker","initYearMonthTime","_ref5$mode","_ref5$timeFormat","defaultYearMonthTime","useSingleValue","_value$value","_value$value2","_value$value3","_value$value4","formatRef","cacheValue","_extends","isBetween","weeks","weekYear","longDateFormat","localeData","isoWeekYear","isoWeek","offsetName","zone","A","afternoon","milliseconds","SS","SSS","ss","H","HH","DD","Do","MMM","MMMM","Y","YY","YYYY","Z","ZZ","regex","parser","hours","customParseFormat","parseTwoDigitYear","minutes","seconds","getDaysInMonth","isSameYear","date1","date2","isSameQuarter","isSameMonth","isSameWeek","isSameDate","compareAsc","d1","outOfRanges","getToday","subtractMonth","addMonth","getWeeks","_ref5$showWeekOfYear","showWeekOfYear","_ref5$disableDate","disableDate","minDate","maxDate","_ref5$dayjsLocale","_ref5$cancelRangeSele","cancelRangeSelectLimit","prependDay","getFirstDayOfMonth","appendDay","getLastDayOfMonth","maxDays","daysArr","currentDay","firstDayOfMonth","lastDayOfMonth","dayjsObj","setDate","additional","dataList","flagActive","_objectDestructuringEmpty","hoverStart","hoverEnd","_args$type","_args$isRange","isRange","_args$multiple","_item","isStart","isHoverStart","isEnd","isHoverEnd","highlight","startOfRange","endOfRange","hoverHighlight","hoverStartOfRange","hoverEndOfRange","_value$some","extractTimeObj","matchedMeridiem","_matchedTimeStr$0$spl2","_matchedTimeStr$0$spl3","_matchedTimeStr$0$spl4","_matchedTimeStr$0$spl5","_matchedTimeStr$0$spl6","weekOfYear","quarterOfYear","advancedFormat","dayJsIsBetween","datePickerProps","needConfirm","presets","presetsPlacement","timePickerProps","onConfirm","onPick","onPresetClick","TDateHeader","onMonthChange","onYearChange","onJumperClick","yearOptions","initOptions","showMonthPicker","nearestYear","_yearOptions$value$fi","monthOptions","extraYear","maxYear","loadMoreYear","labelMap","handlePanelTopClick","handlePanelBottomClick","_e$stopPropagation","_e$stopPropagation2","_props$onMonthChange","TSelect","_props$onYearChange","createTextVNode","TDatePickerCell","Dayjs","cellClass","_extractTimeObj","nextHours","setHours","setMinutes","setSeconds","setMilliseconds","_props$onMouseEnter","_extractTimeObj2","TDateTable","onCellClick","onCellMouseEnter","onCellMouseLeave","weekArr","wi","showThead","activeRowCss","targetValue","_value$map3","targetDayjs","isSomeYearWeek","_startObj$locale","_startObj$locale$week","_endObj$locale","_endObj$locale$week","_value$map2","startObj","endObj","startYear","startWeek","endYear","endWeek","targetObj","targetYear","targetWeek","_props$onCellMouseLea","col","AM","PM","MERIDIEM_LIST","TIME_PICKER_EMPTY","DEFAULT_STEPS","EPickerCols","TWELVE_HOUR_FORMAT","props$L","disableTime","hideDisabledTime","onInput","onOpen","BooleanType","validateInputValue","formatInputValue","hour","minute","second","milliSecond","panelOffset","SinglePanel","panelColProps","cols","Props","localeMeridiems","triggerScroll","resetTriggerScroll","isShowPanel","bodyRef","maskRef","colsRef","dayjsValue","isStepsSet","updateTimeScrollPos","renderCol","getPickerCols","getItemHeight","_maskRef$value","maskDom","timeItemCanUsed","colIdx","_props$disableTime","millisecond","partial","getColList","colStep","colList","_props$disableTime2","getScrollDistance","itemIdx","_getItemHeight","timeItemTotalHeight","_colsRef$idx","_props$onChange","formattedVal","_getItemHeight2","availableArr","calcVal","closestLookup","_dayjsValue$value$col","_dayjsValue$value","currentHour","_scrollCtrl$scrollTo","scrollCtrl","scrollToTime","_scrollCtrl$scrollTo2","isAutoScroll","_dayjsValue$value$col2","_dayjsValue$value2","_getColList","isCurrent","colItem","_dayjsValue$value$col3","_dayjsValue$value3","colVal","_cols$value$map","_cols$value","_cols$value$map2","_cols$value2","_props$onChange2","_props$onChange3","handleTimeItemClick","_TimePickerPanel","panelProps","activeIndex","isFooterDisplay","handleConfirmClick","panelRef","showNowTimeBtn","formattedValue","panelColUpdate","renderFooter","presetValue","presetVal","_props$handleConfirmC","TPanelContent","tableData","onTimePickerChange","defaultTimeValue","_props$onJumperClick","_props$onCellClick","_props$onCellMouseEnt","TTimePickerPanel","_isSlot","TDateFooter","selectedValue","onConfirmClick","presetsClass","footerClass","_props$onPresetClick","preset","_props$onConfirmClick","TExtraContent","showPanelFooter","useDisableDate","availableMode","isEnabled","before","after","compareMin","compareMax","isEnabledDate","useRangeValue","isFirstValueSelected","PARTIAL_MAP","first","useTableData","_props$firstDayOfWeek","monthLocal","quarterLocal","_ref6$disableDate","_ref6$dayjsLocale","_ref6$cancelRangeSele","quarterArr","getQuarters","_params$disableDate","_params$dayjsLocale","_params$cancelRangeSe","MonthArr","getMonths","_ref7$disableDate","_ref7$dayjsLocale","_ref7$cancelRangeSele","yearArr","getYears","TSinglePanel","onPanelClick","_getDefaultFormat","disableDateOptions","panelContentProps","extraProps","_props$onPanelClick","_DatePicker","_useSingleValue","isHoverCell","defaultInputProps","newMonth","newYear","newTime","_props$popupProps$ove","_props$popupProps","_props$popupProps2","_props$popupProps3","_props$popupProps3$on","_props$popupProps4","_props$popupProps4$on","CalendarIcon","TdCalendarIcon","_props2$onPick","processDate","onTagRemoveClick","removeDate","onTagClearClick","monthCount","_props2$onPick2","nextDate","_props2$onConfirm","nextValue","_formatRef$value","dateValue","covertToDate","_inputRef$value$focus","TSelectInput","datePickerPanelProps","onTimeChange","_DatePickerPanel","triggerMap","_props$onTimeChange","_props$onConfirm","_props$onYearChange2","_props$onMonthChange2","panelClick","dateRangePickerProps","panelPreselection","rangeInputProps","props$K","calcArrayValue","_RangeInput","_innerValue$value2","isShowClearIcon","inputRefs","firstInputRef","secondInputRef","handleClear","handleEnter","rangeValue","handleFocus","_props2$onMouseenter","_props2$onMouseleave","firstInputElement","secondInputElement","_inputRefs$value","_ref3$position","_inputRefs$value2","_ref4$position","_inputRefs$value3","_ref5$position","_innerValue$value3","_innerValue$value8","prefixIconContent","suffixIconContent","RangeInputContent","_innerValue$value4","_innerValue$value5","_innerValue$value6","_ref12","_innerValue$value7","_ref14","_props2$onClick2","_ref15","_innerValue$value9","_ref16","_innerValue$value10","_ref17","_innerValue$value11","_ref18","_innerValue$value12","props$J","_RangeInputPopup","RangeInput","RangeInputPopup","TRangePanel","hoverValue","hidePreselection","startTableData","endTableData","dateCorrection","partialIndex","onlyYearSelect","_DateRangePicker","_useRange","isMountedRef","_useRangeValue","useRange","notValidIndex","nextIndex","correctedDate","nextInputValue","changedInputValue","currentDate","nextTime","_props2$onPresetClick","nextVal","_year$value","_year$value2","_year$value3","_year$value4","_initYearMonthTime","defaultYear","defaultMonth","TRangeInputPopup","dateRangePickerPanelProps","_DateRangePickerPanel","DatePicker","DatePickerPanel","DateRangePicker","DateRangePickerPanel","defaults","_merge","default_date_options","isValidFormat","strictMode","formatDelimiter","delimiters","delimiter","dateDelimiter","dateAndFormat","zippedArr","zip","dateObj","_n","F","_step$value","_iterableToArrayLimit","dateWord","formatWord","fullYear","startsWith","parsedYear","getUTCDate","isFinite","invalidType","_assertString","encodeURI","default_fqdn_options","allow_trailing_dot","allow_wildcard","parts","tld","require_tld","allow_numeric_tld","ignore_max_length","allow_underscores","_interopRequireDefault","require$$1","isIP","IPv4AddressRegExp","IPv6AddressRegExp","IPv4SegmentFormat","IPv4AddressFormat","IPv6SegmentFormat","default_email_options","require_display_name","allow_display_name","display_email","splitNameAddress","display_name","display_name_without_quotes","validateDisplayName","defaultMaxEmailLength","domain","lower_domain","host_blacklist","_checkHost","host_whitelist","user","domain_specific_validation","username","_isByteLength","_user_parts","gmailUserPart","_isFQDN","allow_ip_domain","_isIP","noBracketdomain","blacklisted_chars","allow_utf8_local_part","quotedEmailUserUtf8","quotedEmailUser","emailUserUtf8Part","emailUserPart","user_parts","require$$2","require$$3","require$$4","require$$5","isValueEmpty","default_url_options","validate_length","max_allowed_length","allow_fragments","allow_query_components","protocol","auth","hostname","port","port_str","ipv6","require_valid_protocol","protocols","require_protocol","allow_protocol_relative_urls","require_host","disallow_auth","_auth$split","_auth$split2","password","ipv6_match","wrapped_ipv6","require_port","VALIDATE_MAP","email","isEmail","strs","validate","validateOneRule","_validateOneRule","rule","validateResult","vOptions","vValidateFun","validateRule","_x3","_x4","_validate","rules","props$I","for","labelAlign","labelWidth","showErrorMessage","statusIcon","getFormItemClassName","_FormItem","CLASS_NAMES","formItemClassPrefix","needRequiredMark","_props2$requiredMark","isRequired","innerRules","hasLabel","hasColon","FROM_LABEL","getDefaultIcon","errorList","verifyStatus","SUCCESS","errorClasses","contentClasses","successList","TO_BE_VALIDATED","resetValidating","needResetField","resetHandler","resetField","resetType","_args","lodashSet","emptyValue","lodashGet","initialValue","errorMessages","_form$errorMessage","_props2$rules","lastIndexOf","pRuleName","analysisValidateResult","_result$rules","resultList","allowSetValue","vars","validateHandler","_yield$analysisValida","innerSuccessList","innerErrorList","freeShowErrorMessage","FAIL","validateOnly","_callee4","_yield$analysisValida2","_context4","setValidateMessage","validateMessage","_callee5","_context5","helpNode","extraNode","_list$","getExtraNode","tmpTips","tmpClasses","_callee6","_context6","props$H","formControlledComponents","preventSubmitDefault","scrollToFirstError","submitWithWarningMessage","onReset","onSubmit","_Form","formRef","formClass","FORM_ITEM_CLASS_PREFIX","getFirstError","firstKey","tmpClassName","resArr","getElementsByClassName","scrollIntoView","needValidate","fields","formatValidateResult","validateResultList","_props2$onValidate","showErrorMessage2","firstError","_ref6$trigger","submitParams","submit","resetParams","clearValidate","_props2$onSubmit","_props2$onReset","_resetParams$value","_resetParams$value2","Form","FormItem","props$G","allowUncheck","RadioGroupInjectionKey","RadioButtonInjectionKey","_Radio","radioChecked","radioGroup","onLabelClick","keydown","keyup","keypresss","onKeypresss","wrapperAttrs","groupDisabled","groupReadonly","radioButton","radioBtnName","props$F","_RadioButton","radioProps","Radio","defaultWindow","useMutationObserver","_options$window","mutationOptions","isSupported","cleanup","stopWatch","elRef","plain","unref","_plain$$el","MutationObserver","getCurrentScope","onScopeDispose","radioGroupRef","checkRadioInGroup","inputNode","true","false","useKeyboard","observerReturn","checkedClassName","barStyle","calcBarStyle","disableAnimation","checkedRadio","transitionProperty","cloneNode","defaultCheckedRadio","calcDefaultBarStyle","checkedRadioLabel","mutations","mutation","characterData","subtree","_observerReturn","radioGroupName","renderBlock","groupClass","RadioComponent","TRadioButton","TRadio","RadioGroup","RadioButton","props$E","inputNumberProps","marks","showStep","tooltipProps","onChangeEnd","getStopStyle","formatSliderValue","initialProps","useSliderTooltip","tooltipConfig","tooltipRef","showTooltip","normalizeProps","validProps","_tooltipConfig$value","vertical","formatLabel","toggleTooltip","toState","sliderPropsInjectKey","_SliderButton","_useSliderTooltip","parentProps","buttonRef","slideButtonProps","isClick","startX","startY","startPos","newPos","rangeDiff","currentPos","wrapperStyle","toggleDragging","setPosition","pos","perStepLen","precision","_tooltipRef$value$upd","_tooltipRef$value","onDragging","resetSize","parentSliderSize","sliderSize","touch","touches","onButtonDown","onKeyDown","stepLength","onNativeKeyDown","onTouchstart","TTooltip","TSliderMark","point","onClickMarkPoint","changeValue","_props$onClickMarkPoi","hiddenTextarea","_Slider","sliderValue","setSliderValue","sliderContainerRef","sliderRef","firstButtonRef","secondButtonRef","firstValue","secondValue","containerClass","sliderClass","sliderRailClass","runwayStyle","barStart","minValue","currentDiff","maxValue","barSize","stepCount","stepWidth","precisions","decimalArr","setValues","maxLimit","minLimit","preValue","emitChange","fixValue","isAlreadyMount","valuetext","percent","getFixValue","onSliderClick","_props2$onChangeEnd","sliderOffsetLeft","_props2$onChangeEnd2","_newVal","newStates","prevStates","markList","markConfig","prefixName","renderMask","markProps","legalMarks","marksList","onChangeFn","renderInputNumber","sliderInputState","_config$value$step$to","initialState","_inputProps$inputNumb","inputTheme","sliderNumberClass","changeFn","_config$value","_config$value$onChang","useSliderInput","TSliderButton","onMouseup","_props2$onChangeEnd3","_props2$onChangeEnd4","firstInputVal","secondInputVal","Slider","SliderButton","props$D","beforeChange","customValue","_Switch","setSwitchVal","inactiveValue","handleToggle","toggle","nodeClasses","switchContent","loadingContent","Switch","SIZING_PROPS","calcTextareaHeight","targetElement","minRows","maxRows","_calculateNodeStyling","boxSizing","paddingSize","borderSize","sizingStyle","calculateNodeStyling","singleRowHeight","minHeight","props$C","autosize","_Textarea","TEXTAREA_TIPS_CLASS","TEXTAREA_LIMIT","textareaStyle","refTextareaElem","isComposing","adjustTextareaHeight","_refTextareaElem$valu3","_props2$autosize","rows","stringInfo","textareaElem","eventDeal","_props2$eventName","eventName","emitKeyDown","emitKeyUp","emitKeypress","textareaClasses","characterNumber","characterInfo","_refTextareaElem$valu","_refTextareaElem$valu2","_String","textTips","limitText","Textarea","SOURCE","TARGET","getTransferListOption","getDataValues","filterValues","_ref$isTreeMode","isTreeMode","_ref$include","_ref$remainValue","remainValue","isInclude","childResult","getTransferData","transferDataItem","_transferDataItem$dis","labelKey","valueKey","disabledKey","isTreeNodeValid","needMatch","_data$children","cloneTreeWithFilter","sourceTree","targetTree","newNode","isAllNodeValid","filterTransferData","getLefCount","Search","SearchIcon","TdSearchIcon","changeCtx","checkboxProps","dataSource","listType","checkedValue","transferItem","footer","onPageChange","onDataChange","TransferList","filterValue","currentPage","filteredData","filteredTreeData","pageTotal","curPageData","pageData","startIndex","paginationProps","handleDataChange","dragoverIndex","dragoverPos","currentDraggingIndex","currentDragoverIndex","sourceItem","targetItem","sourceIndex","currentElement","elemHeight","dragY","insertAreaHeight","onDragLeave","isAllChecked","allValue","totalCount","lastPage","handlePaginationChange","_props2$onPageChange","handleCheckedChange","_props2$onCheckedChan","handleCheckedAllChange","query","_slot4","_slot2","isDraggable","TCheckboxGroup","_slot3","renderEmpty","TCheckbox","titleNode","props$A","operation","showCheckAll","targetDraggable","targetSort","TransferOperations","leftDisabled","rightDisabled","moveToRight","moveToLeft","getIconRight","getIconLeft","getIcon","renderButton","_props2$operation","_Transfer","valueList","leftButtonDisabled","rightButtonDisabled","transferData","sourceList","targetList","hasFooter","showPagination","showSearch","footerOption","emptyOption","searchOption","disabledOption","titleOption","paginationOption","sourceChecked","targetChecked","transferTo","toDirection","newTargetValue","oldTargetValue","selfCheckedValue","movedValue","transferToRight","transferToLeft","renderTransferList","scopedSlots","bottomDistance","onMoveToRight","onMoveToLeft","Transfer","_TimePicker","TimeIcon","TdTimeIcon","inputClasses","handleShowPopup","_props2$onOpen","handleInputChange","handleInputBlur","handleClickConfirm","handlePanelChange","TimePickerPanel","props$z","_TimeRangePicker","currentPanelIdx","handleTimeChange","_currentValue$value$","_currentValue$value$2","handleOnPick","_currentValue$value$3","_currentValue$value$4","_props2$onInput","autoSwapTime","_currentValue$value","endTime","startDayjs","endDayjs","pickValue","pickedRangeValue","_currentValue$value$5","_currentValue$value$6","TimePicker","TimeRangePicker","_params$value$data","_params$value$scroll","trHeightList","containerHeight","containerWidth","startAndEndIndex","tScroll","_scroll$isFixedRowHei","_scroll$fixedRows","fixedRows","isVirtualScroll","getVisibleRangeConfig","_container$value$scro","fixedStart","prevBufferHeightList","hiddenHeight","visibleStart","visibleEnd","totalHeight","_trHeightList$i","_getVisibleRangeConfi","translateYValue","_fixedRows","fixedEnd","fixedStartData","fixedEndData","bottomStartIndex","_ref3$top","preventResizeRefresh","addIndexToData","initHeightList","rowData","_rowData$ref$value","trHeight","VIRTUAL_SCROLL_INDEX","scrollToElement","_p$time","TreeItemDefinition","onDrag","getCreateElement","Vue","refsProps","defaultPropName","eventPropName","tdUseVModel","tdUseDefaultValue","DragPosition","useDraggable","treeItemRef","dragStates","isDragOver","isDragging","dropPosition","setDragStatus","dragEvent","_drag$handleDragStart","_drag$handleDragEnd","_drag$handleDragOver","_drag$handleDragLeave","_drag$handleDrop","drag","treeScope","handleDragStart","throttleUpdateDropPosition","handleDragEnd","handleDragOver","handleDragLeave","handleDrop","_rootNode$getBounding","offsetY","pageY","gapHeight","updateDropPosition","_evt$dataTransfer","dataTransfer","setData","emitEvent","evtName","apiName","getParentsToRoot","getMark","getParentMarks","getTNode","_conf$node","tnode","isTreeNodeValue","useTreeAction","treeState","_state$vmValue","vmValue","_state$vmActived","vmActived","tActived","setTActived","_state$vmExpanded","vmExpanded","tExpanded","setTExpanded","evtCtx","pathMatchClass","replaceActived","toggleExpanded","toggleActived","toggleChecked","useItemEvents","clicked","evtContext","Event","_srcTarget$className","_srcTarget$className$","_treeScope$treeProps","expandOnClickNode","srcTarget","isBranchTrigger","useRenderIcon","handleMousedown","CaretRightSmallIcon","isDefaultIcon","iconNode","TdCaretRightSmallIcon","ignore","onmousedown","useRenderLabel","shouldStopLabelTrigger","isNormalBranchNode","isLazyLoadChildBranchNode","checkboxDisabled","itemCheckProps","_labelNode","TCheckBox","inner","useTreeItem","virtualConfig","treeContentRef","scrollProps","_useRenderLine","renderLine","line","iconVisible","lineNode","lineClasses","shadowStyles","useRenderLine","_useRenderOperations","renderOperations","opNode","useRenderOperations","_useDraggable","_useLazyLoad","childRef","tRowHeight","isInit","hasLazyLoadHolder","cb","useLazyLoad","tryNotifyVirtualScrollRowUpdate","itemNodes","renderItemNode","levelStyle","getItemStyles","getItemClassList","onDragleave","treeItemProps","itemKey","TreeItem","_useItemState","refProps","useItemState","useTreeNodes","scope","_useTreeEvents","_useTreeAction","evtState","shouldExpand","shouldActive","markName","markValue","useTreeEvents","nodesEmpty","cacheMap","refreshVisibleNodes","hasVisibleNode","refreshVirtualNodes","renderTreeNodes","treeNodeViews","nodeUniqueId","useTreeScroll","isScrolling","virtualScrollParams","scrollStopTimer","srcElement","_props$onScroll","emitScrollEvent","_allNodes$value","formatCSSUnit","unit","props$y","defaultActived","allowDrop","onActive","_TdTree","_useTreeState","setStore","useTreeState","_useTreeStore","updateStoreConfig","storeProps","filterChanged","prevExpanded","expandFilterPath","pathValues","checkFilterExpand","newFilter","previousFilter","handleLoad","nVal","previousVal","rebuild","useTreeStore","dragNode","_props$allowDrop","dropNode","Inside","Before","useDragHandle","_useTreeScroll","_useTreeNodes","_useTreeStyles","treeClasses","treeContentStyles","scrollStyles","cursorStyles","translate","useTreeStyles","setItem","setupMethod","getItem","getItems","appendNodes","getNodeIndex","pathNodes","getTreeData","itemData","parentData","_allNodes$value$filte","_refProps$scroll$valu","_refProps$scroll$valu2","cname","emptyNode","emptyContent","treeNodeList","$props","TransitionGroup","topValue","placeholderStyles","placeholderEl","Tree","tdWithInstall","props$x","_TreeSelect","treeRef","nodeInfo","treeKey","treeSelectValue","setTreeSelectValue","setInnerInputValue","setTreeParentsExpanded","realValue","realChildren","_currentTargetValue","currentTargetValue","findPath","parentPath","newPath","findParentValues","treeParents","flatMap","changeNodeInfo","treeRerender","filterByText","realLabel","_nodeInfo$value","popupClass","isObjectValue","multiLimitDisabled","valueParam","treeNodeChange","getNodeItem","treeNodeActive","treeNodeExpand","treeNodeLoad","inputChange","_props2$onSearch2","tagChange","getMultipleNodeInfo","getSingleNodeInfo","getTreeNode","TreeSelect","props$w","colorModes","enableAlpha","enableMultipleGradient","recentColors","defaultRecentColors","showPrimaryColorPreview","swatchColors","onPaletteBarChange","onRecentColorsChange","COLOR_MODES","monochrome","DEFAULT_LINEAR_GRADIENT","DEFAULT_SYSTEM_SWATCH_COLORS","FORMATS","useBaseClassName","baseClassName","rComma","rValue","rColor","rColorStop","rColorStopList","rLineCapture","PanelHeader","togglePopup","onModeChange","modeValue","handleModeChange","_props2$colorModes","REG_CMYK_STRING","cmykInputToColor","_cmyk2rgb","cmyk2rgb","combineRegExp","regexpList","flags","REGEXP_LIB","gradientSearch","colorStopSearch","REG_GRADIENT","isGradientColor","sideCornerDegreeMap","parseGradientString","gradientColors","points","degree","regExpLib","matchColorStop","stopResult","matchGradient","original","colorStopList","angle","sideCorner","parseGradient","tinyColor","mathRound","hsv2rgba","states","gradientColors2string","colorsStop","pA","pB","genGradientPoint","Color","colors","selectedId","originColor","isGradient","colorHsv","updateCurrentGradientColor","colorInput","_points$","_this$gradientSelecte","gradientStates","linearGradient","gradientSelectedPoint","updateStates","_hsv2rgba","_hsv2rgba2","_this$getHsva","getHsva","_this$getHsva2","_this$getHsla","getHsla","_this$getHsla2","_this$getCmyk","getCmyk","gradientDegree","_this$gradientSelecte2","gradientSelectedId","HEX","CMYK","cmyk","RGB","RGBA","HSL","HSLA","HSV","HSVA","CSS","HEX8","_hsv2rgba3","_this$getRgba","getRgba","_rgb2cmyk","computedC","computedM","computedY","minCMY","rgb2cmyk","_rgb2cmyk2","_hsv2hsva","_hsv2hsla","_Color","_defineProperty$2","isGradientColor1","isGradientColor2","COLOR_OBJECT_OUTPUT_KEYS","getColorObject","colorObject","defaultsOptions","coordinate","_Draggable_brand","WeakSet","Draggable","_classPrivateMethodInitSpec","handles","_assertClassBrand","_dragStart","_drag","_dragEnd","_getCoordinate","DELETE_KEYS","LinearGradient","refSlider","sliderRect","isMoved","payload","addUsedColor","handleDegreeChange","handleSelectedIdChange","handleColorsChange","isEnded","handleMove","percentLeft","updateActiveThumbLeft","handleEnd","handleKeyup","toLocaleLowerCase","handleThumbBarClick","newPoint","_props$color","thumbBackground","handleStart","TInputNumber","SaturationPanel","refPanel","refThumb","dragInstance","panelRect","saturation","handleDrag","_getSaturationAndValu","getSaturationAndValueByCoordinate","panelBackground","ColorSlider","railStyle","paddingStyle","HueSlider","AlphaSlider","isDragEnd","alpha","FORMAT_INPUT_CONFIG","FormatInputs","inputConfigs","configs","lastModelValue","getFormatColorMap","object2color","updateModelValue","throttleUpdate","_props2$color","FormatPanel","formatModel","newProps","TOption","SwatchesPanel","editable","onSetColor","handleAddColor","DeleteIcon","TdDeleteIcon","visiblePopConfirm","isEqualCurrentColor","compare","selectedColorIndex","handleRemoveColor","selectedIndex","swatchesClass","ColorPanel","_props2$colorModes2","defaultEmptyColor","updateColor","recentlyUsedColors","setRecentlyUsedColors","formatValue","colorMap","getFormatsColorMap","addRecentlyUsedColor","currentColor","handleRecentlyUsedColorsChange","emitColorChange","handleFormatModeChange","handleSatAndValueChange","_color$value","sat","changeTrigger","handleHueChange","_props2$onPaletteBarC","handleAlphaChange","handleGradientChange","handleSetColor","_systemColors","showUsedColors","systemColors","showSystemColors","renderSwatches","_ColorPickerPanel","pickBy","DefaultTrigger","onTriggerChange","inputSlots","_ColorPicker","refTrigger","renderPopupContent","popProps","TPopup","ColorPickerPanel","ColorPicker","props$v","alt","hideOnLoadFailed","imageProps","onError","props$u","fallback","fit","gallery","overlayContent","overlayTrigger","referrerpolicy","src","srcset","_Image","divRef","imgRef","_imgRef$value","triggerHandleLoad","handleLoadImage","imageStrSrc","replaceImageSrc","tmpUrl","hasError","isLoaded","shouldLoad","_props2$onLoad","loadEvent","handleError","_props2$onError","hasMouseEvent","imageClasses","shouldShowOverlay","handleToggleOverlay","renderImage","renderTNodDefault","ImageIcon","Image","_Avatar","avatarGroup","avatar","avatarChild","isImgExist","scale","sizeValue","isCustomSize","customAvatarSize","customImageSize","customCharacterSize","handleImgLoadError","setScaleParams","$avatar","$avatarChild","avatarWidth","avatarChildWidth","isIconOnly","avatarClass","props$t","cascading","collapseAvatar","_AvatarGroup","AVATAR_NAME","renderEllipsisAvatar","getEllipsisContent","outAvatar","Avatar","AvatarGroup","props$s","dot","maxCount","showZero","_Badge","displayCount","isHidden","badgeClassNames","inlineStyle","_getOffset","xOffset","yOffset","Badge","props$r","cell","cellAppend","head","isShowWeekendDefault","preventCellContextmenu","onCellDoubleClick","onCellRightClick","onControllerChange","MIN_YEAR","DAY_CN_MAP","dt","addDate","days","createMonthCellsData","curSelectedYear","curSelectedMonth","realFirstDayOfWeek","curDate","curDateList","begin","beginDateColIndex","getCellColIndex","createCellData","belongTo","weekOrder","formattedDate","filterDate","formattedFilterDate","isShowWeekend","judgeIsCurrent","nextMonthCellNum","createDefaultCurDate","useState","curSelectedMode","controlSize","setCurrentDate","toToday","checkDayVisible","re","getDefaultControllerConfigData","radioGroupProps","weekend","showWeekendButtonProps","hideWeekendButtonProps","currentDayButtonProps","currentMonthButtonProps","useColHeaders","weekDisplayText","getWeekDisplay","weekNum","numStr","weekText","cellColHeaders","clickTypeEmitEventMap","dblclick","contextmenu","CalendarCellItem","prefixClass","tableBodyCell","tableBodyCell4Now","tableBodyCellDisplay","tableBodyCellCsontent","_props$fillWithZero","dateNum","allowSlot","cellCls","_props$item","isNow","clickCell","emitName","onDblclick","onContextmenu","_Calendar","_useState","control","controlSection","controlSectionCell","controlTag","tableHead","tableHeadRow","tableHeadCell","tableBody","tableBodyRow","useCalendarClass","controller","dayJsFilterDate","configData","_props$controllerConf","checkControllerVisible","checkControllerDisabled","emitControllerChange","userController","rangeFromTo","_props2$range","v1","checkMonthAndYearSelectedDisabled","beginYear","dateSelect","yearSelectOptionList","isYearSelectVisible","isYearSelectDisabled","monthSelectOptionList","_rangeFromTo$value","_rangeFromTo$value2","beginMon","adjustMonth","isMonthSelectVisible","isMonthSelectDisabled","modeSelect","weekendBtn","vBind","currentBtn","cellClickEmit","eventPropsName","cellData","doubleClickCell","rightClickCell","monthCellsData","utils","yearCellsData","monthsArr","rowCount","TRadioGroup","TCheckTag","weekIndex","itemIndex","onRightclick","cellIndex","Calendar","props$q","cover","description","header","headerBordered","hoverShadow","shadow","subtitle","_Card","baseCls","defaultClass","headerCls","headerWrapperCls","headerAvatarCls","headerTitleCls","headerSubTitleCls","headerDescriptionCls","actionsCls","bodyCls","coverCls","footerCls","footerWrapperCls","isPoster2","showTitle","showHeader","showSubtitle","showAvatar","showDescription","showStatus","showActions","showFooter","showCover","showLoading","showContent","isHeaderRender","isFooterRender","textCover","Card","props$p","author","datetime","reply","_Comment","showAuthorDatetime","replyDom","quoteDom","avatarDom","authorDatetimeDom","contentDom","props$o","imageStyle","MaintenanceSvg","NetworkErrorSvg","EmptySvg","FailSvg","SuccessSvg","_Empty","components","TImage","propsImage","propsDescription","propsTitle","showAction","defaultMaps","emptyClasses","titleClasses","descriptionClasses","actionClass","typeImageProps","_defaultMaps$type$val","showImage","_slots$image","_typeImageProps$value","_slots$title","_typeImageProps$value2","_slots$description","Empty","popupManager","PopupManager","popupStack","getNextZIndex","usePopupManager","runOnMounted","isLastDialog","useDrag","initTransform","mouseDownHandler","pageX","_transform$value","translateX","mouseMoveHandler","mouseUpHandler","resetTransform","TImageItem","rotate","placementSrc","isSvg","imageReferrerpolicy","loaded","_useDrag","svgElRef","imgStyle","placementImgStyle","boxStyle","createSvgShadow","_element$classList","response","svgText","shadowRoot","svgElement","svgViewBox","viewBoxValues","svgViewBoxWidth","bbox","calculatedViewBox","fetch","statusText","innerHTML","attachShadow","getBBox","mainImagePreviewUrl","placementImagePreviewUrl","ImageErrorIcon","TImageViewerIcon","wrapClass","props$n","cancelBtn","confirmBtn","confirmLoading","confirmOnEnter","dialogClassName","dialogStyle","showInAttachedElement","onBeforeClose","onBeforeOpen","onCancel","onClosed","onEscKeydown","onOpened","useAction","getButtonByProps","defaultButtonProps","newOptions","getConfirmBtn","globalConfirm","globalConfirmBtnTheme","confirmBtnAction","getDefaultConfirmBtnProps","getCancelBtn","globalCancel","cancelBtnAction","getDefaultCancelBtnProps","getScrollbarWidth","getCSSValue","dialogCardProps","mousePosition","_DialogCard","directives","windowInnerWidth","windowInnerHeight","targetEvent","disX","disY","dialogW","dialogH","mouseMoverHandler","documentEvent","dialogProps","rootRef","_useAction","_props$onCancel","isModeLess","isFullScreen","closeBtnAction","_props$onCloseBtnClic","onStopDown","resetPosition","dialogClass","confirmBtnLoading","_confirmBtn$value","defaultFooter","footerContent","headerClassName","closeClassName","bodyClassName","footerClassName","_Dialog","dialogCardRef","_props2$onCancel","emitCloseEvent","styleEl","isModal","computedVisible","maskClass","positionClass","topStyle","destroySelf","_styleEl$value$parent","_styleEl$value$parent2","_document$activeEleme","_dialogCardRef$value","addKeyboardEvent","MOUSEDOWN_TARGET","MOUSEUP_TARGET","keyboardEvent","keyboardEnterEvent","_props2$onConfirm2","_props2$onEscKeydown","_props2$closeOnEscKey","_useSameTarget","_props2$closeOnOverla","_props2$onBeforeOpen","_props2$onOpened","_props2$onBeforeClose","_dialogCardRef$value2","_dialogCardRef$value3","_props2$onClosed","view","otherProps","TDialogCard","renderDialog","ctxStyle","ctxClass","onBeforeEnter","onAfterLeave","createDialog","preClassName","updateClassNameStyle","_wrapper$firstElement","firstElementChild","cssText","dialogOptions","DialogComponent","dialogComponent","setConfirmLoading","DialogPlugin","$dialog","Dialog","DialogCard","props$m","closeOnOverlay","imageScale","images","defaultIndex","navigationArrow","viewerScale","onDownload","onIndexChange","TImageViewerUtils","onRotate","onZoomIn","onZoomOut","onMirror","currentImage","mainImage","TToolTip","MirrorIcon","RotationIcon","ZoomOutIcon","ZoomInIcon","DownloadIcon","TImageViewerModal","renderJSX","TDialog","thumbnail","EVENT_CODE","formatImages","File","isImageInfo","_ImageViewer","_props2$defaultIndex","isExpand","showOverlayValue","indexValue","setIndexValue","visibleValue","setVisibleValue","animationEnd","animationTimer","headerClass","zIndexValue","_props2$zIndex","toggleExpand","_useMirror","resetMirror","useMirror","_useScale","defaultScale","setScale","resetScale","newScale","useScale","_useRotate","resetRotate","useRotate","onRest","_images$value$indexVa","prevImage","nextImage","onDownloadClick","imgSrc","_imgSrc$split","_imgSrc$split$split","_imgSrc$split$split$s","canvas","getContext","drawImage","toBlob","blob","URL","createObjectURL","revokeObjectURL","downloadFile","openHandler","clickOverlayHandler","keydownHandler","up","down","esc","_divRef$value","_divRef$value$focus","transStyle","onImgClick","renderNavigationArrow","rotateDeg","renderCloseBtn","ImageViewer","props$l","_ListItem","propsContent","propsDefaultContent","propsActionContent","props$k","asyncLoading","stripe","onLoadMore","LOAD_MORE","_List","listRef","listItems","computedListItems","listItemSlots","_useListVirtualScroll","listStyle","useListVirtualScroll","listClass","listElement","scrollBottom","loadingClass","renderLoading","handleLoadMore","_props2$onLoadMore","propsHeaderContent","propsFooterContent","TListItem","props$j","_ListItemMeta","renderAvatar","propsTitleContent","propsDescriptionContent","listItemMetaContent","List","ListItem","ListItemMeta","PRO_THEME","CIRCLE_SIZE","CIRCLE_SIZE_PX","CIRCLE_FONT_SIZE_RATIO","STATUS_ICON","props$i","percentage","strokeWidth","trackColor","_Progress","ErrorIcon","TdErrorIcon","statusStyle","trackBgStyle","circlePathStyle","circleOuterStyle","diameter","SMALL","LARGE","MEDIUM","rPoints","radius","circleStrokeWidth","circleStyle","defaultWidth","strokeDashArr","perimeter","PI","getLabelContent","CIRCLE_ICONS","NORMAL_ICONS","separateClasses","cx","cy","Progress","props$h","rowCol","ThemeMap","paragraph","tab","article","getColItemStyle","px","_Skeleton","isShow","getColItemClass","renderRowCol","_rowCol","renderCols","_cols","bool","Skeleton","props$g","animationStart","trend","trendPlacement","quartOut","Tween","_ref$duration","onStart","_ref$onUpdate","started","finished","_this$onFinish","elapsed","_this$onStart","delta","interval","setInterval","clearInterval","tick","polyfillStart","normalStart","COLOR_MAP","_Statistic","_props2$animation$val","_props2$animation","ArrowTriangleUpFilledIcon","TDArrowTriangleUpFilledIcon","ArrowTriangleDownFilledIcon","TDArrowTriangleDownFilledIcon","trendIcons","increase","decrease","numberValue","valueFrom","innerDecimalPlaces","_props2$decimalPlaces","_numberValue$value$to","tween","_props2$animation$val2","_props2$animation2","_tween$value","minimumFractionDigits","maximumFractionDigits","useGrouping","toLocaleString","getFormatValue","_tween$value2","trendIcon","Statistic","props$f","autoplay","loop","navigation","stopOnHover","swiperItemProps","isSwitching","getWrapAttribute","swiperItemLength","CARD_SCALE","itemWidth","_SwiperItem","disposeIndex","translateIndex","isActivity","inStage","itemStyle","defaultNavigation","showSlideBtn","_Swiper","swiperTimer","swiperSwitchingTimer","isBeginToEnd","isEndToBegin","navActiveIndex","isHovering","swiperWrap","navigationConfig","propsToUpdateSetTimer","swiperWrapClass","containerStyle","swiperItems","swiperItemList","swiperItem","TSwiperItem","cloneVNode","swiperTo","goNext","goPrevious","_swiperWrap$value","renderNavigation","fractionIndex","navigationSlot","renderPagination","onMouseEnterNavigationItem","onClickNavigationItem","renderSwiperItems","Swiper","SwiperItem","baseTableProps","activeRowKeys","defaultActiveRowKeys","activeRowType","allowResizeColumnWidth","cellEmptyContent","columns","disableDataPage","disableSpaceInactiveRow","firstFullRow","footData","footerAffixProps","footerAffixedBottom","footerSummary","headerAffixProps","headerAffixedTop","horizontalScrollAffixedBottom","keyboardRowHover","lastFullRow","paginationAffixedBottom","resizable","rowAttributes","rowClassName","rowKey","rowspanAndColspan","rowspanAndColspanInFooter","tableContentWidth","verticalAlign","onActiveChange","onActiveRowAction","onColumnResizeChange","onRowClick","onRowDblclick","onRowMousedown","onRowMouseenter","onRowMouseleave","onRowMouseover","onRowMouseup","onScrollX","onScrollY","getNodeDepth","depthMap","maxDepth","_col$children","getChildrenNodeWidth","countNew","childrenList","getThRowspanAndColspan","columnsDepth","rowspanAndColspanMap","leafColumns","_col$children2","rowspan","useClassName","tableBaseClass","columnResizableTable","overflowVisible","paginationWrap","tdLastRow","tdFirstCol","thCellInner","tableRowEdit","cellEditable","cellEditWrap","striped","emptyRow","headerFixed","columnFixed","widthOverflow","multipleHeader","footerAffixed","horizontalBarAffixed","affixedHeader","affixedHeaderElm","affixedFooterElm","affixedFooterWrap","scrollbarDivider","fullHeight","resizeLine","obviousScrollbar","affixedHeaderWrap","tdAlignClasses","tableHeaderClasses","thBordered","fixed","tableFooterClasses","tableAlignClasses","middle","tableRowFixedClasses","firstBottom","withoutBorderBottom","tableColFixedClasses","lastLeft","firstRight","leftShadow","rightShadow","tableLayoutClasses","tdEllipsisClass","tableFullRowClasses","base","innerFullRow","innerFullElement","tableExpandClasses","iconBox","iconCell","rowExpanded","rowFolded","rowInner","tableSortClasses","sortable","sortColumn","doubleIcon","iconDirection","asc","desc","iconActive","iconDefault","tableSelectedClasses","checkCell","tableFilterClasses","popupContent","bottomButtons","contentInner","iconWrap","asyncLoadingClass","isFocusClass","isLoadingClass","isLoadMoreClass","tableTreeClasses","inlineCol","leafNode","tableDraggableClasses","rowDraggable","rowHandlerDraggable","colDraggable","chosen","dragSortTh","virtualScrollClasses","positiveRotate90","negativeRotate180","TEllipsis","tooltipContent","flag","isOverflow","ellipsisClasses","innerEllipsisClassName","onMouseAround","cellNode","ellipsisContent","rProps","colIndex","useTableHeader","_useClassName","spansAndLeafNodes","thList","thRows","_children","thRowData","isMultipleHeader","renderTitleWidthIcon","ellipsisTitle","isEllipsis","ellipsisOverlayClassName","useColumnResize","originalSelectStart","originalDragStart","isWidthOverflow","tableContentRef","showColumnShadow","getThWidthList","updateThWidthList","setTableElmWidth","updateTableAfterColumnResize","resizeLineRef","effectColMap","hasDocument","onselectstart","ondragstart","getSiblingResizableCol","setEffectColMap","prevNode","nextNode","parentPrevCol","colKey","parentNextCol","prevSibling","nextSibling","resizeLineParams","draggingCol","draggingStart","effectCol","resizeLineStyle","isColRightFixActive","getMinMaxColWidth","targetCol","_targetCol$resize","_targetCol$resize2","propMinWidth","minColWidth","maxColWidth","getOtherResizeInfo","effectPrevCol","targetBoundRect","tableBoundRect","resizeLinePos","colLeft","_getMinMaxColWidth","minResizeLineLeft","maxResizeLineLeft","getNormalResizeInfo","getFixedToLeftResizeInfo","onColumnMouseover","_col$resizable","thRightCursor","thLeftCursor","isFixedToRight","prevEl","previousElementSibling","_effectColMap$value$c","_effectPrevCol$resiza","onColumnMousedown","_tableContentRef$valu","_effectColMap$value$c2","_effectColMap$value$c3","effectNextCol","colkey","_getMinMaxColWidth2","getFixedToRightResizeInfo","_effectColMap$value$c4","moveDistance","thWidthList","currentCol","currentSibling","newThWidthList","tmpCurrentCol","canResizeSiblingColWidth","isWidthAbnormal","_getMinMaxColWidth3","targetNextColWidth","getSiblingColCanResizable","tableWidth","getTotalTableWidth","columnsWidth","getColumnFixedStyles","rowAndColFixedPosition","fixedPos","thClasses","lastLeftFixedCol","firstRightFixedCol","useFixed","finalColumns","tableRef","isFixedHeader","tableElmRef","scrollbarWidth","virtualScrollHeaderPos","tableElmWidth","isFixedColumn","isFixedRightColumn","isFixedLeftColumn","columnResizable","_allowResizeColumnWid","notNeedThWidthList","getColumnMap","levelNodes","columnInfo","newColumnsMap","shadowLastScrollLeft","setFixedLeftPos","initialColumnMap","colInfo","lastColIndex","lastCol","lastColInfo","setFixedRightPos","_col$children3","updateRowAndColFixedPosition","tableContentElm","thead","trList","thLen","_obj$col","th","innerText","setFixedColPosition","tbody","tfoot","fixedTopRows","fixedBottomRows","_props$rowKey","rowId","thisRowInfo","lastRowId","lastRowInfo","defaultBottom","setFixedRowPosition","updateColumnFixedShadow","skipScrollLimit","isShowRight","isShowLeft","updateFixedStatus","_getColumnMap","colMapInfo","nextColMapInfo","lastColMapInfo","setIsLastOrFirstFixedCol","_fixedRows$value","updateFixedHeader","updateAffixPosition","_affixRef$paginationA","_affixRef$paginationA2","_affixRef$horizontalS","_affixRef$horizontalS2","_affixRef$headerTopAf","_affixRef$headerTopAf2","_affixRef$footerBotto","_affixRef$footerBotto2","paginationAffixRef","horizontalScrollAffixRef","headerTopAffixRef","footerBottomAffixRef","calculateThWidthList","widthMap","HTMLCollection","updateThWidthListHandler","_tableContentRef$valu2","_tableElmRef$value","reduceWidth","elmRect","updateTableWidth","_tableContentRef$valu3","preFinalColumns","finalColKeys","preColKeys","reduceKeys","rootThWidthList","oldTotalWidth","contentWidth","widthToReserve","refreshTable","scrollDiv","getScrollbarWidthWithCSS","isWatchResize","hasResizeObserver","_resizeObserver2","_props$onScrollX","_props$onScrollY","setUseFixedTableElmRef","addTableResizeObserver","tableElement","usePagination","innerPagination","isPaginateData","updateDataSourceAndPaginate","_pagination$value","_pagination$value2","_pagination$value3","_innerPagination$valu","_innerPagination$valu2","_props$pagination","_props$pagination$onC","_props$onPageChange","useAffix","affixHeaderRef","affixFooterRef","horizontalScrollbarRef","paginationRef","showAffixHeader","showAffixFooter","showAffixPagination","isMousedown","isMouseInScrollableArea","isAffixed","lastScrollLeft","onHorizontalScroll","toUpdateScrollElement","isAffixedBottomElementShow","elementRect","tableRect","headerHeight","updateAffixHeaderOrFooter","_affixFooterRef$value","headerRect","footerRect","footerHeight","horizontalScrollbarRect","pageRect","onDocumentScroll","onFootScroll","onHeaderScroll","horizontalScrollbarScroll","onTableContentScroll","onFootMouseEnter","onFootMouseLeave","onHeaderMouseEnter","onMouseEnterScrollableArea","onHeaderMouseLeave","onMouseLeaveScrollableArea","onScrollbarMouseEnter","onScrollbarMouseLeave","onTableContentMouseEnter","onTableContentMouseLeave","activatingTouchScrollListenerCleanups","setupElementTouchScrollListener","debounceOffScrollListener","onElementTouchScroll","onElementTouchStart","composedPath","removeElementTouchScrollListener","elementTouchScrollCleanups","removeHorizontalScrollListeners","addVerticalScrollListener","addHorizontalScrollListeners","setTableContentRef","tableContent","formatRowAttributes","attrList","attrItem","attrProperty","formatRowClassNames","rowClassNames","rowClassList","customClasses","rName","tClass","formatClassNames","getCurrentRowByKey","_columns$i","_columns$i2","getAffixProps","mainAffixProps","subAffixProps","getCellKey","rowValue","useRowspanAndColspan","skipSpansMap","onTrRowspanOrColspan","skipSpansValue","maxRowIndex","maxColIndex","cellKey","skipped","_skipSpansMap$value","colLen","updateSkipSpansMap","TABLE_PROPS","ROW_LISTENERS","renderCell","tCurrent","tPageSize","TrElement","dataLength","tableElm","trRef","trStyles","rowLength","virtualTranslateY","fixedBottom","firstFixedBottomRow","getRowFixedStyles","trAttributes","_trStyles$value","notifyVirtualSizeUpdate","_props$virtualConfig","renderEllipsisCell","cellParams","_trStyles$value2","columVNodeList","cellSpans","spanState","_spanState","_spanState2","tdStyles","normalAttrs","renderTd","columnLength","trListeners","_props","getTrListeners","extendTableProps","TBody","renderExpandedRow","activeRow","hoverRow","tbodyClasses","_this$data","_this$data2","_this$virtualConfig","_this$virtualConfig2","getFullRow","tType","fullRowNode","isFixedToLeft","trNodeList","properties","renderData","_this$activeRow","trProps","trNode","onRowMounted","expandedContent","posStyle","useStyle","tableSize","_size$value","tableClasses","tableContentStyles","tableElementStyles","THead","thDraggable","columnResizeParams","theadRef","classnames","theadClasses","colspanSkipMap","processColumns","getTableNode","_parent","thBorderMap","thRowspanAndColspan","renderThNodeList","thRow","thStyles","colParams","thCustomClasses","thClassName","isLeftFixedActive","isRightFixedActive","canDragSort","withoutChildren","innerTh","resizeColumnListener","_this$columnResizePar","_this$columnResizePar2","_thList$index","onMousemove","_this$columnResizePar3","_this$columnResizePar4","TFoot","virtualScroll","renderTFootCell","foot","_this$footData","footerDomList","_this$thWidthList","useRowHighlight","currentOperationRowIndex","isShiftPressed","shiftSelectionState","areaSelectionStartIndex","tActiveRow","setTActiveRow","getActiveRowList","onHighlightRow","newActiveRowData","newActiveRowKeys","activeRowList","currentRowData","handleShiftActive","handleInactive","handleActive","clearShiftAreaSelection","keyboardDownListener","_props$onActiveRowAct2","activeKeys","_props$onActiveRowAct","_props$onActiveRowAct3","_props$onActiveRowAct4","keyboardUpListener","_e$key2","addHighlightKeyboardListener","removeHighlightKeyboardListener","_BaseTable","onLeafColumnsChange","tableBodyRef","bottomContentRef","tableFootHeight","_useStyle","_useTableHeader","_spansAndLeafNodes$va","_props2$size","_useElementLazyRender","showElement","_ioObserver$value","_ioObserver$value$uno","useElementLazyRender","_useFixed","_useAffix","_usePagination","dynamicBaseTableClasses","tableElmClasses","showRightDivider","dividerBottom","_bottomContentRef$val","_paginationRef$value","bottomRect","paginationRect","_useRowHighlight","_useHoverKeyboardEven","currentHoverRowIndex","tableRefTabIndex","needKeyboardRowHover","onHoverRow","ctrlKey","metaKey","clearHoverRow","addRowHoverKeyboardListener","removeRowHoverKeyboardListener","useHoverKeyboardEvent","_props2$onLeafColumns","syncThWidthList","useVirtualScrollNew","getTFootHeight","_tableElmRef$value$qu","_tableData$value","_tableBodyRef$value","_el$children","_params$top","_params$behavior","scrollBy","scrollColumnIntoView","thDom","fixedThDom","totalWidth","domRect","onTableFocus","onTableBlur","onInnerRowClick","_props2$onRowClick","_this$spansAndLeafNod","_this$allowResizeColu","_this$affixHeaderRef","_this$tableFootHeight","_this$tableFootHeight2","_affixHeaderHeight$va","_this$tableContentRef","defaultColWidth","renderColGroup","isAffixHeader","headProps","IEHeaderWrap","barWidth","affixHeaderHeight","_this$affixHeaderRef2","affixHeaderWrapHeight","headerOpacity","affixHeaderWrapHeightStyle","affixedLeftBorder","affixHeaderWithWrap","marginScrollbarWidth","affixedFooter","virtualStyle","tableBodyProps","getCustomLoadingText","primaryTableProps","columnController","columnControllerVisible","defaultColumnControllerVisible","displayColumns","defaultDisplayColumns","dragSortOptions","editableCellState","editableRowKeys","expandOnRowClick","expandedRow","expandedRowKeys","defaultExpandedRowKeys","filterRow","defaultFilterValue","indeterminateSelectedRowKeys","multipleSort","reserveSelectedRowOnPaginate","rowSelectionAllowUncheck","rowSelectionType","selectOnRowClick","selectedRowKeys","defaultSelectedRowKeys","showSortColumnBgColor","defaultSort","sortOnRowDraggable","onAsyncLoadingClick","onColumnChange","onColumnControllerVisibleChange","onDisplayColumnsChange","onExpandChange","onFilterChange","onRowEdit","onRowValidate","onSelectChange","onSortChange","ColumnCheckboxGroup","uniqueKey","allCheckedColumnKeys","allCheckedKeys","intersectionKeys","isCheckedAll","onCheckAllColumnsChange","changeParams","newKeys","handleCheckChange","getColumnKeys","useColumnController","SettingIcon","TdSettingIcon","dialogInstance","enabledColKeys","_columnController$val","tDisplayColumns","setTDisplayColumns","columnCheckboxKeys","checkboxGroupList","_columnController$val2","groupColumns","_columnController$val3","groupList","_column$children","oneItem","getOneColumnItem","len1","_groupList$j","getCheckboxGroupOptions","getCheckboxOptions","_columnController$val4","_props$onColumnChange","currentColumn","handleToggleColumnController","_columnController$val8","_columnController$val5","widthMode","displayType","columnControllerTopContent","columnControllerBottomContent","_columnController$val6","_columnController$val7","_props$onColumnContro","_props$onColumnContro2","renderColumnController","_props$columnControll","isColumnController","hideTriggerButton","buttonProps","isRowSelectedDisabled","selectColumn","getColumnDataByKey","_columns$i$children","getColumnIndexByKey","_columns$i$children2","getColumnsResetValue","resetValue","useRowSelect","currentPaginateData","selectedRowClassNames","tSelectedRowKeys","setTSelectedRowKeys","selectedRowDataMap","selectionType","_selectColumn$value","canSelectedRows","_selectColumn$value2","getRowSelectDisabledData","handleSelectChange","selectedRowIndex","isExisted","selectedRowData","currentRowKey","handleSelectAll","_selectedRowKeys$valu","reRowKey","canSelectedRowKeys","disabledSelectedRowKeys","allIds","_selectColumn$value3","disabledRowClass","selectedRowClass","showRowSelect","formatToRowSelectColumn","_p$row","_getRowSelectDisabled","selectBoxProps","_e$e","_props$indeterminateS","renderSelectCell","onInnerSelectRowClick","_getRowSelectDisabled2","selectedColIndex","handleRowSelectWithAreaSelection","validAreaSelection","areaSelectionKeys","toCheck","clearedKeys","newSelectedRowKeys","SorterButton","sortType","sortOrder","allowSortTypes","getSortIcon","activeClass","sortClassName","descending","onSortIconClick","tooltips","sortButton","_this$hideSortTips","cancelTips","useSorter","originalData","tSortInfo","setTSortInfo","tData","setTData","sorterFuncMap","getSorterFuncMap","innerSort","sortArray","sortMap","sortBy","sorter","handleDataSort","sortInfo","isEmptyArraySort","isEmptyObjectSort","formatedSort","sortResult","sortFunc","handleSortHeaderClick","getSingleNextSort","getMultipleNextSort","currentData","currentDataSource","getSortOrder","tmpSortInfo","tmpInnerSortInfo","_ret","isSortInfoSame","renderSortIcon","_sortMap$value$col$co","sorterButtonsProps","TableFilterController","tFilterValue","innerFilterValue","primaryTableElement","triggerElementRef","FilterIcon","TdFilterIcon","filterPopupVisible","renderComponent","filterComponentProps","isVueComponent","tProps","getFilterContent","_column$filter","_column$filter2","_column$filter3","_props$innerFilterVal","single","_column$filter$props","_column$filter4","_column$filter$props$","_column$filter$props2","confirmEvents","getBottomButtons","showConfirmAndReset","onFilterPopupVisibleChange","_props$onVisibleChang","_this$tFilterValue","defaultFilterIcon","isObjectTrue","isValueExist","isFilterValueExist","isArrayTrue","useFilter","primaryTableRef","isTableOverflowHidden","setTFilterValue","hasEmptyCondition","newFilterValue","getFilterResultContent","getAllColumns","_col$filter","_col$filter2","onInnerFilterChange","emitFilterChange","_column$filter$resetV","onResetAll","renderFilterIcon","_primaryTableRef$valu","renderFirstFilterRow","_props$data","filterContent","setFilterPrimaryTableRef","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","getParentOrHost","includeCTX","_throttleTimeout","R_SPACE","toggleClass","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getElementsByTagName","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","containerRect","elMatrix","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","childNum","includeDragEl","currentChild","Sortable","lastChild","lastElementChild","getRelativeScrollOffset","winScroller","includeSelf","elem","gotSelf","elemCSS","isRectEqual","Polymer","jQuery","Zepto","getChildContainingRectFromElement","ghostEl","_rect$left","_rect$top","_rect$right","_rect$bottom","animated","childRect","expando","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","indexOfObject","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","calculateRealTime","animationResetTimer","currentRect","animatingX","animatingY","forRepaintDummy","repaint","plugins","initializeByDefault","PluginManager","plugin","pluginName","pluginEvent","eventCanceled","eventNameGlobal","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","originalEvent","dragEl","parentEl","rootEl","nextEl","lastDownEl","cloneEl","cloneHidden","dragStarted","moved","putSortable","activeSortable","oldIndex","oldDraggableIndex","newDraggableIndex","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","targetEl","toEl","fromEl","extraEventProperties","onName","CustomEvent","createEvent","initEvent","bubbles","cancelable","pullMode","lastPutMode","allEventProperties","dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","_detectDirection","elCSS","elWidth","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","secondChildWidth","gridTemplateColumns","touchingSideChild2","_prepareGroup","toFn","sameGroup","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","stopImmediatePropagation","nearestEmptyInsertDetectEvent","nearest","emptyInsertThreshold","insideHorizontally","insideVertically","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","preventOnFilter","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","relatedRect","_disableDraggable","_unsilent","_generateId","_nextTick","_cancelNextTick","_getDirection","pointerType","originalTarget","inputs","_saveInputCheckedState","isContentEditable","criteria","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","lastElRect","childContainingRect","spacer","_ghostIsLast","changed","firstElRect","_ghostIsFirst","targetBeforeFirstSwap","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","moveVector","insertion","_showClone","_offMoveEvents","_offUpEvents","save","dropEffect","_globalDragOver","toArray","useAnimation","dst","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","toSortable","changedTouches","onSpill","Revert","Remove","swapDragArrayElement","removeNode","insertNodeAt","fatherNode","refNode","dragCol","isRowDraggable","isRowHandlerDraggable","isColDraggable","getDataPageIndex","_pagination$current","_pagination$pageSize","registerOneLevelColDragEvent","recover","onEnd","_props$onDragSort2","oldElement","newElement","registerColDragEvent","primaryTableCmp","timerA","_element$children","dragContainer","baseOptions","registerRowDragEvent","$refs","setDragSortPrimaryTableRef","setDragSortColumns","_toArray","dragStart","parentSortable","AutoScroll","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","EditableCell","oldCell","errors","onRuleChange","onEditableChange","_props$col$edit","isKeepEditMode","_col$value$edit","edit","keepEditMode","isEdit","defaultEditable","editValue","Edit1Icon","TdEdit1Icon","updateEditedCellValue","isUpdateCurrentRow","editOnListeners","_col$value$edit2","_col$value$edit2$on","editedRow","currentRow","restKeys","newRow","editProps","componentProps","_edit$abortEditOnEven","tmpProps","abortEditOnEvent","isAbortEditOnChange","_edit$abortEditOnEven2","validateEdit","_props$onValidate2","updateAndSaveAbort","outsideAbortEvent","_editOnListeners$valu","_editOnListeners$valu2","_props$onEditableChan","_edit$abortEditOnEven3","isCellEditable","tListeners","onEdited","itemEvent","newRowData","onEditChange","_editProps$value","_editProps$value$onCh","_props$onRuleChange","_editOnListeners$valu3","_editOnListeners$valu4","_col$value$edit4","_col$value$edit3","validateTrigger","documentClickHandler","_e$composedPath","_node2$classList","enterEdit","_props$onEditableChan2","_props$col$edit2","cellValue","_props$onRuleChange2","_col$value$edit6","_errorList$value","_col$value$edit7","_errorList$value2","_col$value$edit5","showEditIcon","Component","tmpEditOnListeners","onEventName","useRowEdit","cellRuleMap","errorListMap","editableKeysMap","getEditableKeysMap","editingCells","editedFormData","getErrorListMapByErrors","errorMap","validateOneRowData","rowRules","reject","_t$errorList","validateTableCellData","cellKeys","existKeys","_v$props$rowKey","promiseList","_cellKey$split","allErrorListMap","_editableRowKeys$valu","keyStr","validateTableData","rList","validateRowData","_props$onRowValidate","tTrigger","clearValidateData","onUpdateEditedCell","lastRowData","getEditRowData","_props$editableRowKey","editedRowData","tmpRow","onPrimaryTableCellEditChange","OMIT_PROPS","_PrimaryTable","_props$size","_useColumnController","_useRowExpand","ChevronRightCircleIcon","TdChevronRightCircleIcon","tExpandedRowKeys","setTExpandedRowKeys","showExpandedRow","showExpandIconColumn","isFirstColumnFixed","_props$columns","onToggleExpand","currentId","expandedRowData","renderExpandIcon","getExpandColumn","isFixedLeft","onInnerExpandRowClick","getExpandedRowClass","_tExpandedRowKeys$val","useRowExpand","_useRowSelect","_useFilter","dragSortParams","_useAsyncLoading","onLoadClick","_props$onAsyncLoading","renderAsyncLoading","asyncLoadingNode","useAsyncLoading","_useEditableRow","useEditableRow","innerKeyboardRowHover","innerDisableSpaceInactiveRow","primaryTableClasses","tRowClassNames","tRowAttributes","tAttributes","baseTableRef","onEditableCellChange","_props$onRowEdit","getColumns","parentDisplay","_tDisplayColumns$valu","_item$edit","_tDisplayColumns$valu2","titleContent","cellProps","_errorListMap$value","tColumns","onInnerPageChange","onInnerActiveRowAction","onSingleRowClick","onShowElementChange","formatNode","api","renderInnerNode","condition","innerNode","_props$keyboardRowHov","_props$disableSpaceIn","isBottomController","BaseTable","enhancedTableProps","beforeDragSort","expandedTreeNodes","defaultExpandedTreeNodes","onAbnormalDragSort","onExpandedTreeNodesChange","onTreeExpandChange","TABLE_TREE_ERROR_CODE_NOT_SAME_LEVEL","getUniqueRowValue","TableTreeStore","treeDataMap","_this$treeDataMap","initialTreeDataMap","childrenKey","getAllUniqueKeys","getExpandedChildrenKeys","rowList","rowState","toggleExpandData","_r$rowIndex","updateExpandRow","changeRow","childrenNodes","updateChildrenRowState","updateRowExpandLength","expandChildrenLength","updateRowIndex","minRowIndex","newRowValue","updateRowData","oldChildren","currentRowIndex","removeNumber","validateDataExist","isShowNewNode","tmpData","newChildrenData","firstNewChildrenIndex","oneData","mapState","validateDataDoubleExist","newState","newChildrenCount","newDataSource","tmpNewData","dataSourceLen","dataIndex","childrenIndex","startRowValue","endRowValue","startState","endState","reason","startLastIndex","endLastIndex","startRowList","endRowList","middleRowList","allSwapList","expandAllRowIndex","expandLoop","tmpParent","_tmpParent","foldAll","treeData","updateDisabledState","_state$parent","expandLen","clearRowExpandLength","kidRowIndex","useTreeDataExpand","rowDataKeys","isDefaultExpandAllExecute","isDefaultExpandedTreeNodesExecute","tExpandedTreeNode","setTExpandedTreeNode","changedExpandTreeNode","expandedNode","updateExpandState","_diffExpandedTreeNode","newExpandedNode","oldExpandedNode","removedList","addedList","newExpandedNodeMap","oldExpandedNodeMap","diffExpandedTreeNode","expandTreeNode","foldTreeNode","oldExpandedTreeNode","onExpandFoldIconClick","_props$onTreeExpandCh","expandedNodes","expandedChildrenKeys","updateExpandOnDataChange","_tree$value","_tExpandedTreeNode$va","defaultExpandAll","useTreeData","AddRectangleIcon","TdAddRectangleIcon","MinusRectangleIcon","TdMinusRectangleIcon","treeNodeCol","shallowRef","_props$tree","_useTreeDataExpand","checkedColumn","resetData","initialTreeStore","defaultNeedExpand","needExpandAll","_store$value$treeData","_props$tree2","treeNodeColumnIndex","_props$tree5","_columns2$treeNodeCol","_columns2$treeNodeCol2","getTreeNodeColumnCol","swapData","_props$onAbnormalDrag","updateData","removeChildren","appendToRoot","formatTreeColumn","newCol","defaultFoldIcon","cellInfo","currentState","_props$tree3","_props$tree4","indent","getTreeNodeStyle","_store$value$treeData2","defaultExpandIcon","_store$value","getTreeExpandedRow","childrenMap","getChildrenData","allChildren","allChildrenKeys","leafNodeKeys","selectableChildren","_treeDataMap$get","tItem","nextLevelData","useTreeSelect","tIndeterminateSelectedRowKeys","parentMap","parentTmp","checkedLength","parentTmpIndex","updateIndeterminateState","onInnerSelectChange","rowKeys","extraData","newRowKeys","newExtraData","removeKeys","removeChildrenKeys","selectedKeys","checkedChildrenKeys","updateParentCheckedState","getRowDataByKeys","handleSelect","_EnhancedTable","_useTreeData","treeInstanceFunctions","_useTreeSelect","onDragSortChange","onEnhancedTableRowClick","_props$onRowClick","expandTreeNodeOnClick","getScrollRowIndex","rowStateData","enhancedProps","PrimaryTable","EnhancedTable","Table","TimeLineProps","DefaultAlign","horizontal","TimelineInjectKey","DEFAULT_PROVIDER","itemsStatus","renderAlign","props$e","dotColor","DEFAULT_THEME","_TimelineItem","TimelineProvider","getPositionClassName","_props2$labelAlign","_TimelineProvider$val","timelineItemAlign","_TimelineProvider$val2","dotElement","dotContentClass","_dotElement$props","_Timeline","TimeLineProvide","globalAlign","timelineItems","hasLabelItem","TimelineItem","Timeline","props$d","expandIconPlacement","_Collapse","borderlessClass","collapseValue","setCollapseValue","getUniqId","props$c","destroyOnCollapse","headerRightContent","_CollapsePanel","clickableClass","updateCollapseValue","_inject","disableAll","renderParentTNode","iconRef","panelExpandIcon","handleHeaderRightContentClick","tNodeRender","renderBody","Collapse","CollapsePanel","props$b","isRepeat","lineSpace","movable","moveInterval","watermarkContent","_Watermark","backgroundImage","watermarkRef","watermarkContentRef","gapX","gapY","backgroundRepeat","bgImageOptions","injectWaterMark","ratio","canvasWidth","canvasHeight","globalAlpha","markWidth","markHeight","fillStyle","fillRect","contents","_item$isGrayscale","isGrayscale","img","crossOrigin","referrerPolicy","imgData","getImageData","pixels","lightness","putImageData","toDataURL","_item$fontColor","fontColor","_item$fontSize","_item$fontFamily","fontFamily","_item$fontWeight","fontWeight","markSize","font","textAlign","textBaseline","fillText","generateBase64Url","base64Url","_watermarkRef$value","backgroundSize","keyframesStyle","p1","styleElement","styleSheet","sheet","insertRule","cssRules","isRemoved","removedNodes","isModified","Watermark","props$a","allowHalf","_Rate","activeColor","defaultColor","starValue","setStarValue","displayTexts","RateIcon","iconProps","StarFilledIcon","getStarValue","starMiddle","mouseLeaveHandler","getStarCls","clickHandler","mouseEnterHandler","Rate","props$9","copyable","italic","keyboard","strong","reselectPrevious","rangeCount","ranges","getRangeAt","deselectCurrent","whiteSpace","webkitUserSelect","userSelect","clearData","onCopy","copyKey","prompt","removeRange","props$8","Ellipsis","ellipsisState","expandable","ellipsisStyles","def","WebkitLineClamp","WebkitBoxOrient","_props2$ellipsis$onEx","_props2$ellipsis","onCollapse","_props2$ellipsis$onEx2","_props2$ellipsis2","renderEllipsisExpand","moreNode","_ellipsisState$value","collapsible","_Text","isCopied","wrapperDecorations","del","currentContent","needed","_currentContent","tooltipText","_copyable$tooltipProp","renderCopy","CopyIcon","tooltipConf","onCopyClick","_Typography","props$7","_Title","_Paragraph","Typography","Title","Paragraph","props$6","maxLine","_Alert","renderIconTNode","iconType","defaultIcons","iconContent","alertRef","descriptionRef","descHeight","renderClose","closeContent","handleClose","renderDescription","_descriptionRef$value","messageContent","contentLength","hasCollapse","handleCloseEnd","isTransitionTarget","propertyName","operationContent","Alert","props$5","sizeDraggable","onSizeDragEnd","calcSizeRange","isSizeDragging","draggedSizeValue","handleMouseup","handleMousemove","_props$onSizeDragEnd","limit","_getSizeDraggable","allowSizeDraggable","limitMax","limitMin","moveSize","calcMoveSize","draggableLineStyles","isHorizontal","enableDrag","_Drawer","destroyOnCloseVisible","styleTimer","closeDrawer","drawerEle","drawerClasses","defaultSize","wrapperStyles","wrapperClasses","modeAndPlacement","footerStyle","justifyContent","handleEscKeydown","clearStyleFunc","_styleEl$value","_styleEl$value$remove","handleCloseBtnClick","handleWrapperClick","marginStr","updatePushMode","headerContent","Drawer","props$4","counter","hideCounter","hidePrev","hideSkip","highlightPadding","onNextStepClick","onPrevStepClick","onSkip","scrollToParentVisibleArea","excludeStaticParent","overflowRegex","scrollToElm","winHeight","doc","getWindowSize","_Guide","LOCK_CLASS","overlayLayerRef","highlightLayerRef","referenceLayerRef","currentHighlightLayerElm","dialogWrapperRef","dialogTooltipRef","popupTooltipRef","stepsTotal","currentStepInfo","isPopup","getCurrentCrossProps","currentElmIsFixed","_currentStepInfo$valu","currentCustomHighlightContent","highlightContent","hWithParams","showCustomHighlightContent","newH","setHighlightLayerPosition","highlightLayer","isReference","_getRelativePosition","relativeElm","_getWindowScroll","_elm$getBoundingClien","elmTop","elmLeft","_relativeElm$getBound","relElmTop","relElmLeft","relativeElmPosition","getRelativePosition","_currentHighlightLaye","_highlightLayerRef$va","showPopupGuide","_popupTooltipRef$valu","_process","NODE_ENV","getTargetElm","destroyTooltipElm","_referenceLayerRef$va","destroyDialogTooltipElm","_dialogTooltipRef$val","_dialogWrapperRef$val","showGuide","handleSkip","_props2$onSkip","handlePrev","_props2$onPrevStepCli","handleNext","_props2$onNextStepCli","handleFinish","_props2$onFinish","initGuide","_highlightLayerRef$va2","_overlayLayerRef$valu","renderCounter","popupSlotCounter","popupDefaultCounter","renderAction","_getCurrentCrossProps","_getCurrentCrossProps2","_getCurrentCrossProps3","_props2$finishButtonP","buttonSize","renderTooltipBody","functionTitle","slotTitle","descBody","bodyRender","footerClasses","renderPopupGuide","_currentStepInfo$valu2","contentProps","innerClassName","stepOverlayClass","renderDialogGuide","dialogClasses","highlightClass","Guide","props$3","keyframes","_Notification","notificationRef","NotificationList","notificationList","notificationStyles","Notification","seed","showThemeNotification","hackOptions","attachEl","tmpInstance","notify","_notify$$","NotificationFunction","NotificationPlugin","$notify","props$2","_Popconfirm","innerPopupProps","renderTNodeDefault","Popconfirm","props$1","allowUploadDuplicateFile","autoUpload","beforeAllFilesUpload","beforeUpload","cancelUploadButton","dragContent","fileListDisplay","defaultFiles","formatRequest","formatResponse","headers","imageViewerProps","inputAttributes","isBatchUpload","mockProgressDuration","requestMethod","showImageFileName","showThumbnail","showUploadProgress","sizeLimit","triggerButtonProps","uploadAllFilesInOneRequest","uploadButton","uploadPastedFiles","useMockProgress","withCredentials","onCancelUpload","onDragenter","onFail","onOneFileFail","onOneFileSuccess","onPreview","onProgress","onSuccess","onWaitingUploadFilesChange","commonProps","toUploadFiles","displayFiles","sizeOverLimitMessage","onPasteFileChange","placeholderClass","NormalFile","TimeFilledIcon","TdTimeFilledIcon","uploadPrefix","renderProgress","renderFilePreviewAsInput","_props$abridgeName","inputTextClass","disabledClass","_displayFiles$","_displayFiles$0$respo","_files$","dragActive","_props$onDrop","_props$onDragFileChan","dragFiles","onDragFileChange","handleDragenter","_props$onDragenter","handleDragleave","_props$onDragleave","handleDragover","DraggerFile","triggerUpload","uploadFiles","cancelUpload","dragEvents","draggerFileRef","_displayFiles$value$","_file$response","raw","renderUploading","_locale$value$trigger","unActiveElement","_locale$value","fileInfo","uploadTime","_props$cancelUpload","_props$uploadFiles","renderMainPreview","_props$trigger","ImageCard","showTrigger","_displayFiles$value","renderMainContent","_props$onPreview","_props$onRemove","renderProgressFile","loadCard","renderFailFile","_locale$value2","_props$onRemove2","_displayFiles$value2","_locale$value3","customList","cardItemClasses","fileNameClassName","MultipleFlowList","FileExcelIcon","TdFileExcelIcon","FilePdfIcon","TdFilePdfIcon","FileWordIcon","TdFileWordIcon","FilePowerpointIcon","TdFilePowerpointIcon","FileIcon","TdFileIcon","VideoIcon","TdVideoIcon","currentPreviewFile","previewIndex","uploadText","innerDragEvents","getStatusMap","iconMap","waiting","textMap","renderStatus","_file$response2","_getStatusMap2","getFileThumbnailIcon","renderFileThumbnail","_props$onPreview2","renderFileList","_locale$value$file","_locale$value$file2","_locale$value$file3","_locale$value$file4","deleteNode","renderBatchActionCol","renderNormalActionCol","thumbnailNode","fileNameNode","returnFileSize","renderImageList","_getStatusMap","renderImgItem","_locale$value4","cardClassName","cancelUploadDisabled","hasCancelUploadTNode","uploadButtonDisabled","hasUploadButtonTNode","CustomFile","childrenNode","_props$childrenNode2","_props$childrenNode","handleBeforeUpload","sizePromise","sizeLimitObj","fileSize","units","isOverSizeLimit","XMLHttpRequest","currentFiles","uploadOneRequest","handleRequestMethodResponse","resultFiles","toFile","_response","_params$onResponseSuc","onResponseSuccess","_params$onResponseErr","onResponseError","_params$setXhrObject","xhrReq","timer1","timer2","_ref$method","_ref$withCredentials","_ref$headers","_ref$data","_ref$files","_ref$name","_ref$useMockProgress","_ref$mockProgressDura","innerFiles","xhr","requestData","fileField","formData","FormData","setRequestHeader","onerror","ontimeout","onprogress","_innerFiles$","realPercent","progressFiles","responseText","send","requestParams","requestHeaders","_params$onResponseErr2","onResponseProgress","_params$onResponseErr3","_params$onResponseSuc2","handleSuccess","setXhrObject","uploadedFiles","thisUploadFiles","failedFiles","one","tFiles","newFiles","tmpFile","updateUploadedFiles","formatToUploadFile","lastModified","useUpload","uploadValue","setUploadValue","_uploadValue$value","field","waitingUploadFiles","getDisplayFiles","updateFilesProgress","_props$onOneFileFail","_props$onProgress","_props$onOneFileSucce","getSizeLimitError","onFileChange","_props$onSelectChange","currentSelectedFiles","tmpFiles","sameNameFile","hasSameNameFile","lengthOverLimit","tmpFilesLenToBeAdded","allFileValidatePromise","formattedFiles","_params$beforeAllFile","sizeResult","customResult","_results","allFilesResult","others","fileValidateList","validateFile","_args$validateResult","_props$onValidate3","_props$onWaitingUploa","_props$onValidate4","_getFilesAndErrors","getError","sizeLimitErrors","beforeUploadErrorFiles","toFiles","oneFile","_oneFile$validateResu","_oneFile$validateResu2","getFilesAndErrors","tmpWaitingFiles","_props$onValidate5","handleNotAutoUpload","notUploadedFiles","_xhr$files$","_item$files$","_props$onSuccess","_props$onWaitingUploa2","_props$onFail","onInnerRemove","_p$e$stopPropagation","_p$e","_props$onWaitingUploa3","changePrams","_props$onWaitingUploa4","uploadFilePercent","operationUploadFiles","onNormalFileChange","_xhrReq$value","_props$onCancelUpload","_item$xhrReq","abort","_Upload","_useUpload","UploadIcon","TdUploadIcon","triggerUploadButtonText","_props2$triggerButton","_props2$triggerButton2","renderTrigger","commonDisplayFileProps","dragProps","uploadClasses","Upload","_ConfigProvider","ConfigProvider","use","tdesign","PKG_VERSION"],"mappings":"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"} \ No newline at end of file diff --git a/docs/assets/js/vue.global.prod.js b/docs/assets/js/vue.global.prod.js new file mode 100644 index 0000000..b2cd5c3 --- /dev/null +++ b/docs/assets/js/vue.global.prod.js @@ -0,0 +1,9 @@ +/** +* vue v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/var Vue=function(e){"use strict";var t,n;let r,i,l,s,o,a,c,u,d,p,f,h,m;function g(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let y={},b=[],_=()=>{},S=()=>!1,x=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),C=e=>e.startsWith("onUpdate:"),k=Object.assign,T=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},N=Object.prototype.hasOwnProperty,w=(e,t)=>N.call(e,t),A=Array.isArray,E=e=>"[object Map]"===V(e),I=e=>"[object Set]"===V(e),R=e=>"[object Date]"===V(e),O=e=>"[object RegExp]"===V(e),P=e=>"function"==typeof e,M=e=>"string"==typeof e,L=e=>"symbol"==typeof e,$=e=>null!==e&&"object"==typeof e,D=e=>($(e)||P(e))&&P(e.then)&&P(e.catch),F=Object.prototype.toString,V=e=>F.call(e),B=e=>V(e).slice(8,-1),U=e=>"[object Object]"===V(e),j=e=>M(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,H=g(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),q=g("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),W=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},K=/-(\w)/g,z=W(e=>e.replace(K,(e,t)=>t?t.toUpperCase():"")),J=/\B([A-Z])/g,G=W(e=>e.replace(J,"-$1").toLowerCase()),X=W(e=>e.charAt(0).toUpperCase()+e.slice(1)),Q=W(e=>e?`on${X(e)}`:""),Z=(e,t)=>!Object.is(e,t),Y=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},et=e=>{let t=parseFloat(e);return isNaN(t)?e:t},en=e=>{let t=M(e)?Number(e):NaN;return isNaN(t)?e:t},er=()=>r||(r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}),ei=g("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 el(e){if(A(e)){let t={};for(let n=0;n{if(e){let n=e.split(eo);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function eu(e){let t="";if(M(e))t=e;else if(A(e))for(let n=0;neg(e,t))}let ev=e=>!!(e&&!0===e.__v_isRef),eb=e=>M(e)?e:null==e?"":A(e)||$(e)&&(e.toString===F||!P(e.toString))?ev(e)?eb(e.value):JSON.stringify(e,e_,2):String(e),e_=(e,t)=>ev(t)?e_(e,t.value):E(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[eS(t,r)+" =>"]=n,e),{})}:I(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>eS(e))}:L(t)?eS(t):!$(t)||A(t)||U(t)?t:String(t),eS=(e,t="")=>{var n;return L(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class ex{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=i,!e&&i&&(this.index=(i.scopes||(i.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)){if(o){let e=o;for(o=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;s;){let t=s;for(s=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 eA(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eE(e){let t;let n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),eO(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 eI(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eR(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function eR(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eF))return;e.globalVersion=eF;let t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!eI(e)){e.flags&=-3;return}let n=l,r=eP;l=e,eP=!0;try{eA(e);let n=e.fn(e._value);(0===t.version||Z(n,e._value))&&(e._value=n,t.version++)}catch(e){throw t.version++,e}finally{l=n,eP=r,eE(e),e.flags&=-3}}function eO(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)eO(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let eP=!0,eM=[];function eL(){eM.push(eP),eP=!1}function e$(){let e=eM.pop();eP=void 0===e||e}function eD(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=l;l=void 0;try{t()}finally{l=e}}}let eF=0;class eV{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 eB{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}track(e){if(!l||!eP||l===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==l)t=this.activeLink=new eV(l,this),l.deps?(t.prevDep=l.depsTail,l.depsTail.nextDep=t,l.depsTail=t):l.deps=l.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=l.depsTail,t.nextDep=void 0,l.depsTail.nextDep=t,l.depsTail=t,l.deps===t&&(l.deps=e)}return t}trigger(e){this.version++,eF++,this.notify(e)}notify(e){eT++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{ew()}}}let eU=new WeakMap,ej=Symbol(""),eH=Symbol(""),eq=Symbol("");function eW(e,t,n){if(eP&&l){let t=eU.get(e);t||eU.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new eB),r.map=t,r.key=n),r.track()}}function eK(e,t,n,r,i,l){let s=eU.get(e);if(!s){eF++;return}let o=e=>{e&&e.trigger()};if(eT++,"clear"===t)s.forEach(o);else{let i=A(e),l=i&&j(n);if(i&&"length"===n){let e=Number(r);s.forEach((t,n)=>{("length"===n||n===eq||!L(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),l&&o(s.get(eq)),t){case"add":i?l&&o(s.get("length")):(o(s.get(ej)),E(e)&&o(s.get(eH)));break;case"delete":!i&&(o(s.get(ej)),E(e)&&o(s.get(eH)));break;case"set":E(e)&&o(s.get(ej))}}ew()}function ez(e){let t=tx(e);return t===e?t:(eW(t,"iterate",eq),t_(e)?t:t.map(tk))}function eJ(e){return eW(e=tx(e),"iterate",eq),e}let eG={__proto__:null,[Symbol.iterator](){return eX(this,Symbol.iterator,tk)},concat(...e){return ez(this).concat(...e.map(e=>A(e)?ez(e):e))},entries(){return eX(this,"entries",e=>(e[1]=tk(e[1]),e))},every(e,t){return eZ(this,"every",e,t,void 0,arguments)},filter(e,t){return eZ(this,"filter",e,t,e=>e.map(tk),arguments)},find(e,t){return eZ(this,"find",e,t,tk,arguments)},findIndex(e,t){return eZ(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return eZ(this,"findLast",e,t,tk,arguments)},findLastIndex(e,t){return eZ(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return eZ(this,"forEach",e,t,void 0,arguments)},includes(...e){return e0(this,"includes",e)},indexOf(...e){return e0(this,"indexOf",e)},join(e){return ez(this).join(e)},lastIndexOf(...e){return e0(this,"lastIndexOf",e)},map(e,t){return eZ(this,"map",e,t,void 0,arguments)},pop(){return e1(this,"pop")},push(...e){return e1(this,"push",e)},reduce(e,...t){return eY(this,"reduce",e,t)},reduceRight(e,...t){return eY(this,"reduceRight",e,t)},shift(){return e1(this,"shift")},some(e,t){return eZ(this,"some",e,t,void 0,arguments)},splice(...e){return e1(this,"splice",e)},toReversed(){return ez(this).toReversed()},toSorted(e){return ez(this).toSorted(e)},toSpliced(...e){return ez(this).toSpliced(...e)},unshift(...e){return e1(this,"unshift",e)},values(){return eX(this,"values",tk)}};function eX(e,t,n){let r=eJ(e),i=r[t]();return r===e||t_(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.value&&(e.value=n(e.value)),e}),i}let eQ=Array.prototype;function eZ(e,t,n,r,i,l){let s=eJ(e),o=s!==e&&!t_(e),a=s[t];if(a!==eQ[t]){let t=a.apply(e,l);return o?tk(t):t}let c=n;s!==e&&(o?c=function(t,r){return n.call(this,tk(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 eY(e,t,n,r){let i=eJ(e),l=n;return i!==e&&(t_(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,tk(r),i,e)}),i[t](l,...r)}function e0(e,t,n){let r=tx(e);eW(r,"iterate",eq);let i=r[t](...n);return(-1===i||!1===i)&&tS(n[0])?(n[0]=tx(n[0]),r[t](...n)):i}function e1(e,t,n=[]){eL(),eT++;let r=tx(e)[t].apply(e,n);return ew(),e$(),r}let e2=g("__proto__,__v_isRef,__isVue"),e3=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=tx(this);return eW(t,"has",e),t.hasOwnProperty(e)}class e4{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?tf:tp:i?td:tu).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let l=A(e);if(!r){let e;if(l&&(e=eG[t]))return e;if("hasOwnProperty"===t)return e6}let s=Reflect.get(e,t,tN(e)?e:n);return(L(t)?e3.has(t):e2(t))?s:(r||eW(e,"get",t),i)?s:tN(s)?l&&j(t)?s:s.value:$(s)?r?tg(s):th(s):s}}class e8 extends e4{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t];if(!this._isShallow){let t=tb(i);if(t_(n)||tb(n)||(i=tx(i),n=tx(n)),!A(e)&&tN(i)&&!tN(n))return!t&&(i.value=n,!0)}let l=A(e)&&j(t)?Number(t)e,tr=e=>Reflect.getPrototypeOf(e);function ti(e){return function(...t){return"delete"!==e&&("clear"===e?void 0:this)}}function tl(e,t){let n=function(e,t){let n={get(n){let r=this.__v_raw,i=tx(r),l=tx(n);e||(Z(n,l)&&eW(i,"get",n),eW(i,"get",l));let{has:s}=tr(i),o=t?tn:e?tT:tk;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||eW(tx(t),"iterate",ej),Reflect.get(t,"size",t)},has(t){let n=this.__v_raw,r=tx(n),i=tx(t);return e||(Z(t,i)&&eW(r,"has",t),eW(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=tx(l),o=t?tn:e?tT:tk;return e||eW(s,"iterate",ej),l.forEach((e,t)=>n.call(r,o(e),o(t),i))}};return k(n,e?{add:ti("add"),set:ti("set"),delete:ti("delete"),clear:ti("clear")}:{add(e){t||t_(e)||tb(e)||(e=tx(e));let n=tx(this);return tr(n).has.call(n,e)||(n.add(e),eK(n,"add",e,e)),this},set(e,n){t||t_(n)||tb(n)||(n=tx(n));let r=tx(this),{has:i,get:l}=tr(r),s=i.call(r,e);s||(e=tx(e),s=i.call(r,e));let o=l.call(r,e);return r.set(e,n),s?Z(n,o)&&eK(r,"set",e,n):eK(r,"add",e,n),this},delete(e){let t=tx(this),{has:n,get:r}=tr(t),i=n.call(t,e);i||(e=tx(e),i=n.call(t,e)),r&&r.call(t,e);let l=t.delete(e);return i&&eK(t,"delete",e,void 0),l},clear(){let e=tx(this),t=0!==e.size,n=e.clear();return t&&eK(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i=this.__v_raw,l=tx(i),s=E(l),o="entries"===r||r===Symbol.iterator&&s,a=i[r](...n),c=t?tn:e?tT:tk;return e||eW(l,"iterate","keys"===r&&s?eH:ej),{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(w(n,r)&&r in t?n:t,r,i)}let ts={get:tl(!1,!1)},to={get:tl(!1,!0)},ta={get:tl(!0,!1)},tc={get:tl(!0,!0)},tu=new WeakMap,td=new WeakMap,tp=new WeakMap,tf=new WeakMap;function th(e){return tb(e)?e:ty(e,!1,e9,ts,tu)}function tm(e){return ty(e,!1,te,to,td)}function tg(e){return ty(e,!0,e7,ta,tp)}function ty(e,t,n,r,i){if(!$(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let l=i.get(e);if(l)return l;let s=e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}(B(e));if(0===s)return e;let o=new Proxy(e,2===s?r:n);return i.set(e,o),o}function tv(e){return tb(e)?tv(e.__v_raw):!!(e&&e.__v_isReactive)}function tb(e){return!!(e&&e.__v_isReadonly)}function t_(e){return!!(e&&e.__v_isShallow)}function tS(e){return!!e&&!!e.__v_raw}function tx(e){let t=e&&e.__v_raw;return t?tx(t):e}function tC(e){return!w(e,"__v_skip")&&Object.isExtensible(e)&&ee(e,"__v_skip",!0),e}let tk=e=>$(e)?th(e):e,tT=e=>$(e)?tg(e):e;function tN(e){return!!e&&!0===e.__v_isRef}function tw(e){return tE(e,!1)}function tA(e){return tE(e,!0)}function tE(e,t){return tN(e)?e:new tI(e,t)}class tI{constructor(e,t){this.dep=new eB,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:tx(e),this._value=t?e:tk(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||t_(e)||tb(e);Z(e=n?e:tx(e),t)&&(this._rawValue=e,this._value=n?e:tk(e),this.dep.trigger())}}function tR(e){return tN(e)?e.value:e}let tO={get:(e,t,n)=>"__v_raw"===t?e:tR(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return tN(i)&&!tN(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tP(e){return tv(e)?e:new Proxy(e,tO)}class tM{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new eB,{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 tL(e){return new tM(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=eU.get(e);return n&&n.get(t)}(tx(this._object),this._key)}}class tD{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 tF(e,t,n){let r=e[t];return tN(r)?r:new t$(e,t,n)}class tV{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eB(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eF-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&l!==this)return eN(this,!0),!0}get value(){let e=this.dep.track();return eR(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tB={},tU=new WeakMap;function tj(e,t=!1,n=h){if(n){let t=tU.get(n);t||tU.set(n,t=[]),t.push(e)}}function tH(e,t=1/0,n){if(t<=0||!$(e)||e.__v_skip||(n=n||new Set).has(e))return e;if(n.add(e),t--,tN(e))tH(e.value,t,n);else if(A(e))for(let r=0;r{tH(e,t,n)});else if(U(e)){for(let r in e)tH(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&tH(e[r],t,n)}return e}function tq(e,t,n,r){try{return r?e(...r):e()}catch(e){tK(e,t,n)}}function tW(e,t,n,r){if(P(e)){let i=tq(e,t,n,r);return i&&D(i)&&i.catch(e=>{tK(e,t,n)}),i}if(A(e)){let i=[];for(let l=0;l=t8(n)?tz.push(e):tz.splice(function(e){let t=tJ+1,n=tz.length;for(;t>>1,i=tz[r],l=t8(i);lt8(e)-t8(t));if(tG.length=0,tX){tX.push(...e);return}for(tQ=0,tX=e;tQnull==e.id?2&e.flags?-1:1/0:e.id,t5=null,t9=null;function t7(e){let t=t5;return t5=e,t9=e&&e.type.__scopeId||null,t}function ne(e,t=t5,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&im(-1);let l=t7(t);try{i=e(...n)}finally{t7(l),r._d&&im(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function nt(e,t,n,r){let i=e.dirs,l=t&&t.dirs;for(let s=0;se.__isTeleport,ni=e=>e&&(e.disabled||""===e.disabled),nl=e=>e&&(e.defer||""===e.defer),ns=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,no=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,na=(e,t)=>{let n=e&&e.to;return M(n)?t?t(n):null:n},nc={name:"Teleport",__isTeleport:!0,process(e,t,n,r,i,l,s,o,a,c){let{mc:u,pc:d,pbc:p,o:{insert:f,querySelector:h,createText:m,createComment:g}}=c,y=ni(t.props),{shapeFlag:b,children:_,dynamicChildren:S}=t;if(null==e){let e=t.el=m(""),c=t.anchor=m("");f(e,n,r),f(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=na(t.props,h),n=np(e,t,m,f);e&&("svg"!==s&&ns(e)?s="svg":"mathml"!==s&&no(e)&&(s="mathml"),y||(d(e,n),nd(t,!1)))};y&&(d(n,c),nd(t,!0)),nl(t.props)?rB(()=>{p(),t.el.__isMounted=!0},l):p()}else{if(nl(t.props)&&!e.el.__isMounted){rB(()=>{nc.process(e,t,n,r,i,l,s,o,a,c),delete e.el.__isMounted},l);return}t.el=e.el,t.targetStart=e.targetStart;let u=t.anchor=e.anchor,f=t.target=e.target,m=t.targetAnchor=e.targetAnchor,g=ni(e.props),b=g?n:f;if("svg"===s||ns(f)?s="svg":("mathml"===s||no(f))&&(s="mathml"),S?(p(e.dynamicChildren,S,b,i,l,s,o),rK(e,t,!0)):a||d(e,t,b,g?u:m,i,l,s,o,!1),y)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):nu(t,n,u,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=na(t.props,h);e&&nu(t,e,null,c,0)}else g&&nu(t,f,m,c,1);nd(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||!ni(p);for(let i=0;i{e.isMounted=!0}),n3(()=>{e.isUnmounting=!0}),e}let ng=[Function,Array],ny={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ng,onEnter:ng,onAfterEnter:ng,onEnterCancelled:ng,onBeforeLeave:ng,onLeave:ng,onAfterLeave:ng,onLeaveCancelled:ng,onBeforeAppear:ng,onAppear:ng,onAfterAppear:ng,onAppearCancelled:ng},nv=e=>{let t=e.subTree;return t.component?nv(t.component):t};function nb(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==io){t=n;break}}return t}let n_={name:"BaseTransition",props:ny,setup(e,{slots:t}){let n=iL(),r=nm();return()=>{let i=t.default&&nN(t.default(),!0);if(!i||!i.length)return;let l=nb(i),s=tx(e),{mode:o}=s;if(r.isLeaving)return nC(l);let a=nk(l);if(!a)return nC(l);let c=nx(a,s,r,n,e=>c=e);a.type!==io&&nT(a,c);let u=n.subTree&&nk(n.subTree);if(u&&u.type!==io&&!ib(a,u)&&nv(n).type!==io){let e=nx(u,s,r,n);if(nT(u,e),"out-in"===o&&a.type!==io)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,u=void 0},nC(l);"in-out"===o&&a.type!==io?e.delayLeave=(e,t,n)=>{nS(r,u)[String(u.key)]=u,e[nf]=()=>{t(),e[nf]=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 nS(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function nx(e,t,n,r,i){let{appear:l,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:f,onAfterLeave:h,onLeaveCancelled:m,onBeforeAppear:g,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,S=String(e.key),x=nS(n,e),C=(e,t)=>{e&&tW(e,r,9,t)},k=(e,t)=>{let n=t[1];C(e,t),A(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;r=g||a}t[nf]&&t[nf](!0);let i=x[S];i&&ib(e,i)&&i.el[nf]&&i.el[nf](),C(r,[t])},enter(e){let t=c,r=u,i=d;if(!n.isMounted){if(!l)return;t=y||c,r=b||u,i=_||d}let s=!1,o=e[nh]=t=>{s||(s=!0,t?C(i,[e]):C(r,[e]),T.delayedLeave&&T.delayedLeave(),e[nh]=void 0)};t?k(t,[e,o]):o()},leave(t,r){let i=String(e.key);if(t[nh]&&t[nh](!0),n.isUnmounting)return r();C(p,[t]);let l=!1,s=t[nf]=n=>{l||(l=!0,r(),n?C(m,[t]):C(h,[t]),t[nf]=void 0,x[i]!==e||delete x[i])};x[i]=e,f?k(f,[t,s]):s()},clone(e){let l=nx(e,t,n,r,i);return i&&i(l),l}};return T}function nC(e){if(nq(e))return(e=iT(e)).children=null,e}function nk(e){if(!nq(e))return nr(e.type)&&e.children?nb(e.children):e;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&P(n.default))return n.default()}}function nT(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nT(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 nN(e,t=!1,n){let r=[],i=0;for(let l=0;l1)for(let e=0;enE(e,t&&(A(t)?t[l]:t),n,r,i));return}if(nj(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&nE(e,t,n,r.component.subTree);return}let l=4&r.shapeFlag?iW(r.component):r.el,s=i?null:l,{i:o,r:a}=e,c=t&&t.r,u=o.refs===y?o.refs={}:o.refs,d=o.setupState,p=tx(d),f=d===y?()=>!1:e=>w(p,e);if(null!=c&&c!==a&&(M(c)?(u[c]=null,f(c)&&(d[c]=null)):tN(c)&&(c.value=null)),P(a))tq(a,o,12,[s,u]);else{let t=M(a),r=tN(a);if(t||r){let o=()=>{if(e.f){let n=t?f(a)?d[a]:u[a]:a.value;i?A(n)&&T(n,l):A(n)?n.includes(l)||n.push(l):t?(u[a]=[l],f(a)&&(d[a]=u[a])):(a.value=[l],e.k&&(u[e.k]=a.value))}else t?(u[a]=s,f(a)&&(d[a]=s)):r&&(a.value=s,e.k&&(u[e.k]=s))};s?(o.id=-1,rB(o,n)):o()}}}let nI=!1,nR=()=>{nI||(console.error("Hydration completed but contains mismatches."),nI=!0)},nO=e=>e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName,nP=e=>e.namespaceURI.includes("MathML"),nM=e=>{if(1===e.nodeType){if(nO(e))return"svg";if(nP(e))return"mathml"}},nL=e=>8===e.nodeType;function n$(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=nL(n)&&"["===n.data,x=()=>h(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 is: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 io:y(n)?(A=l(n),g(r.el=n.content.firstChild,n,o)):A=8!==w||S?x():l(n);break;case ia: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:f,transition:h}=t,m="input"===a||"option"===a;if(m||-1!==u){let a;f&&nt(t,null,n,"created");let b=!1;if(y(e)){b=rW(null,h)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;b&&h.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;){nV(e,1)||nR();let t=r;r=r.nextSibling,o(t)}}else if(8&d){let n=t.children;"\n"===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1)),e.textContent!==n&&(nV(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)||x(i)&&!H(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)&&iR(a,n,t),f&&nt(t,null,n,"beforeMount"),((a=c&&c.onVnodeMounted)||f||b)&&ir(()=>{a&&iR(a,n,t),b&&h.enter(e),f&&nt(t,null,n,"mounted")},i)}return e.nextSibling},p=(e,t,r,s,o,c,d)=>{d=d||!!t.dynamicChildren;let p=t.children,f=p.length;for(let t=0;t{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let d=s(e),f=p(l(e),t,d,n,r,i,o);return f&&nL(f)&&"]"===f.data?l(t.anchor=f):(nR(),a(t.anchor=c("]"),d,f),f)},h=(e,t,r,i,a,c)=>{if(nV(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,nM(d),a),r&&(r.vnode.el=t.el,r8(r,t.el)),u},m=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=l(e))&&nL(e)&&(e.data===t&&r++,e.data===n)){if(0===r)return l(e);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),t4(),t._vnode=e;return}u(t.firstChild,e,null,null,null),t4(),t._vnode=e},u]}let nD="data-allow-mismatch",nF={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function nV(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nD);)e=e.parentElement;let n=e&&e.getAttribute(nD);if(null==n)return!1;if(""===n)return!0;{let e=n.split(",");return!!(0===t&&e.includes("children"))||n.split(",").includes(nF[t])}}let nB=er().requestIdleCallback||(e=>setTimeout(e,1)),nU=er().cancelIdleCallback||(e=>clearTimeout(e)),nj=e=>!!e.type.__asyncLoader;function nH(e,t){let{ref:n,props:r,children:i,ce:l}=t.vnode,s=iC(e,r,i);return s.ref=n,s.ce=l,delete t.vnode.ce,s}let nq=e=>e.type.__isKeepAlive;function nW(e,t){return A(e)?e.some(e=>nW(e,t)):M(e)?e.split(",").includes(t):!!O(e)&&(e.lastIndex=0,e.test(t))}function nK(e,t){nJ(e,"a",t)}function nz(e,t){nJ(e,"da",t)}function nJ(e,t,n=iM){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(nQ(t,r,n),n){let e=n.parent;for(;e&&e.parent;)nq(e.parent.vnode)&&function(e,t,n,r){let i=nQ(t,e,r,!0);n6(()=>{T(r[t],i)},n)}(r,t,n,e),e=e.parent}}function nG(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function nX(e){return 128&e.shapeFlag?e.ssContent:e}function nQ(e,t,n=iM,r=!1){if(n){let i=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...r)=>{eL();let i=i$(n),l=tW(t,n,e,r);return i(),e$(),l});return r?i.unshift(l):i.push(l),l}}let nZ=e=>(t,n=iM)=>{iV&&"sp"!==e||nQ(e,(...e)=>t(...e),n)},nY=nZ("bm"),n0=nZ("m"),n1=nZ("bu"),n2=nZ("u"),n3=nZ("bum"),n6=nZ("um"),n4=nZ("sp"),n8=nZ("rtg"),n5=nZ("rtc");function n9(e,t=iM){nQ("ec",e,t)}let n7="components",re=Symbol.for("v-ndc");function rt(e,t,n=!0,r=!1){let i=t5||iM;if(i){let n=i.type;if(e===n7){let e=iK(n,!1);if(e&&(e===t||e===z(t)||e===X(z(t))))return n}let l=rn(i[e]||n[e],t)||rn(i.appContext[e],t);return!l&&r?n:l}}function rn(e,t){return e&&(e[t]||e[z(t)]||e[X(z(t))])}let rr=e=>e?iF(e)?iW(e):rr(e.parent):null,ri=k(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=>rr(e.parent),$root:e=>rr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>rp(e),$forceUpdate:e=>e.f||(e.f=()=>{t1(e.update)}),$nextTick:e=>e.n||(e.n=t0.bind(e.proxy)),$watch:e=>rQ.bind(e)}),rl=(e,t)=>e!==y&&!e.__isScriptSetup&&w(e,t),rs={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(rl(s,t))return c[t]=1,s[t];if(o!==y&&w(o,t))return c[t]=2,o[t];if((n=e.propsOptions[0])&&w(n,t))return c[t]=3,a[t];if(l!==y&&w(l,t))return c[t]=4,l[t];ru&&(c[t]=0)}}let p=ri[t];return p?("$attrs"===t&&eW(e.attrs,"get",""),p(e)):(r=u.__cssModules)&&(r=r[t])?r:l!==y&&w(l,t)?(c[t]=4,l[t]):w(i=d.config.globalProperties,t)?i[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:l}=e;return rl(i,t)?(i[t]=n,!0):r!==y&&w(r,t)?(r[t]=n,!0):!w(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}},s){let o;return!!n[s]||e!==y&&w(e,s)||rl(t,s)||(o=l[0])&&w(o,s)||w(r,s)||w(ri,s)||w(i.config.globalProperties,s)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:w(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},ro=k({},rs,{get(e,t){if(t!==Symbol.unscopables)return rs.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!ei(t)});function ra(){let e=iL();return e.setupContext||(e.setupContext=iq(e))}function rc(e){return A(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let ru=!0;function rd(e,t,n){tW(A(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function rp(e){let t;let 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=>rf(t,e,o,!0)),rf(t,n,o)):t=n,$(n)&&s.set(n,t),t}function rf(e,t,n,r=!1){let{mixins:i,extends:l}=t;for(let s in l&&rf(e,l,n,!0),i&&i.forEach(t=>rf(e,t,n,!0)),t)if(r&&"expose"===s);else{let r=rh[s]||n&&n[s];e[s]=r?r(e[s],t[s]):t[s]}return e}let rh={data:rm,props:rb,emits:rb,methods:rv,computed:rv,beforeCreate:ry,created:ry,beforeMount:ry,mounted:ry,beforeUpdate:ry,updated:ry,beforeDestroy:ry,beforeUnmount:ry,destroyed:ry,unmounted:ry,activated:ry,deactivated:ry,errorCaptured:ry,serverPrefetch:ry,components:rv,directives:rv,watch:function(e,t){if(!e)return t;if(!t)return e;let n=k(Object.create(null),e);for(let r in t)n[r]=ry(e[r],t[r]);return n},provide:rm,inject:function(e,t){return rv(rg(e),rg(t))}};function rm(e,t){return t?e?function(){return k(P(e)?e.call(this,this):e,P(t)?t.call(this,this):t)}:t:e}function rg(e){if(A(e)){let t={};for(let n=0;n1)return n&&P(t)?t.call(r&&r.proxy):t}}let rT={},rN=()=>Object.create(rT),rw=e=>Object.getPrototypeOf(e)===rT;function rA(e,t,n,r){let i;let[l,s]=e.propsOptions,o=!1;if(t)for(let a in t){let c;if(H(a))continue;let u=t[a];l&&w(l,c=z(a))?s&&s.includes(c)?(i||(i={}))[c]=u:n[c]=u:r1(e.emitsOptions,a)||a in r&&u===r[a]||(r[a]=u,o=!0)}if(s){let t=tx(n),r=i||y;for(let i=0;i"_"===e[0]||"$stable"===e,rP=e=>A(e)?e.map(iw):[iw(e)],rM=(e,t,n)=>{if(t._n)return t;let r=ne((...e)=>rP(t(...e)),n);return r._c=!1,r},rL=(e,t,n)=>{let r=e._ctx;for(let n in e){if(rO(n))continue;let i=e[n];if(P(i))t[n]=rM(n,i,r);else if(null!=i){let e=rP(i);t[n]=()=>e}}},r$=(e,t)=>{let n=rP(t);e.slots.default=()=>n},rD=(e,t,n)=>{for(let r in t)(n||"_"!==r)&&(e[r]=t[r])},rF=(e,t,n)=>{let r=e.slots=rN();if(32&e.vnode.shapeFlag){let e=t._;e?(rD(r,t,n),n&&ee(r,"_",e,!0)):rL(t,r)}else t&&r$(e,t)},rV=(e,t,n)=>{let{vnode:r,slots:i}=e,l=!0,s=y;if(32&r.shapeFlag){let e=t._;e?n&&1===e?l=!1:rD(i,t,n):(l=!t.$stable,rL(t,i)),s=t}else t&&(r$(e,t),s={default:1});if(l)for(let e in i)rO(e)||null!=s[e]||delete i[e]},rB=ir;function rU(e){return rj(e,n$)}function rj(e,t){var n;let r,i;er().__VUE__=!0;let{insert:l,remove:s,patchProp:o,createElement:a,createText:u,createComment:d,setText:p,setElementText:f,parentNode:h,nextSibling:m,setScopeId:g=_,insertStaticContent:S}=e,x=(e,t,n,r=null,i=null,l=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!ib(e,t)&&(r=eo(e),et(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 is:C(e,t,n,r);break;case io:T(e,t,n,r);break;case ia:null==e&&N(t,n,r,s);break;case il:U(e,t,n,r,i,l,s,o,a);break;default:1&d?R(e,t,n,r,i,l,s,o,a):6&d?j(e,t,n,r,i,l,s,o,a):64&d?c.process(e,t,n,r,i,l,s,o,a,eu):128&d&&c.process(e,t,n,r,i,l,s,o,a,eu)}null!=u&&i&&nE(u,e&&e.ref,l,t||e,!t)},C=(e,t,n,r)=>{if(null==e)l(t.el=u(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&p(n,t.children)}},T=(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]=S(e.children,t,n,r,e.el,e.anchor)},E=({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=m(e),l(e,n,r),e=i;l(t,n,r)},I=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=m(e),s(e),e=n;s(t)},R=(e,t,n,r,i,l,s,o,a)=>{"svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e?O(t,n,r,i,l,s,o,a):F(e,t,i,l,s,o,a)},O=(e,t,n,r,i,s,c,u)=>{let d,p;let{props:h,shapeFlag:m,transition:g,dirs:y}=e;if(d=e.el=a(e.type,s,h&&h.is,h),8&m?f(d,e.children):16&m&&L(e.children,d,null,r,i,rH(e,s),c,u),y&&nt(e,null,r,"created"),M(d,e,e.scopeId,c,r),h){for(let e in h)"value"===e||H(e)||o(d,e,null,h[e],s,r);"value"in h&&o(d,"value",null,h.value,s),(p=h.onVnodeBeforeMount)&&iR(p,r,e)}y&&nt(e,null,r,"beforeMount");let b=rW(i,g);b&&g.beforeEnter(d),l(d,t,n),((p=h&&h.onVnodeMounted)||b||y)&&rB(()=>{p&&iR(p,r,e),b&&g.enter(d),y&&nt(e,null,r,"mounted")},i)},M=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let c=a;c{let a;let c=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:p}=t;u|=16&e.patchFlag;let h=e.props||y,m=t.props||y;if(n&&rq(n,!1),(a=m.onVnodeBeforeUpdate)&&iR(a,n,t,e),p&&nt(t,e,n,"beforeUpdate"),n&&rq(n,!0),(h.innerHTML&&null==m.innerHTML||h.textContent&&null==m.textContent)&&f(c,""),d?V(e.dynamicChildren,d,c,n,r,rH(t,i),l):s||X(e,t,c,null,n,r,rH(t,i),l,!1),u>0){if(16&u)B(c,h,m,n,i);else if(2&u&&h.class!==m.class&&o(c,"class",null,m.class,i),4&u&&o(c,"style",h.style,m.style,i),8&u){let e=t.dynamicProps;for(let t=0;t{a&&iR(a,n,t,e),p&&nt(t,e,n,"updated")},r)},V=(e,t,n,r,i,l,s)=>{for(let o=0;o{if(t!==n){if(t!==y)for(let l in t)H(l)||l in n||o(e,l,t[l],null,i,r);for(let l in n){if(H(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)}},U=(e,t,n,r,i,s,o,a,c)=>{let d=t.el=e?e.el:u(""),p=t.anchor=e?e.anchor:u(""),{patchFlag:f,dynamicChildren:h,slotScopeIds:m}=t;m&&(a=a?a.concat(m):m),null==e?(l(d,n,r),l(p,n,r),L(t.children||[],n,p,i,s,o,a,c)):f>0&&64&f&&h&&e.dynamicChildren?(V(e.dynamicChildren,h,n,i,s,o,a),(null!=t.key||i&&t===i.subTree)&&rK(e,t,!0)):X(e,t,n,p,i,s,o,a,c)},j=(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):q(t,n,r,i,l,s,a):W(e,t,a)},q=(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)||iO,l={uid:iP++,vnode:e,type:r,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ex(!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?rI: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);k(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,b),b;if(A(s))for(let e=0;e{let r=e(t,n,!0);r&&(a=!0,k(o,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return s||a?(A(s)?s.forEach(e=>o[e]=null):k(o,s),$(t)&&i.set(t,o),o):($(t)&&i.set(t,null),null)}(r,i),emit:null,emitted:null,propsDefaults:y,inheritAttrs:r.inheritAttrs,ctx:y,data:y,props:y,attrs:y,slots:y,refs:y,setupState:y,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=r0.bind(null,l),e.ce&&e.ce(l),l}(e,r,i);nq(e)&&(o.ctx.renderer=eu),function(e,t=!1,n=!1){t&&c(t);let{props:r,children:i}=e.vnode,l=iF(e);(function(e,t,n,r=!1){let i={},l=rN();for(let n in e.propsDefaults=Object.create(null),rA(e,t,i,l),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:tm(i):e.type.props?e.props=i:e.props=l,e.attrs=l})(e,r,l,t),rF(e,i,n),l&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,rs);let{setup:r}=n;if(r){eL();let n=e.setupContext=r.length>1?iq(e):null,i=i$(e),l=tq(r,e,0,[e.props,n]),s=D(l);if(e$(),i(),(s||e.sp)&&!nj(e)&&nA(e),s){if(l.then(iD,iD),t)return l.then(n=>{iB(e,n,t)}).catch(t=>{tK(t,e,0)});e.asyncDep=l}else iB(e,l,t)}else ij(e,t)}(e,t),t&&c(!1)}(o,!1,s),o.asyncDep?(i&&i.registerDep(o,K,s),e.el||T(null,o.subTree=iC(io),t,n)):K(o,e,t,n,i,l,s)},W=(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||r4(r,s,c):!!s);if(1024&a)return!0;if(16&a)return r?r4(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)return n.asyncDep&&!n.asyncResolved?n:e(n)}(e);if(t){n&&(n.el=u.el,J(e,n,o)),t.asyncDep.then(()=>{e.isUnmounted||a()});return}}let d=n;rq(e,!1),n?(n.el=u.el,J(e,n,o)):n=u,r&&Y(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&iR(t,c,n,u),rq(e,!0);let p=r2(e),f=e.subTree;e.subTree=p,x(f,p,h(f.el),eo(f),e,l,s),n.el=p.el,null===d&&r8(e,p.el),i&&rB(i,l),(t=n.props&&n.props.onVnodeUpdated)&&rB(()=>iR(t,c,n,u),l)}else{let o;let{el:a,props:c}=t,{bm:u,m:d,parent:p,root:f,type:h}=e,m=nj(t);if(rq(e,!1),u&&Y(u),!m&&(o=c&&c.onVnodeBeforeMount)&&iR(o,p,t),rq(e,!0),a&&i){let t=()=>{e.subTree=r2(e),i(a,e.subTree,e,l,null)};m&&h.__asyncHydrate?h.__asyncHydrate(a,e,t):t()}else{f.ce&&f.ce._injectChildStyle(h);let i=e.subTree=r2(e);x(null,i,n,r,e,l,s),t.el=i.el}if(d&&rB(d,l),!m&&(o=c&&c.onVnodeMounted)){let e=t;rB(()=>iR(o,p,e),l)}(256&t.shapeFlag||p&&nj(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&rB(e.a,l),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new ek(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=()=>t1(d),rq(e,!0),u()},J=(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=tx(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 c=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:p,shapeFlag:h}=t;if(p>0){if(128&p){Z(c,d,n,r,i,l,s,o,a);return}if(256&p){Q(c,d,n,r,i,l,s,o,a);return}}8&h?(16&u&&es(c,i,l),d!==c&&f(n,d)):16&u?16&h?Z(c,d,n,r,i,l,s,o,a):es(c,i,l,!0):(8&u&&f(n,""),16&h&&L(d,n,r,i,l,s,o,a))},Q=(e,t,n,r,i,l,s,o,a)=>{let c;e=e||b,t=t||b;let u=e.length,d=t.length,p=Math.min(u,d);for(c=0;cd?es(e,i,l,!0,!1,p):L(t,n,r,i,l,s,o,a,p)},Z=(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?iA(t[c]):iw(t[c]);if(ib(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?iA(t[p]):iw(t[p]);if(ib(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;)et(e[c],i,l,!0),c++;else{let f;let h=c,m=c,g=new Map;for(c=m;c<=p;c++){let e=t[c]=a?iA(t[c]):iw(t[c]);null!=e.key&&g.set(e.key,c)}let y=0,_=p-m+1,S=!1,C=0,k=Array(_);for(c=0;c<_;c++)k[c]=0;for(c=h;c<=d;c++){let r;let u=e[c];if(y>=_){et(u,i,l,!0);continue}if(null!=u.key)r=g.get(u.key);else for(f=m;f<=p;f++)if(0===k[f-m]&&ib(u,t[f])){r=f;break}void 0===r?et(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;let 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):b;for(f=T.length-1,c=_-1;c>=0;c--){let e=m+c,d=t[e],p=e+1{let{el:s,type:o,transition:a,children:c,shapeFlag:u}=e;if(6&u){ee(e.component.subTree,t,n,r);return}if(128&u){e.suspense.move(t,n,r);return}if(64&u){o.move(e,t,n,eu);return}if(o===il){l(s,t,n);for(let e=0;ea.enter(s),i);else{let{leave:e,delayLeave:r,afterLeave:i}=a,o=()=>l(s,t,n),c=()=>{e(s,()=>{o(),i&&i()})};r?r(s,o,c):c()}}else l(s,t,n)},et=(e,t,n,r=!1,i=!1)=>{let l;let{type:s,props:o,ref:a,children:c,dynamicChildren:u,shapeFlag:d,patchFlag:p,dirs:f,cacheIndex:h}=e;if(-2===p&&(i=!1),null!=a&&nE(a,null,n,e,!0),null!=h&&(t.renderCache[h]=void 0),256&d){t.ctx.deactivate(e);return}let m=1&d&&f,g=!nj(e);if(g&&(l=o&&o.onVnodeBeforeUnmount)&&iR(l,t,e),6&d)el(e.component,n,r);else{if(128&d){e.suspense.unmount(n,r);return}m&&nt(e,null,t,"beforeUnmount"),64&d?e.type.remove(e,t,n,eu,r):u&&!u.hasOnce&&(s!==il||p>0&&64&p)?es(u,t,n,!1,!0):(s===il&&384&p||!i&&16&d)&&es(c,t,n),r&&en(e)}(g&&(l=o&&o.onVnodeUnmounted)||m)&&rB(()=>{l&&iR(l,t,e),m&&nt(e,null,t,"unmounted")},n)},en=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===il){ei(n,r);return}if(t===ia){I(e);return}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()},ei=(e,t)=>{let n;for(;e!==t;)n=m(e),s(e),e=n;s(t)},el=(e,t,n)=>{let{bum:r,scope:i,job:l,subTree:s,um:o,m:a,a:c}=e;rz(a),rz(c),r&&Y(r),i.stop(),l&&(l.flags|=8,et(s,e,t,n)),o&&rB(o,t),rB(()=>{e.isUnmounted=!0},t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},es=(e,t,n,r=!1,i=!1,l=0)=>{for(let s=l;s{if(6&e.shapeFlag)return eo(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=m(e.anchor||e.el),n=t&&t[nn];return n?m(n):t},ea=!1,ec=(e,t,n)=>{null==e?t._vnode&&et(t._vnode,null,null,!0):x(t._vnode||null,e,t,null,null,null,n),t._vnode=e,ea||(ea=!0,t6(),t4(),ea=!1)},eu={p:x,um:et,m:ee,r:en,mt:q,mc:L,pc:X,pbc:V,n:eo,o:e};return t&&([r,i]=t(eu)),{render:ec,hydrate:r,createApp:(n=r,function(e,t=null){P(e)||(e=k({},e)),null==t||$(t)||(t=null);let r=r_(),i=new WeakSet,l=[],s=!1,o=r.app={_uid:rS++,_component:e,_props:t,_container:null,_context:r,_instance:null,version:iX,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||iC(e,t);return c.appContext=r,!0===a?a="svg":!1===a&&(a=void 0),l&&n?n(c,i):ec(c,i,a),s=!0,o._container=i,i.__vue_app__=o,iW(c.component)}},onUnmount(e){l.push(e)},unmount(){s&&(tW(l,o._instance,16),ec(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,o),runWithContext(e){let t=rx;rx=o;try{return e()}finally{rx=t}}};return o})}}function rH({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 rq({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rW(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rK(e,t,n=!1){let r=e.children,i=t.children;if(A(r)&&A(i))for(let e=0;etW(e,c,t,n);let u=!1;return"post"===s?a.scheduler=e=>{rB(e,c&&c.suspense)}:"sync"!==s&&(u=!0,a.scheduler=(e,t)=>{t?e():t1(e)}),a.augmentJob=e=>{t&&(e.flags|=4),u&&(e.flags|=2,c&&(e.id=c.uid,e.i=c))},function(e,t,n=y){let r,l,s,o;let{immediate:a,deep:c,once:u,scheduler:d,augmentJob:p,call:f}=n,m=e=>c?e:t_(e)||!1===c||0===c?tH(e,1):tH(e),g=!1,b=!1;if(tN(e)?(l=()=>e.value,g=t_(e)):tv(e)?(l=()=>m(e),g=!0):A(e)?(b=!0,g=e.some(e=>tv(e)||t_(e)),l=()=>e.map(e=>tN(e)?e.value:tv(e)?m(e):P(e)?f?f(e,2):e():void 0)):l=P(e)?t?f?()=>f(e,2):e:()=>{if(s){eL();try{s()}finally{e$()}}let t=h;h=r;try{return f?f(e,3,[o]):e(o)}finally{h=t}}:_,t&&c){let e=l,t=!0===c?1/0:c;l=()=>tH(e(),t)}let S=i,x=()=>{r.stop(),S&&S.active&&T(S.effects,r)};if(u&&t){let e=t;t=(...t)=>{e(...t),x()}}let C=b?Array(e.length).fill(tB):tB,k=e=>{if(1&r.flags&&(r.dirty||e)){if(t){let e=r.run();if(c||g||(b?e.some((e,t)=>Z(e,C[t])):Z(e,C))){s&&s();let n=h;h=r;try{let n=[e,C===tB?void 0:b&&C[0]===tB?[]:C,o];f?f(t,3,n):t(...n),C=e}finally{h=n}}}else r.run()}};return p&&p(k),(r=new ek(l)).scheduler=d?()=>d(k,!1):k,o=e=>tj(e,!1,r),s=r.onStop=()=>{let e=tU.get(r);if(e){if(f)f(e,4);else for(let t of e)t();tU.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 rQ(e,t,n){let r;let i=this.proxy,l=M(e)?e.includes(".")?rZ(i,e):()=>i[e]:e.bind(i,i);P(t)?r=t:(r=t.handler,n=t);let s=i$(this),o=rX(l,r.bind(i),n);return s(),o}function rZ(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[`${z(t)}Modifiers`]||e[`${G(t)}Modifiers`];function r0(e,t,...n){let r;if(e.isUnmounted)return;let i=e.vnode.props||y,l=n,s=t.startsWith("update:"),o=s&&rY(i,t.slice(7));o&&(o.trim&&(l=n.map(e=>M(e)?e.trim():e)),o.number&&(l=n.map(et)));let a=i[r=Q(t)]||i[r=Q(z(t))];!a&&s&&(a=i[r=Q(G(t))]),a&&tW(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,tW(c,e,6,l)}}function r1(e,t){return!!(e&&x(t))&&(w(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||w(e,G(t))||w(e,t))}function r2(e){let t,n;let{type:r,vnode:i,proxy:l,withProxy:s,propsOptions:[o],slots:a,attrs:c,emit:u,render:d,renderCache:p,props:f,data:h,setupState:m,ctx:g,inheritAttrs:y}=e,b=t7(e);try{if(4&i.shapeFlag){let e=s||l;t=iw(d.call(e,e,p,f,m,h,g)),n=c}else t=iw(r.length>1?r(f,{attrs:c,slots:a,emit:u}):r(f,null)),n=r.props?c:r3(c)}catch(n){ic.length=0,tK(n,e,1),t=iC(io)}let _=t;if(n&&!1!==y){let e=Object.keys(n),{shapeFlag:t}=_;e.length&&7&t&&(o&&e.some(C)&&(n=r6(n,o)),_=iT(_,n,!1,!0))}return i.dirs&&((_=iT(_,null,!1,!0)).dirs=_.dirs?_.dirs.concat(i.dirs):i.dirs),i.transition&&nT(_,i.transition),t=_,t7(b),t}let r3=e=>{let t;for(let n in e)("class"===n||"style"===n||x(n))&&((t||(t={}))[n]=e[n]);return t},r6=(e,t)=>{let n={};for(let r in e)C(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function r4(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;ie.__isSuspense,r9=0;function r7(e,t){let n=e.props&&e.props[t];P(n)&&n()}function ie(e,t,n,r,i,l,s,o,a,c,u=!1){let d;let{p:p,m:f,um:h,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?en(e.props.timeout):void 0,S=l,x={vnode:e,parent:t,parentComponent:n,namespace:s,container:r,hiddenContainer:i,deps:0,pendingId:r9++,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&&(f(s,u,l===S?m(i):l,0),t3(a))}),i&&(g(i.el)===u&&(l=m(i)),h(i,c,x,!0)),p||f(s,u,l,0)),ii(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||t3(a),x.effects=[],b&&t&&t.pendingBranch&&d===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),r7(r,"onResolve")},fallback(e){if(!x.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:r,container:i,namespace:l}=x;r7(t,"onFallback");let s=m(n),c=()=>{x.isInFallback&&(p(null,e,i,s,r,null,l,o,a),ii(x,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(n.transition.afterLeave=c),x.isInFallback=!0,h(n,r,null,!0),u||c()},move(e,t,n){x.activeBranch&&f(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=>{tK(t,e,0)}).then(l=>{if(e.isUnmounted||x.isUnmounted||x.pendingId!==e.suspenseId)return;e.asyncResolved=!0;let{vnode:o}=e;iB(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),r8(e,o.el),r&&0==--x.deps&&x.resolve()})},unmount(e,t){x.isUnmounted=!0,x.activeBranch&&h(x.activeBranch,n,e,t),x.pendingBranch&&h(x.pendingBranch,n,e,t)}};return x}function it(e){let t;if(P(e)){let n=ih&&e._c;n&&(e._d=!1,id()),e=e(),n&&(e._d=!0,t=iu,ip())}return A(e)&&(e=function(e,t=!0){let n;for(let t=0;tt!==e)),e}function ir(e,t){t&&t.pendingBranch?A(e)?t.effects.push(...e):t.effects.push(e):t3(e)}function ii(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,r8(r,i))}let il=Symbol.for("v-fgt"),is=Symbol.for("v-txt"),io=Symbol.for("v-cmt"),ia=Symbol.for("v-stc"),ic=[],iu=null;function id(e=!1){ic.push(iu=e?null:[])}function ip(){ic.pop(),iu=ic[ic.length-1]||null}let ih=1;function im(e,t=!1){ih+=e,e<0&&iu&&t&&(iu.hasOnce=!0)}function ig(e){return e.dynamicChildren=ih>0?iu||b:null,ip(),ih>0&&iu&&iu.push(e),e}function iy(e,t,n,r,i){return ig(iC(e,t,n,r,i,!0))}function iv(e){return!!e&&!0===e.__v_isVNode}function ib(e,t){return e.type===t.type&&e.key===t.key}let i_=({key:e})=>null!=e?e:null,iS=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?M(e)||tN(e)||P(e)?{i:t5,r:e,k:t,f:!!n}:e:null);function ix(e,t=null,n=null,r=0,i=null,l=e===il?0:1,s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&i_(t),ref:t&&iS(t),scopeId:t9,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:t5};return o?(iE(a,n),128&l&&e.normalize(a)):n&&(a.shapeFlag|=M(n)?8:16),ih>0&&!s&&iu&&(a.patchFlag>0||6&l)&&32!==a.patchFlag&&iu.push(a),a}let iC=function(e,t=null,n=null,r=0,i=null,l=!1){var s;if(e&&e!==re||(e=io),iv(e)){let r=iT(e,t,!0);return n&&iE(r,n),ih>0&&!l&&iu&&(6&r.shapeFlag?iu[iu.indexOf(e)]=r:iu.push(r)),r.patchFlag=-2,r}if(P(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=ik(t);e&&!M(e)&&(t.class=eu(e)),$(n)&&(tS(n)&&!A(n)&&(n=k({},n)),t.style=el(n))}let o=M(e)?1:r5(e)?128:nr(e)?64:$(e)?4:P(e)?2:0;return ix(e,t,n,r,i,o,l,!0)};function ik(e){return e?tS(e)||rw(e)?k({},e):e:null}function iT(e,t,n=!1,r=!1){let{props:i,ref:l,patchFlag:s,children:o,transition:a}=e,c=t?iI(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&i_(c),ref:t&&t.ref?n&&l?A(l)?l.concat(iS(t)):[l,iS(t)]:iS(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!==il?-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&&iT(e.ssContent),ssFallback:e.ssFallback&&iT(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&nT(u,a.clone(u)),u}function iN(e=" ",t=0){return iC(is,null,e,t)}function iw(e){return null==e||"boolean"==typeof e?iC(io):A(e)?iC(il,null,e.slice()):iv(e)?iA(e):iC(is,null,String(e))}function iA(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:iT(e)}function iE(e,t){let n=0,{shapeFlag:r}=e;if(null==t)t=null;else if(A(t))n=16;else if("object"==typeof t){if(65&r){let n=t.default;n&&(n._c&&(n._d=!1),iE(e,n()),n._c&&(n._d=!0));return}{n=32;let r=t._;r||rw(t)?3===r&&t5&&(1===t5.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t5}}else P(t)?(t={default:t,_ctx:t5},n=32):(t=String(t),64&r?(n=16,t=[iN(t)]):n=8);e.children=t,e.shapeFlag|=n}function iI(...e){let t={};for(let n=0;niM||t5;a=e=>{iM=e},c=e=>{iV=e};let i$=e=>{let t=iM;return a(e),e.scope.on(),()=>{e.scope.off(),a(t)}},iD=()=>{iM&&iM.scope.off(),a(null)};function iF(e){return 4&e.vnode.shapeFlag}let iV=!1;function iB(e,t,n){P(t)?e.render=t:$(t)&&(e.setupState=tP(t)),ij(e,n)}function iU(e){u=e,d=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,ro))}}function ij(e,t,n){let r=e.type;if(!e.render){if(!t&&u&&!r.render){let t=r.template||rp(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:s}=r,o=k(k({isCustomElement:n,delimiters:l},i),s);r.render=u(t,o)}}e.render=r.render||_,d&&d(e)}{let t=i$(e);eL();try{!function(e){let t=rp(e),n=e.proxy,r=e.ctx;ru=!1,t.beforeCreate&&rd(t.beforeCreate,e,"bc");let{data:i,computed:l,methods:s,watch:o,provide:a,inject:c,created:u,beforeMount:d,mounted:p,beforeUpdate:f,updated:h,activated:m,deactivated:g,beforeDestroy:y,beforeUnmount:b,destroyed:S,unmounted:x,render:C,renderTracked:k,renderTriggered:T,errorCaptured:N,serverPrefetch:w,expose:E,inheritAttrs:I,components:R,directives:O,filters:L}=t;if(c&&function(e,t,n=_){for(let n in A(e)&&(e=rg(e)),e){let r;let i=e[n];tN(r=$(i)?"default"in i?rk(i.from||n,i.default,!0):rk(i.from||n):rk(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);$(t)&&(e.data=th(t))}if(ru=!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=iz({get:i,set:!P(t)&&P(t.set)?t.set.bind(n):_});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){let l=i.includes(".")?rZ(r,i):()=>r[i];if(M(t)){let e=n[t];P(e)&&rX(l,e,void 0)}else if(P(t)){var s;s=t.bind(r),rX(l,s,void 0)}else if($(t)){if(A(t))t.forEach(t=>e(t,n,r,i));else{let e=P(t.handler)?t.handler.bind(r):n[t.handler];P(e)&&rX(l,e,t)}}}(o[e],r,n,e);if(a){let e=P(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{rC(t,e[t])})}function D(e,t){A(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(u&&rd(u,e,"c"),D(nY,d),D(n0,p),D(n1,f),D(n2,h),D(nK,m),D(nz,g),D(n9,N),D(n5,k),D(n8,T),D(n3,b),D(n6,x),D(n4,w),A(E)){if(E.length){let t=e.exposed||(e.exposed={});E.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})})}else e.exposed||(e.exposed={})}C&&e.render===_&&(e.render=C),null!=I&&(e.inheritAttrs=I),R&&(e.components=R),O&&(e.directives=O)}(e)}finally{e$(),t()}}}let iH={get:(e,t)=>(eW(e,"get",""),e[t])};function iq(e){return{attrs:new Proxy(e.attrs,iH),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function iW(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tP(tC(e.exposed)),{get:(t,n)=>n in t?t[n]:n in ri?ri[n](e):void 0,has:(e,t)=>t in e||t in ri})):e.proxy}function iK(e,t=!0){return P(e)?e.displayName||e.name:e.name||t&&e.__name}let iz=(e,t)=>(function(e,t,n=!1){let r,i;return P(e)?r=e:(r=e.get,i=e.set),new tV(r,i,n)})(e,0,iV);function iJ(e,t,n){let r=arguments.length;return 2!==r?(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&iv(n)&&(n=[n]),iC(e,t,n)):!$(t)||A(t)?iC(e,null,t):iv(t)?iC(e,null,[t]):iC(e,t)}function iG(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e0&&iu&&iu.push(e),!0}let iX="3.5.13",iQ="undefined"!=typeof window&&window.trustedTypes;if(iQ)try{m=iQ.createPolicy("vue",{createHTML:e=>e})}catch(e){}let iZ=m?e=>m.createHTML(e):e=>e,iY="undefined"!=typeof document?document:null,i0=iY&&iY.createElement("template"),i1="transition",i2="animation",i3=Symbol("_vtc"),i6={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},i4=k({},ny,i6),i8=((t=(e,{slots:t})=>iJ(n_,i7(e),t)).displayName="Transition",t.props=i4,t),i5=(e,t=[])=>{A(e)?e.forEach(e=>e(...t)):e&&e(...t)},i9=e=>!!e&&(A(e)?e.some(e=>e.length>1):e.length>1);function i7(e){let t={};for(let n in e)n in i6||(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:f=`${n}-leave-to`}=e,h=function(e){if(null==e)return null;if($(e))return[en(e.enter),en(e.leave)];{let t=en(e);return[t,t]}}(i),m=h&&h[0],g=h&&h[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:S,onLeaveCancelled:x,onBeforeAppear:C=y,onAppear:T=b,onAppearCancelled:N=_}=t,w=(e,t,n,r)=>{e._enterCancelled=r,lt(e,t?u:o),lt(e,t?c:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,lt(e,d),lt(e,f),lt(e,p),t&&t()},E=e=>(t,n)=>{let i=e?T:b,s=()=>w(t,e,n);i5(i,[t,s]),ln(()=>{lt(t,e?a:l),le(t,e?u:o),i9(i)||li(t,r,m,s)})};return k(t,{onBeforeEnter(e){i5(y,[e]),le(e,l),le(e,s)},onBeforeAppear(e){i5(C,[e]),le(e,a),le(e,c)},onEnter:E(!1),onAppear:E(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);le(e,d),e._enterCancelled?(le(e,p),la()):(la(),le(e,p)),ln(()=>{e._isLeaving&&(lt(e,d),le(e,f),i9(S)||li(e,r,g,n))}),i5(S,[e,n])},onEnterCancelled(e){w(e,!1,void 0,!0),i5(_,[e])},onAppearCancelled(e){w(e,!0,void 0,!0),i5(N,[e])},onLeaveCancelled(e){A(e),i5(x,[e])}})}function le(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[i3]||(e[i3]=new Set)).add(t)}function lt(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[i3];n&&(n.delete(t),n.size||(e[i3]=void 0))}function ln(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let lr=0;function li(e,t,n,r){let i=e._endId=++lr,l=()=>{i===e._endId&&r()};if(null!=n)return setTimeout(l,n);let{type:s,timeout:o,propCount:a}=ll(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(`${i1}Delay`),l=r(`${i1}Duration`),s=ls(i,l),o=r(`${i2}Delay`),a=r(`${i2}Duration`),c=ls(o,a),u=null,d=0,p=0;t===i1?s>0&&(u=i1,d=s,p=l.length):t===i2?c>0&&(u=i2,d=c,p=a.length):p=(u=(d=Math.max(s,c))>0?s>c?i1:i2:null)?u===i1?l.length:a.length:0;let f=u===i1&&/\b(transform|all)(,|$)/.test(r(`${i1}Property`).toString());return{type:u,timeout:d,propCount:p,hasTransform:f}}function ls(e,t){for(;e.lengthlo(t)+lo(e[n])))}function lo(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function la(){return document.body.offsetHeight}let lc=Symbol("_vod"),lu=Symbol("_vsh");function ld(e,t){e.style.display=t?e[lc]:"none",e[lu]=!t}let lp=Symbol("");function lf(e,t){if(1===e.nodeType){let n=e.style,r="";for(let e in t)n.setProperty(`--${e}`,t[e]),r+=`--${e}: ${t[e]};`;n[lp]=r}}let lh=/(^|;)\s*display\s*:/,lm=/\s*!important$/;function lg(e,t,n){if(A(n))n.forEach(n=>lg(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let r=function(e,t){let n=lv[t];if(n)return n;let r=z(t);if("filter"!==r&&r in e)return lv[t]=r;r=X(r);for(let n=0;nlT||(lN.then(()=>lT=0),lT=Date.now()),lA=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),lE={};function lI(e,t,n){let r=nw(e,t);U(r)&&k(r,t);class i extends lO{constructor(e){super(r,e,n)}}return i.def=r,i}let lR="undefined"!=typeof HTMLElement?HTMLElement:class{};class lO extends lR{constructor(e,t={},n=l9){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!==l9?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow({mode:"open"}),this._root=this.shadowRoot):this._root=this,this._def.__asyncLoader||this._resolveProps(this._def)}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.parentNode||e.host);)if(e instanceof lO){this._parent=e;break}this._instance||(this._resolved?(this._setParent(),this._update()):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._instance.provides=e._instance.provides)}disconnectedCallback(){this._connected=!1,t0(()=>{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&&!A(r))for(let e in r){let t=r[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=en(this._props[e])),(n||(n=Object.create(null)))[z(e)]=!0)}this._numberProps=n,t&&this._resolveProps(e),this.shadowRoot&&this._applyStyles(i),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>e(this._def=t,!0)):e(this._def)}_mount(e){this._app=this._createApp(e),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)w(this,e)||Object.defineProperty(this,e,{get:()=>tR(t[e])})}_resolveProps(e){let{props:t}=e,n=A(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(z))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):lE,r=z(e);t&&this._numberProps&&this._numberProps[r]&&(n=en(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===lE?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(G(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(G(e),t+""):t||this.removeAttribute(G(e)),n&&n.observe(this,{attributes:!0})}}_update(){l5(this._createVNode(),this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=iC(this._def,k(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,U(t[0])?k({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),G(e)!==e&&t(G(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;let 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[i3];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}=ll(r);return l.removeChild(r),s}(n[0].el,i.vnode.el,t))return;n.forEach(lV),n.forEach(lB);let r=n.filter(lU);la(),r.forEach(e=>{let n=e.el,r=n.style;le(n,t),r.transform=r.webkitTransform=r.transitionDuration="";let i=n[l$]=e=>{(!e||e.target===n)&&(!e||/transform$/.test(e.propertyName))&&(n.removeEventListener("transitionend",i),n[l$]=null,lt(n,t))};n.addEventListener("transitionend",i)})}),()=>{let s=tx(e),o=i7(s),a=s.tag||il;if(n=[],r)for(let e=0;e{let t=e.props["onUpdate:modelValue"]||!1;return A(t)?e=>Y(t,e):t};function lH(e){e.target.composing=!0}function lq(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let lW=Symbol("_assign"),lK={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[lW]=lj(i);let l=r||i.props&&"number"===i.props.type;lx(e,t?"change":"input",t=>{if(t.target.composing)return;let r=e.value;n&&(r=r.trim()),l&&(r=et(r)),e[lW](r)}),n&&lx(e,"change",()=>{e.value=e.value.trim()}),t||(lx(e,"compositionstart",lH),lx(e,"compositionend",lq),lx(e,"change",lq))},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[lW]=lj(s),e.composing)return;let o=(l||"number"===e.type)&&!/^0\d/.test(e.value)?et(e.value):e.value,a=null==t?"":t;o===a||document.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===a)||(e.value=a)}},lz={deep:!0,created(e,t,n){e[lW]=lj(n),lx(e,"change",()=>{let t=e._modelValue,n=lZ(e),r=e.checked,i=e[lW];if(A(t)){let e=ey(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(I(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(lY(e,r))})},mounted:lJ,beforeUpdate(e,t,n){e[lW]=lj(n),lJ(e,t,n)}};function lJ(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,A(t))i=ey(t,r.props.value)>-1;else if(I(t))i=t.has(r.props.value);else{if(t===n)return;i=eg(t,lY(e,!0))}e.checked!==i&&(e.checked=i)}let lG={created(e,{value:t},n){e.checked=eg(t,n.props.value),e[lW]=lj(n),lx(e,"change",()=>{e[lW](lZ(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[lW]=lj(r),t!==n&&(e.checked=eg(t,r.props.value))}},lX={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i=I(t);lx(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?et(lZ(e)):lZ(e));e[lW](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,t0(()=>{e._assigning=!1})}),e[lW]=lj(r)},mounted(e,{value:t}){lQ(e,t)},beforeUpdate(e,t,n){e[lW]=lj(n)},updated(e,{value:t}){e._assigning||lQ(e,t)}};function lQ(e,t){let n=e.multiple,r=A(t);if(!n||r||I(t)){for(let i=0,l=e.options.length;iString(e)===String(s)):l.selected=ey(t,s)>-1}else l.selected=t.has(s)}else if(eg(lZ(l),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}n||-1===e.selectedIndex||(e.selectedIndex=-1)}}function lZ(e){return"_value"in e?e._value:e.value}function lY(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}function l0(e,t,n,r,i){let l=function(e,t){switch(e){case"SELECT":return lX;case"TEXTAREA":return lK;default:switch(t){case"checkbox":return lz;case"radio":return lG;default:return lK}}}(e.tagName,n.props&&n.props.type)[i];l&&l(e,t,n,r)}let l1=["ctrl","shift","alt","meta"],l2={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)=>l1.some(n=>e[`${n}Key`]&&!t.includes(n))},l3={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},l6=k({patchProp:(e,t,n,r,i,l)=>{let s="svg"===i;"class"===t?function(e,t,n){let r=e[i3];r&&(t=(t?[t,...r]:[...r]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,r,s):"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]&&lg(r,t,"")}else for(let e in t)null==n[e]&&lg(r,e,"")}for(let e in n)"display"===e&&(l=!0),lg(r,e,n[e])}else if(i){if(t!==n){let e=r[lp];e&&(n+=";"+e),r.cssText=n,l=lh.test(n)}}else t&&e.removeAttribute("style");lc in e&&(e[lc]=l?r.display:"",e[lu]&&(r.display="none"))}(e,n,r):x(t)?C(t)||function(e,t,n,r,i=null){let l=e[lC]||(e[lC]={}),s=l[t];if(r&&s)s.value=r;else{let[n,o]=function(e){let t;if(lk.test(e)){let n;for(t={};n=e.match(lk);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):G(e.slice(2)),t]}(t);r?lx(e,n,l[t]=function(e,t){let n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();tW(function(e,t){if(!A(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=lw(),n}(r,i),o):s&&(!function(e,t,n,r){e.removeEventListener(t,n,r)}(e,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&&lA(t)&&P(n));if("spellcheck"===t||"draggable"===t||"translate"===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!(lA(t)&&M(n))&&t in e}(e,t,r,s))?e._isVueCE&&(/[A-Z]/.test(t)||!M(r))?lS(e,z(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),l_(e,t,r,s)):(lS(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||l_(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?iY.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?iY.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?iY.createElement(e,{is:n}):iY.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>iY.createTextNode(e),createComment:e=>iY.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iY.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{i0.innerHTML=iZ("svg"===r?`${e}`:"mathml"===r?`${e}`:e);let i=i0.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]}}),l4=!1;function l8(){return p=l4?p:rU(l6),l4=!0,p}let l5=(...e)=>{(p||(p=rj(l6))).render(...e)},l9=(...e)=>{let t=(p||(p=rj(l6))).createApp(...e),{mount:n}=t;return t.mount=e=>{let r=st(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,se(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t},l7=(...e)=>{let t=l8().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=st(e);if(t)return n(t,!0,se(t))},t};function se(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function st(e){return M(e)?document.querySelector(e):e}let sn=Symbol(""),sr=Symbol(""),si=Symbol(""),sl=Symbol(""),ss=Symbol(""),so=Symbol(""),sa=Symbol(""),sc=Symbol(""),su=Symbol(""),sd=Symbol(""),sp=Symbol(""),sf=Symbol(""),sh=Symbol(""),sm=Symbol(""),sg=Symbol(""),sy=Symbol(""),sv=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=Symbol(""),sL=Symbol(""),s$=Symbol(""),sD=Symbol(""),sF=Symbol(""),sV=Symbol(""),sB=Symbol(""),sU={[sn]:"Fragment",[sr]:"Teleport",[si]:"Suspense",[sl]:"KeepAlive",[ss]:"BaseTransition",[so]:"openBlock",[sa]:"createBlock",[sc]:"createElementBlock",[su]:"createVNode",[sd]:"createElementVNode",[sp]:"createCommentVNode",[sf]:"createTextVNode",[sh]:"createStaticVNode",[sm]:"resolveComponent",[sg]:"resolveDynamicComponent",[sy]:"resolveDirective",[sv]:"resolveFilter",[sb]:"withDirectives",[s_]:"renderList",[sS]:"renderSlot",[sx]:"createSlots",[sC]:"toDisplayString",[sk]:"mergeProps",[sT]:"normalizeClass",[sN]:"normalizeStyle",[sw]:"normalizeProps",[sA]:"guardReactiveProps",[sE]:"toHandlers",[sI]:"camelize",[sR]:"capitalize",[sO]:"toHandlerKey",[sP]:"setBlockTracking",[sM]:"pushScopeId",[sL]:"popScopeId",[s$]:"withCtx",[sD]:"unref",[sF]:"isRef",[sV]:"withMemo",[sB]:"isMemoSame"},sj={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function sH(e,t,n,r,i,l,s,o=!1,a=!1,c=!1,u=sj){return e&&(o?(e.helper(so),e.helper(e.inSSR||c?sa:sc)):e.helper(e.inSSR||c?su:sd),s&&e.helper(sb)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:l,directives:s,isBlock:o,disableTracking:a,isComponent:c,loc:u}}function sq(e,t=sj){return{type:17,loc:t,elements:e}}function sW(e,t=sj){return{type:15,loc:t,properties:e}}function sK(e,t){return{type:16,loc:sj,key:M(e)?sz(e,!0):e,value:t}}function sz(e,t=!1,n=sj,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function sJ(e,t=sj){return{type:8,loc:t,children:e}}function sG(e,t=[],n=sj){return{type:14,loc:n,callee:e,arguments:t}}function sX(e,t,n=!1,r=!1,i=sj){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:sj}}function sZ(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,l;e.isBlock=!0,n((i=e.isComponent,r||i?su:sd)),t(so),t((l=e.isComponent,r||l?sa:sc))}}let sY=new Uint8Array([123,123]),s0=new Uint8Array([125,125]);function s1(e){return e>=97&&e<=122||e>=65&&e<=90}function s2(e){return 32===e||10===e||9===e||12===e||13===e}function s3(e){return 47===e||62===e||s2(e)}function s6(e){let t=new Uint8Array(e.length);for(let n=0;n4===e.type&&e.isStatic;function oe(e){switch(e){case"Teleport":case"teleport":return sr;case"Suspense":case"suspense":return si;case"KeepAlive":case"keep-alive":return sl;case"BaseTransition":case"base-transition":return ss}}let ot=/^\d|[^\$\w\xA0-\uFFFF]/,on=e=>!ot.test(e),or=/[A-Za-z_$\xA0-\uFFFF]/,oi=/[\.\?\w$\xA0-\uFFFF]/,ol=/\s+[.[]\s*|\s*[.[]\s+/g,os=e=>4===e.type?e.content:e.loc.source,oo=e=>{let t=os(e).trim().replace(ol,e=>e.trim()),n=0,r=[],i=0,l=0,s=null;for(let e=0;e|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,oc=e=>oa.test(os(e));function ou(e,t,n=!1){for(let r=0;r4===e.key.type&&e.key.content===r)}return n}function o_(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let oS=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/,ox={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:S,isPreTag:S,isIgnoreNewlineTag:S,isCustomElement:S,onError:s8,onWarn:s5,comments:!1,prefixIdentifiers:!1},oC=ox,ok=null,oT="",oN=null,ow=null,oA="",oE=-1,oI=-1,oR=0,oO=!1,oP=null,oM=[],oL=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=sY,this.delimiterClose=s0,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=sY,this.delimiterClose=s0}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?s3(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t){this.sequenceIndex++;return}}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||s2(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=e||(28===this.state?this.currentSequence===s4.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){}}(oM,{onerr:oQ,ontext(e,t){oB(oF(e,t),e,t)},ontextentity(e,t,n){oB(e,t,n)},oninterpolation(e,t){if(oO)return oB(oF(e,t),e,t);let n=e+oL.delimiterOpen.length,r=t-oL.delimiterClose.length;for(;s2(oT.charCodeAt(n));)n++;for(;s2(oT.charCodeAt(r-1));)r--;let i=oF(n,r);i.includes("&")&&(i=oC.decodeEntities(i,!1)),oz({type:5,content:oX(i,!1,oJ(n,r)),loc:oJ(e,t)})},onopentagname(e,t){let n=oF(e,t);oN={type:1,tag:n,ns:oC.getNamespace(n,oM[0],oC.ns),tagType:0,props:[],children:[],loc:oJ(e-1,t),codegenNode:void 0}},onopentagend(e){oV(e)},onclosetag(e,t){let n=oF(e,t);if(!oC.isVoidTag(n)){let r=!1;for(let e=0;e0&&oM[0].loc.start.offset;for(let n=0;n<=e;n++)oU(oM.shift(),t,n(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){oN&&ow&&(oG(ow.loc,t),0!==e&&(oA.includes("&")&&(oA=oC.decodeEntities(oA,!0)),6===ow.type?("class"===ow.name&&(oA=oK(oA).trim()),ow.value={type:2,content:oA,loc:1===e?oJ(oE,oI):oJ(oE-1,oI+1)},oL.inSFCRoot&&"template"===oN.tag&&"lang"===ow.name&&oA&&"html"!==oA&&oL.enterRCDATA(s6("{let i=t.start.offset+n,l=i+e.length;return oX(e,!1,oJ(i,l),0,r?1:0)},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(oD,"").trim(),c=i.indexOf(a),u=a.match(o$);if(u){let e;a=a.replace(o$,"").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}(ow.exp)))),(7!==ow.type||"pre"!==ow.name)&&oN.props.push(ow)),oA="",oE=oI=-1},oncomment(e,t){oC.comments&&oz({type:3,content:oF(e,t),loc:oJ(e-4,t+3)})},onend(){let e=oT.length;for(let t=0;t64&&n<91||oe(e)||oC.isBuiltInComponent&&oC.isBuiltInComponent(e)||oC.isNativeTag&&!oC.isNativeTag(e))return!0;for(let e=0;e=0;)n--;return n}let oH=new Set(["if","else","else-if","for","slot"]),oq=/\r\n/g;function oW(e,t){let n="preserve"!==oC.whitespace,r=!1;for(let t=0;t1)for(let i=0;i{n--};for(;nt===e:t=>e.test(t);return(e,r)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(oh))return;let l=[];for(let s=0;s`${sU[e]}: _${sU[e]}`;function o5(e,t,{helper:n,push:r,newline:i,isTS:l}){let s=n("component"===t?sm:sy);for(let n=0;n3;t.push("["),n&&t.indent(),o7(e,t,n),n&&t.deindent(),t.push("]")}function o7(e,t,n=!1,r=!0){let{push:i,newline:l}=t;for(let s=0;se||"null")}([s,o,a,n,u]),t),r(")"),p&&r(")"),d&&(r(", "),ae(d,t),r(")"))}(e,t);break;case 14:!function(e,t){let{push:n,helper:r,pure:i}=t,l=M(e.callee)?e.callee:r(e.callee);i&&n(o4),n(l+"(",-2,e),o7(e.arguments,t),n(")")}(e,t);break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:l}=t,{properties:s}=e;if(!s.length){n("{}",-2,e);return}let o=s.length>1;n(o?"{":"{ "),o&&r();for(let e=0;e "),(a||o)&&(n("{"),r()),s?(a&&n("return "),A(s)?o9(s,t):ae(s,t)):o&&ae(o,t),(a||o)&&(i(),n("}")),c&&n(")")}(e,t);break;case 19:!function(e,t){let{test:n,consequent:r,alternate:i,newline:l}=e,{push:s,indent:o,deindent:a,newline:c}=t;if(4===n.type){let e=!on(n.content);e&&s("("),at(n,t),e&&s(")")}else s("("),ae(n,t),s(")");l&&o(),t.indentLevel++,l||s(" "),s("? "),ae(r,t),t.indentLevel--,l&&c(),l||s(" "),s(": ");let u=19===i.type;!u&&t.indentLevel++,ae(i,t),!u&&t.indentLevel--,l&&a(!0)}(e,t);break;case 20:!function(e,t){let{push:n,helper:r,indent:i,deindent:l,newline:s}=t,{needPauseTracking:o,needArraySpread:a}=e;a&&n("[...("),n(`_cache[${e.index}] || (`),o&&(i(),n(`${r(sP)}(-1`),e.inVOnce&&n(", true"),n("),"),s(),n("(")),n(`_cache[${e.index}] = `),ae(e.value,t),o&&(n(`).cacheIndex = ${e.index},`),s(),n(`${r(sP)}(1),`),s(),n(`_cache[${e.index}]`),l()),n(")"),a&&n(")]")}(e,t);break;case 21:o7(e.body,t,!0,!1)}}function at(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function an(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(s9(28,t.loc)),t.exp=sz("true",!1,r)}if("if"===t.name){var i;let l=ai(e,t),s={type:9,loc:oJ((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&&void 0===s.branches[s.branches.length-1].condition&&n.onError(s9(30,e.loc)),n.removeNode();let i=ai(e,t);s.branches.push(i);let l=r&&r(s,i,!1);o3(i,n),l&&l(),n.currentNode=null}else n.onError(s9(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=al(t,s,n):function(e){for(;;)if(19===e.type){if(19!==e.alternate.type)return e;e=e.alternate}else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=al(t,s+e.branches.length-1,n)}}));function ai(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!ou(e,"for")?e.children:[e],userKey:od(e,"key"),isTemplateIf:n}}function al(e,t,n){return e.condition?sQ(e.condition,as(e,t,n),sG(n.helper(sp),['""',"true"])):as(e,t,n)}function as(e,t,n){let{helper:r}=n,i=sK("key",sz(`${t}`,!1,sj,2)),{children:l}=e,s=l[0];if(1!==l.length||1!==s.type){if(1!==l.length||11!==s.type)return sH(n,r(sn),sW([i]),l,64,void 0,void 0,!0,!1,!1,e.loc);{let e=s.codegenNode;return ov(e,i,n),e}}{let e=s.codegenNode,t=14===e.type&&e.callee===sV?e.arguments[1].returns:e;return 13===t.type&&sZ(t,n),ov(t,i,n),e}}let ao=(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(s9(52,l.loc)),{props:[sK(l,sz("",!0,i))]};aa(e),s=e.exp}return 4!==l.type?(l.children.unshift("("),l.children.push(') || ""')):l.isStatic||(l.content=`${l.content} || ""`),r.some(e=>"camel"===e.content)&&(4===l.type?l.isStatic?l.content=z(l.content):l.content=`${n.helperString(sI)}(${l.content})`:(l.children.unshift(`${n.helperString(sI)}(`),l.children.push(")"))),!n.inSSR&&(r.some(e=>"prop"===e.content)&&ac(l,"."),r.some(e=>"attr"===e.content)&&ac(l,"^")),{props:[sK(l,s)]}},aa=(e,t)=>{let n=e.arg,r=z(n.content);e.exp=sz(r,!1,n.loc)},ac=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},au=o6("for",(e,t,n)=>{let{helper:r,removeHelper:i}=n;return function(e,t,n,r){if(!t.exp){n.onError(s9(31,t.loc));return}let i=t.forParseResult;if(!i){n.onError(s9(32,t.loc));return}ad(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:om(e)?e.children:[e]};n.replaceNode(p),o.vFor++;let f=r&&r(p);return()=>{o.vFor--,f&&f()}}(e,t,n,t=>{let l=sG(r(s_),[t.source]),s=om(e),o=ou(e,"memo"),a=od(e,"key",!1,!0);a&&7===a.type&&!a.exp&&aa(a);let c=a&&(6===a.type?a.value?sz(a.value.content,!0):void 0:a.exp),u=a&&c?sK("key",c):null,d=4===t.source.type&&t.source.constType>0,p=d?64:a?128:256;return t.codegenNode=sH(n,r(sn),void 0,l,p,void 0,void 0,!0,!d,!1,e.loc),()=>{let a;let{children:p}=t,f=1!==p.length||1!==p[0].type,h=og(e)?e:s&&1===e.children.length&&og(e.children[0])?e.children[0]:null;if(h)a=h.codegenNode,s&&u&&ov(a,u,n);else if(f)a=sH(n,r(sn),u?sW([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&&ov(a,u,n),!d!==a.isBlock&&(a.isBlock?(i(so),i((m=n.inSSR,g=a.isComponent,m||g?sa:sc))):i((y=n.inSSR,b=a.isComponent,y||b?su:sd))),(a.isBlock=!d,a.isBlock)?(r(so),r((_=n.inSSR,S=a.isComponent,_||S?sa:sc))):r((x=n.inSSR,C=a.isComponent,x||C?su:sd))}if(o){let e=sX(ap(t.parseResult,[sz("_cached")]));e.body={type:21,body:[sJ(["const _memo = (",o.exp,")"]),sJ(["if (_cached",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(sB)}(_cached, _memo)) return _cached`]),sJ(["const _item = ",a]),sz("_item.memo = _memo"),sz("return _item")],loc:sj},l.arguments.push(e,sz("_cache"),sz(String(n.cached.length))),n.cached.push(null)}else l.arguments.push(sX(ap(t.parseResult),a,!0))}})});function ad(e,t){e.finalized||(e.finalized=!0)}function ap({value:e,key:t,index:n},r=[]){return function(e){let t=e.length;for(;t--&&!e[t];);return e.slice(0,t+1).map((e,t)=>e||sz("_".repeat(t+1),!1))}([e,t,n,...r])}let af=sz("undefined",!1),ah=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=ou(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}},am=(e,t,n,r)=>sX(e,n,!1,!0,n.length?n[0].loc:r);function ag(e,t,n){let r=[sK("name",e),sK("fn",t)];return null!=n&&r.push(sK("key",sz(String(n),!0))),sW(r)}let ay=new WeakMap,av=(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=aS(r),l=od(e,"is",!1,!0);if(l){if(i){let e;if(6===l.type?e=l.value&&sz(l.value.content,!0):(e=l.exp)||(e=sz("is",!1,l.arg.loc)),e)return sG(t.helper(sg),[e])}else 6===l.type&&l.value.content.startsWith("vue:")&&(r=l.value.content.slice(4))}let s=oe(r)||t.isBuiltInComponent(r);return s?(n||t.helper(s),s):(t.helper(sm),t.components.add(r),o_(r,"component"))}(e,t):`"${o}"`,d=$(u)&&u.callee===sg,p=0,f=d||u===sr||u===si||!c&&("svg"===o||"foreignObject"===o||"math"===o);if(a.length>0){let r=ab(e,t,void 0,c,d);n=r.props,p=r.patchFlag,l=r.dynamicPropNames;let i=r.directives;s=i&&i.length?sq(i.map(e=>(function(e,t){let n=[],r=ay.get(e);r?n.push(t.helperString(r)):(t.helper(sy),t.directives.add(e.name),n.push(o_(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=sz("true",!1,i);n.push(sW(e.modifiers.map(e=>sK(e,t)),i))}return sq(n,e.loc)})(e,t))):void 0,r.shouldUseBlock&&(f=!0)}if(e.children.length>0){if(u===sl&&(f=!0,p|=1024),c&&u!==sr&&u!==sl){let{slots:n,hasDynamicSlots:i}=function(e,t,n=am){t.helper(s$);let{children:r,loc:i}=e,l=[],s=[],o=t.scopes.vSlot>0||t.scopes.vFor>0,a=ou(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!s7(e)&&(o=!0),l.push(sK(e||sz("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,d=[],p=new Set,f=0;for(let e=0;esK("default",n(e,void 0,t,i));c?d.length&&d.some(e=>(function e(t){return 2!==t.type&&12!==t.type||(2===t.type?!!t.content.trim():e(t.content))})(e))&&(u?t.onError(s9(39,d[0].loc)):l.push(e(void 0,d))):l.push(e(void 0,r))}let h=o?2:!function e(t){for(let n=0;n0,h=!1,m=0,g=!1,y=!1,b=!1,_=!1,S=!1,C=!1,k=[],T=e=>{u.length&&(d.push(sW(a_(u),a)),u=[]),e&&d.push(e)},N=()=>{t.scopes.vFor>0&&u.push(sK(sz("ref_for",!0),sz("true")))},w=({key:e,value:n})=>{if(s7(e)){let l=e.content,s=x(l);s&&(!r||i)&&"onclick"!==l.toLowerCase()&&"onUpdate:modelValue"!==l&&!H(l)&&(_=!0),s&&H(l)&&(C=!0),s&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&oY(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&&!s7(i)?T(sW(n,a)):u.push(...n),r&&(p.push(s),L(r)&&ay.set(s,r))}else!q(n)&&(p.push(s),f&&(h=!0))}}if(d.length?(T(),s=d.length>1?sG(t.helper(sk),d,a):d[0]):u.length&&(s=sW(a_(u),a)),S?m|=16:(y&&!r&&(m|=2),b&&!r&&(m|=4),k.length&&(m|=8),_&&(m|=32)),!h&&(0===m||32===m)&&(g||C||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(og(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}=ab(e,t,i,!1,!1);n=r,l.length&&t.onError(s9(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]=sX([],n,!1,!1,r),o=4),t.scopeId&&!t.slotted&&(o=5),s.splice(o),e.codegenNode=sG(t.helper(sS),s,r)}},aC=(e,t,n,r)=>{let i;let{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=sz(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?Q(z(e)):`on:${e}`,!0,o.loc)}else i=sJ([`${n.helperString(sO)}(`,o,")"])}else(i=o).children.unshift(`${n.helperString(sO)}(`),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=oo(a),t=!(e||oc(a)),n=a.content.includes(";");(t||c&&e)&&(a=sJ([`${t?"$event":"(...args)"} => ${n?"{":"("}`,a,n?"}":")"]))}let u={props:[sK(i,a||sz("() => {}",!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},ak=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n;let 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&&ou(e,"once",!0)&&!aT.has(e)&&!t.inVOnce&&!t.inSSR)return aT.add(e),t.inVOnce=!0,t.helper(sP),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},aw=(e,t,n)=>{let r;let{exp:i,arg:l}=e;if(!i)return n.onError(s9(41,e.loc)),aA();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,aA();if(!o.trim()||!oo(i))return n.onError(s9(42,i.loc)),aA();let c=l||sz("modelValue",!0),u=l?s7(l)?`onUpdate:${z(l.content)}`:sJ(['"onUpdate:" + ',l]):"onUpdate:modelValue",d=n.isTS?"($event: any)":"$event";r=sJ([`${d} => ((`,i,") = $event)"]);let p=[sK(c,e.exp),sK(u,r)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(on(e)?e:JSON.stringify(e))+": true").join(", "),n=l?s7(l)?`${l.content}Modifiers`:sJ([l,' + "Modifiers"']):"modelModifiers";p.push(sK(n,sz(`{ ${t} }`,!1,e.loc,2)))}return aA(p)};function aA(e=[]){return{props:e}}let aE=new WeakSet,aI=(e,t)=>{if(1===e.type){let n=ou(e,"memo");if(!(!n||aE.has(e)))return aE.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&sZ(r,t),e.codegenNode=sG(t.helper(sV),[n.exp,sX(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}},aR=Symbol(""),aO=Symbol(""),aP=Symbol(""),aM=Symbol(""),aL=Symbol(""),a$=Symbol(""),aD=Symbol(""),aF=Symbol(""),aV=Symbol(""),aB=Symbol("");!function(e){Object.getOwnPropertySymbols(e).forEach(t=>{sU[t]=e[t]})}({[aR]:"vModelRadio",[aO]:"vModelCheckbox",[aP]:"vModelText",[aM]:"vModelSelect",[aL]:"vModelDynamic",[a$]:"withModifiers",[aD]:"withKeys",[aF]:"vShow",[aV]:"Transition",[aB]:"TransitionGroup"});let aU={parseMode:"html",isVoidTag:eh,isNativeTag:e=>ed(e)||ep(e)||ef(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?aV:"TransitionGroup"===e||"transition-group"===e?aB: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}},aj=(e,t)=>sz(JSON.stringify(ec(e)),!1,t,3),aH=g("passive,once,capture"),aq=g("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),aW=g("left,right"),aK=g("onkeyup,onkeydown,onkeypress"),az=(e,t,n,r)=>{let i=[],l=[],s=[];for(let n=0;ns7(e)&&"onclick"===e.content.toLowerCase()?sz(t,!0):4!==e.type?sJ(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,aG=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},aX=[e=>{1===e.type&&e.props.forEach((t,n)=>{6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:sz("style",!0,t.loc),exp:aj(t.value.content,t.loc),modifiers:[],loc:t.loc})})}],aQ={cloak:()=>({props:[]}),html:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s9(53,i)),t.children.length&&(n.onError(s9(54,i)),t.children.length=0),{props:[sK(sz("innerHTML",!0,i),r||sz("",!0))]}},text:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s9(55,i)),t.children.length&&(n.onError(s9(56,i)),t.children.length=0),{props:[sK(sz("textContent",!0),r?oY(r,n)>0?r:sG(n.helperString(sC),[r],i):sz("",!0))]}},model:(e,t,n)=>{let r=aw(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(s9(58,e.arg.loc));let{tag:i}=t,l=n.isCustomElement(i);if("input"===i||"textarea"===i||"select"===i||l){let s=aP,o=!1;if("input"===i||l){let r=od(t,"type");if(r){if(7===r.type)s=aL;else if(r.value)switch(r.value.content){case"radio":s=aR;break;case"checkbox":s=aO;break;case"file":o=!0,n.onError(s9(59,e.loc))}}else t.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))&&(s=aL)}else"select"===i&&(s=aM);o||(r.needRuntime=n.helper(s))}else n.onError(s9(57,e.loc));return r.props=r.props.filter(e=>!(4===e.key.type&&"modelValue"===e.key.content)),r},on:(e,t,n)=>aC(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}=az(i,r,n,e.loc);if(o.includes("right")&&(i=aJ(i,"onContextmenu")),o.includes("middle")&&(i=aJ(i,"onMouseup")),o.length&&(l=sG(n.helper(a$),[l,JSON.stringify(o)])),s.length&&(!s7(i)||aK(i.content.toLowerCase()))&&(l=sG(n.helper(aD),[l,JSON.stringify(s)])),a.length){let e=a.map(X).join("");i=s7(i)?sz(`${i.content}${e}`,!0):sJ(["(",i,`) + "${e}"`])}return{props:[sK(i,l)]}}),show:(e,t,n)=>{let{exp:r,loc:i}=e;return!r&&n.onError(s9(61,i)),{props:[],needRuntime:n.helper(aF)}}},aZ=Object.create(null);function aY(e,t){if(!M(e)){if(!e.nodeType)return _;e=e.innerHTML}let n=e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t),r=aZ[n];if(r)return r;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let i=k({hoistStatic:!0,onError:void 0,onWarn:_},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||s8,r="module"===t.mode;!0===t.prefixIdentifiers?n(s9(47)):r&&n(s9(48)),t.cacheHandlers&&n(s9(49)),t.scopeId&&!r&&n(s9(50));let i=k({},t,{prefixIdentifiers:!1}),l=M(e)?function(e,t){if(oL.reset(),oN=null,ow=null,oA="",oE=-1,oI=-1,oM.length=0,oT=e,oC=k({},ox),t){let e;for(e in t)null!=t[e]&&(oC[e]=t[e])}oL.mode="html"===oC.parseMode?1:"sfc"===oC.parseMode?2:0,oL.inXML=1===oC.ns||2===oC.ns;let n=t&&t.delimiters;n&&(oL.delimiterOpen=s6(n[0]),oL.delimiterClose=s6(n[1]));let r=ok=function(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:sj}}([],e);return oL.parse(oT),r.loc=oJ(0,e.length),r.children=oW(r.children),ok=null,r}(e,i):e,[s,o]=[[aN,ar,aI,au,ax,av,ah,ak],{on:aC,bind:ao,model:aw}];return!function(e,t){let n=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=_,isCustomElement:u=_,expressionPlugins:d=[],scopeId:p=null,slotted:f=!0,ssr:h=!1,inSSR:m=!1,ssrCssVars:g="",bindingMetadata:b=y,inline:S=!1,isTS:x=!1,onError:C=s8,onWarn:k=s5,compatConfig:T}){let N=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),w={filename:t,selfName:N&&X(z(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:f,ssr:h,inSSR:m,ssrCssVars:g,bindingMetadata:b,inline:S,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=>`_${sU[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:_,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){M(e)&&(e=sz(e)),w.hoists.push(e);let t=sz(`_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:sj}}(w.cached.length,e,t,n);return w.cached.push(r),r}};return w}(e,t);o3(e,n),t.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)&&o1(a,r)>=2){let t=o2(a);t&&(e.props=r.hoist(t))}e.dynamicProps&&(e.dynamicProps=r.hoist(e.dynamicProps))}}}else if(12===a.type&&(i?0:oY(a,r))>=2){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)}(e,void 0,n,oZ(e,e.children[0])),t.ssr||function(e,t){let{helper:n}=t,{children:r}=e;if(1===r.length){let n=r[0];if(oZ(e,n)&&n.codegenNode){let r=n.codegenNode;13===r.type&&sZ(r,t),e.codegenNode=r}else e.codegenNode=n}else r.length>1&&(e.codegenNode=sH(t,n(sn),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(e,n),e.helpers=new Set([...n.helpers.keys()]),e.components=[...n.components],e.directives=[...n.directives],e.imports=n.imports,e.hoists=n.hoists,e.temps=n.temps,e.cached=n.cached,e.transformed=!0}(l,k({},i,{nodeTransforms:[...s,...t.nodeTransforms||[]],directiveTransforms:k({},o,t.directiveTransforms||{})})),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 f={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=>`_${sU[e]}`,push(e,t=-2,n){f.code+=e},indent(){h(++f.indentLevel)},deindent(e=!1){e?--f.indentLevel:h(--f.indentLevel)},newline(){h(f.indentLevel)}};function h(e){f.push("\n"+" ".repeat(e),0)}return f}(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,f=!l&&"module"!==r;(function(e,t){let{ssr:n,prefixIdentifiers:r,push:i,newline:l,runtimeModuleName:s,runtimeGlobalName:o,ssrRuntimeModuleName:a}=t,c=Array.from(e.helpers);if(c.length>0&&(i(`const _Vue = ${o} +`,-1),e.hoists.length)){let e=[su,sd,sp,sf,sh].filter(e=>c.includes(e)).map(o8).join(", ");i(`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&&(o5(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?ae(e.codegenNode,n):i("null"),f&&(o(),i("}")),o(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(l,i)}(e,k({},aU,t,{nodeTransforms:[aG,...aX,...t.nodeTransforms||[]],directiveTransforms:k({},aQ,t.directiveTransforms||{}),transformHoist:null}))}(e,i),s=Function(l)();return s._rc=!0,aZ[n]=s}return iU(aY),e.BaseTransition=n_,e.BaseTransitionPropsValidators=ny,e.Comment=io,e.DeprecationTypes=null,e.EffectScope=ex,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=il,e.KeepAlive={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=iL(),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 f(e){nG(e),u(e,n,o,!0)}function h(e){i.forEach((t,n)=>{let r=iK(t.type);r&&!e(r)&&m(n)})}function m(e){let t=i.get(e);!t||s&&ib(t,s)?s&&nG(s):f(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),rB(()=>{l.isDeactivated=!1,l.a&&Y(l.a);let t=e.props&&e.props.onVnodeMounted;t&&iR(t,l.parent,e)},o)},r.deactivate=e=>{let t=e.component;rz(t.m),rz(t.a),c(e,p,null,1,o),rB(()=>{t.da&&Y(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&iR(n,t.parent,e),t.isDeactivated=!0},o)},rX(()=>[e.include,e.exclude],([e,t])=>{e&&h(t=>nW(e,t)),t&&h(e=>!nW(t,e))},{flush:"post",deep:!0});let g=null,y=()=>{null!=g&&(r5(n.subTree.type)?rB(()=>{i.set(g,nX(n.subTree))},n.subTree.suspense):i.set(g,nX(n.subTree)))};return n0(y),n2(y),n3(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=nX(t);if(e.type===i.type&&e.key===i.key){nG(i);let e=i.component.da;e&&rB(e,r);return}f(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(!iv(r)||!(4&r.shapeFlag)&&!(128&r.shapeFlag))return s=null,r;let o=nX(r);if(o.type===io)return s=null,o;let a=o.type,c=iK(nj(o)?o.type.__asyncResolved||{}:a),{include:u,exclude:d,max:p}=e;if(u&&(!c||!nW(u,c))||d&&c&&nW(d,c))return o.shapeFlag&=-257,s=o,r;let f=null==o.key?a:o.key,h=i.get(f);return o.el&&(o=iT(o),128&r.shapeFlag&&(r.ssContent=o)),g=f,h?(o.el=h.el,o.component=h.component,o.transition&&nT(o,o.transition),o.shapeFlag|=512,l.delete(f),l.add(f)):(l.add(f),p&&l.size>parseInt(p,10)&&m(l.values().next().value)),o.shapeFlag|=256,s=o,r5(r.type)?r:o}}},e.ReactiveEffect=ek,e.Static=ia,e.Suspense={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,l,s,o,a,c){if(null==e)(function(e,t,n,r,i,l,s,o,a){let{p:c,o:{createElement:u}}=a,d=u("div"),p=e.suspense=ie(e,i,r,t,d,n,l,s,o,a);c(null,p.pendingBranch=e.ssContent,d,null,r,p,l,s),p.deps>0?(r7(e,"onPending"),r7(e,"onFallback"),c(null,e.ssFallback,t,n,r,null,l,s),ii(p,e.ssFallback)):p.resolve(!1,!0)})(t,n,r,i,l,s,o,a,c);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,f=t.ssFallback,{activeBranch:h,pendingBranch:m,isInFallback:g,isHydrating:y}=d;if(m)d.pendingBranch=p,ib(p,m)?(a(m,p,d.hiddenContainer,null,i,d,l,s,o),d.deps<=0?d.resolve():g&&!y&&(a(h,f,n,r,i,null,l,s,o),ii(d,f))):(d.pendingId=r9++,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(h,f,n,r,i,null,l,s,o),ii(d,f))):h&&ib(p,h)?(a(h,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(h&&ib(p,h))a(h,p,n,r,i,d,l,s,o),ii(d,p);else if(r7(t,"onPending"),d.pendingBranch=p,512&p.shapeFlag?d.pendingId=p.component.suspenseId:d.pendingId=r9++,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(f)},e):0===e&&d.fallback(f)}})(e,t,n,r,i,s,o,a,c)}},hydrate:function(e,t,n,r,i,l,s,o,a){let c=t.suspense=ie(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=it(r?n.default:n),e.ssFallback=r?it(n.fallback):iC(io)}},e.Teleport=nc,e.Text=is,e.TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},e.Transition=i8,e.TransitionGroup=lF,e.TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},e.VueElement=lO,e.assertNumber=function(e,t){},e.callWithAsyncErrorHandling=tW,e.callWithErrorHandling=tq,e.camelize=z,e.capitalize=X,e.cloneVNode=iT,e.compatUtils=null,e.compile=aY,e.computed=iz,e.createApp=l9,e.createBlock=iy,e.createCommentVNode=function(e="",t=!1){return t?(id(),iy(io,null,e)):iC(io,null,e)},e.createElementBlock=function(e,t,n,r,i,l){return ig(ix(e,t,n,r,i,l,!0))},e.createElementVNode=ix,e.createHydrationRenderer=rU,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 rj(e)},e.createSSRApp=l7,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=iC(ia,null,e);return n.staticCount=t,n},e.createTextVNode=iN,e.createVNode=iC,e.customRef=tL,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=()=>(d++,u=null,f()),f=()=>{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(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 nw({name:"AsyncComponentWrapper",__asyncLoader:f,__asyncHydrate(e,n,r){let i=s?()=>{let t=s(r,t=>(function(e,t){if(nL(e)&&"["===e.data){let n=1,r=e.nextSibling;for(;r;){if(1===r.nodeType){if(!1===t(r))break}else if(nL(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)}:r;t?i():f().then(()=>!n.isUnmounted&&i())},get __asyncResolved(){return t},setup(){let e=iM;if(nA(e),t)return()=>nH(t,e);let n=t=>{u=null,tK(t,e,13,!i)};if(a&&e.suspense)return f().then(t=>()=>nH(t,e)).catch(e=>(n(e),()=>i?iC(i,{error:e}):null));let s=tw(!1),c=tw(),d=tw(!!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),f().then(()=>{s.value=!0,e.parent&&nq(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),c.value=e}),()=>s.value&&t?nH(t,e):c.value&&i?iC(i,{error:c.value}):r&&!d.value?iC(r):void 0}})},e.defineComponent=nw,e.defineCustomElement=lI,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)=>lI(e,t,l7),e.defineSlots=function(){return null},e.devtools=void 0,e.effect=function(e,t){e.effect instanceof ek&&(e=e.effect.fn);let n=new ek(e);t&&k(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 ex(e)},e.getCurrentInstance=iL,e.getCurrentScope=function(){return i},e.getCurrentWatcher=function(){return h},e.getTransitionRawChildren=nN,e.guardReactiveProps=ik,e.h=iJ,e.handleError=tK,e.hasInjectionContext=function(){return!!(iM||t5||rx)},e.hydrate=(...e)=>{l8().hydrate(...e)},e.hydrateOnIdle=(e=1e4)=>t=>{let n=nB(t,{timeout:e});return()=>nU(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=_,e.inject=rk,e.isMemoSame=iG,e.isProxy=tS,e.isReactive=tv,e.isReadonly=tb,e.isRef=tN,e.isRuntimeOnly=()=>!u,e.isShallow=t_,e.isVNode=iv,e.markRaw=tC,e.mergeDefaults=function(e,t){let n=rc(e);for(let e in t){if(e.startsWith("__skip"))continue;let r=n[e];r?A(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?A(e)&&A(t)?e.concat(t):k({},rc(e),rc(t)):e||t},e.mergeProps=iI,e.nextTick=t0,e.normalizeClass=eu,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!M(t)&&(e.class=eu(t)),n&&(e.style=el(n)),e},e.normalizeStyle=el,e.onActivated=nK,e.onBeforeMount=nY,e.onBeforeUnmount=n3,e.onBeforeUpdate=n1,e.onDeactivated=nz,e.onErrorCaptured=n9,e.onMounted=n0,e.onRenderTracked=n5,e.onRenderTriggered=n8,e.onScopeDispose=function(e,t=!1){i&&i.cleanups.push(e)},e.onServerPrefetch=n4,e.onUnmounted=n6,e.onUpdated=n2,e.onWatcherCleanup=tj,e.openBlock=id,e.popScopeId=function(){t9=null},e.provide=rC,e.proxyRefs=tP,e.pushScopeId=function(e){t9=e},e.queuePostFlushCb=t3,e.reactive=th,e.readonly=tg,e.ref=tw,e.registerRuntimeCompiler=iU,e.render=l5,e.renderList=function(e,t,n,r){let i;let l=n&&n[r],s=A(e);if(s||M(e)){let n=s&&tv(e),r=!1;n&&(r=!t_(e),e=eJ(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!iv(t)||!!(t.type!==io&&(t.type!==il||e(t.children))))?t:null}(l(n)),o=n.key||s&&s.key,a=iy(il,{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 rt(n7,e,!0,t)||e},e.resolveDirective=function(e){return rt("directives",e)},e.resolveDynamicComponent=function(e){return M(e)?rt(n7,e,!1)||e:e||re},e.resolveFilter=null,e.resolveTransitionHooks=nx,e.setBlockTracking=im,e.setDevtoolsHook=_,e.setTransitionHooks=nT,e.shallowReactive=tm,e.shallowReadonly=function(e){return ty(e,!0,tt,tc,tf)},e.shallowRef=tA,e.ssrContextKey=rJ,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=eb,e.toHandlerKey=Q,e.toHandlers=function(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:Q(r)]=e[r];return n},e.toRaw=tx,e.toRef=function(e,t,n){return tN(e)?e:P(e)?new tD(e):$(e)&&arguments.length>1?tF(e,t,n):tw(e)},e.toRefs=function(e){let t=A(e)?Array(e.length):{};for(let n in e)t[n]=tF(e,n);return t},e.toValue=function(e){return P(e)?e():tR(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=tR,e.useAttrs=function(){return ra().attrs},e.useCssModule=function(e="$style"){return y},e.useCssVars=function(e){let t=iL();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>lf(e,n))},r=()=>{let r=e(t.proxy);t.ce?lf(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)lf(t.el,n);else if(t.type===il)t.children.forEach(t=>e(t,n));else if(t.type===ia){let{el:e,anchor:r}=t;for(;e&&(lf(e,n),e!==r);)e=e.nextSibling}}(t.subTree,r),n(r)};n1(()=>{t3(r)}),n0(()=>{rX(r,_,{flush:"post"});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),n6(()=>e.disconnect())})},e.useHost=lP,e.useId=function(){let e=iL();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""},e.useModel=function(e,t,n=y){let r=iL(),i=z(t),l=G(t),s=rY(e,i),o=tL((s,o)=>{let a,c;let u=y;return rG(()=>{let t=e[i];Z(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!Z(s,a)&&!(u!==y&&Z(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),Z(e,s)&&Z(e,u)&&!Z(s,c)&&o(),u=e,c=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||y:o,done:!1}:{done:!0}}},o},e.useSSRContext=()=>{},e.useShadowRoot=function(){let e=lP();return e&&e.shadowRoot},e.useSlots=function(){return ra().slots},e.useTemplateRef=function(e){let t=iL(),n=tA(null);return t&&Object.defineProperty(t.refs===y?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n},e.useTransitionState=nm,e.vModelCheckbox=lz,e.vModelDynamic={created(e,t,n){l0(e,t,n,null,"created")},mounted(e,t,n){l0(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){l0(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){l0(e,t,n,r,"updated")}},e.vModelRadio=lG,e.vModelSelect=lX,e.vModelText=lK,e.vShow={beforeMount(e,{value:t},{transition:n}){e[lc]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):ld(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),ld(e,!0),r.enter(e)):r.leave(e,()=>{ld(e,!1)}):ld(e,t))},beforeUnmount(e,{value:t}){ld(e,t)}},e.version=iX,e.warn=_,e.watch=function(e,t,n){return rX(e,t,n)},e.watchEffect=function(e,t){return rX(e,null,t)},e.watchPostEffect=function(e,t){return rX(e,null,{flush:"post"})},e.watchSyncEffect=rG,e.withAsyncContext=function(e){let t=iL(),n=e();return iD(),D(n)&&(n=n.catch(e=>{throw i$(t),e})),[n,()=>i$(t)]},e.withCtx=ne,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){if(null===t5)return e;let n=iW(t5),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=G(n.key);if(t.some(e=>e===r||l3[e]===r))return e(n)})},e.withMemo=function(e,t,n,r){let i=n[r];if(i&&iG(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;ene,e}({}); diff --git a/docs/mirrors/index.md b/docs/mirrors/index.md index e68dbc4..b64e8ef 100644 --- a/docs/mirrors/index.md +++ b/docs/mirrors/index.md @@ -10,7 +10,9 @@ hide: > 下方列表中的镜像站均支持 `Debian` `Ubuntu` `CentOS` `openSUSE` `openEuler` 软件源,列表根据单位性质、地理位置、名称长度进行排序,与实际速度无关 -| 镜像站 | IPv6 | Arch Linux | Kali Linux | Deepin | Rocky Linux | AlmaLinux | EPEL :material-information-outline:{ title="EPEL (Extra Packages for Enterprise Linux) 是由 Fedora 组织维护的一个附加软件包仓库,它主要适用于除 Fedora 操作系统以外的红帽系 Linux 发行版" } | Fedora | OpenCloudOS | Alpine Linux | Armbian | Proxmox VE | Linux Mint | Gentoo | Anolis OS | openKylin | NixOS | Raspberry Pi OS | +

    正在加载表格

    + + ???+ question "使用帮助" diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index 3acca10..1e23904 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -9,6 +9,7 @@ .md-header { background-color: hsla(240, 9%, 75%, 0.33); backdrop-filter: blur(8px); + z-index: 999 !important; } [data-md-color-scheme='slate'] .md-header { @@ -136,3 +137,24 @@ display: none; } } + +.t-tag .t-icon { + margin-right: 0 !important; +} + +[theme-mode="dark"] .t-table { + --td-bg-color-container: hsla(var(--md-hue), 15%, 14%, 1) !important; + --td-component-border: hsla(225deg, 15%, 95%, 0.12) !important; +} + +[theme-mode="dark"] .t-tag { + --td-warning-color-light: #cf6e2d48 !important; +} + +.t-table--hoverable tbody tr:hover { + background-color: rgba(0, 0, 0, 0.016) !important; +} + +[theme-mode="dark"] .t-table--hoverable tbody tr:hover { + background-color: rgba(240, 241, 244, 0.016) !important; +} diff --git a/mkdocs.yml b/mkdocs.yml index 37ec4d1..90298cf 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -4,7 +4,13 @@ repo_url: https://github.com/SuperManito/LinuxMirrors edit_uri: edit/main/docs/ copyright: 'Copyright © 2025 SuperManito ' +extra_javascript: + - assets/js/vue.global.prod.js + - assets/js/tdesign.min.js + - assets/js/mirrors-table-data.js + - assets/js/mirrors-table.js extra_css: + - assets/css/tdesign.min.css - stylesheets/extra.css theme: @@ -13,6 +19,7 @@ theme: custom_dir: docs/theme language: zh favicon: assets/favicon.ico + font: false icon: repo: fontawesome/brands/github edit: material/file-document-edit-outline diff --git a/requirements.txt b/requirements.txt index 644e558..ef97c5b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -mkdocs-material==9.6.8 +mkdocs-material==9.6.9 mkdocs-glightbox==0.4.0 mkdocs-exclude-search==0.6.6 \ No newline at end of file